Formato do erro
Uma chamada recusada sempre devolvedata: null e um ou mais itens em errors:
errors[0].code na sua lógica de tratamento — é o único campo com valores estáveis.
message existe para gente ler durante o desenvolvimento, nunca para decisão de código: seu
conteúdo pode mudar sem aviso.
Códigos de erro
Todo endpoint documenta, na referência, exatamente quais destes códigos ele
pode devolver — a lista acima é o catálogo completo e fechado; a API pública nunca introduz um
código novo sem documentá-lo aqui primeiro.
Rate limit
O limite se aplica por chave, nunca por endereço de origem — uma integração com vários servidores compartilha a mesma cota. O padrão é 600 requisições por minuto por contratante (configurável pela Koolisys por contratante). Toda resposta de um endpoint de dados carrega os cabeçalhos:
Monitore
RateLimit-Remaining e reduza o ritmo antes de bater no limite, em vez de reagir só ao
429. Se a checagem de limite falhar internamente (degradação do contador), a resposta segue sem
os cabeçalhos de limite, com X-RateLimit-Degraded: 1 — a chamada nunca é bloqueada por uma falha
de infraestrutura do lado da Koolisys.
POST /v1/auth/token tem seu próprio limite, mais restrito: 10 tentativas por minuto por chave e,
separadamente, 10 por minuto por endereço de origem — ver Autenticação.
Cabeçalhos úteis para suporte
Toda resposta trazX-Request-Id (ou ecoa o que você enviar no mesmo cabeçalho). Inclua esse valor
ao abrir um chamado com a Koolisys sobre uma chamada específica — ele identifica a requisição nos
registros do lado do servidor sem precisar reenviar dados sensíveis.