Pular para o conteúdo principal

Erros

A API usa os códigos HTTP no sentido convencional: 2xx deu certo, 4xx é problema na requisição, 5xx é problema no servidor.

Códigos​

CódigoSignificadoO que fazer
200OK—
400Requisição malformadaJSON inválido ou parâmetro obrigatório ausente. Corrija e repita.
401Não autenticadoChave ausente, inválida ou revogada. Confira o header api_access_token.
403Sem permissãoA chave é válida, mas o usuário dono dela não tem acesso ao recurso.
404Não encontradoO recurso não existe ou não pertence a esta conta. Confira o ID da conta no caminho.
422Não processávelA requisição está bem formada, mas os dados falharam na validação. O corpo diz qual campo.
429Limite excedidoEspere e repita com backoff. Veja Limites de requisição.
500Erro no servidorRepita depois. Se persistir, fale com o suporte.

401 e 403 são coisas diferentes​

  • 401 — quem é você? A chave não foi reconhecida.
  • 403 — sei quem você é, mas não pode. A chave vale, o usuário dono dela é que não tem permissão. Repetir não resolve: ou o usuário ganha a permissão, ou a chave precisa ser de outro usuário.

404 costuma ser conta errada​

Quase todo endpoint é escopado por conta (/api/v1/accounts/{account_id}/…). Pedir um recurso de outra conta devolve 404, não 403 — de propósito, para não revelar que o recurso existe. Se um ID que você sabe que existe devolve 404, confira o account_id do caminho antes de procurar o bug em outro lugar.

Erros de validação​

O 422 costuma trazer o motivo no corpo:

{
"message": "Validation failed: Name can't be blank"
}

Alguns endpoints devolvem os erros por campo:

{
"errors": {
"email": ["já está em uso"]
}
}

O formato não é uniforme em toda a API. Ao tratar erros de forma genérica, prefira o código HTTP e use o corpo apenas para exibir a mensagem.

Ao integrar​

  • Trate 429 e 5xx com retry e backoff; não repita 4xx — repetir uma requisição inválida só gasta cota.
  • Registre o corpo da resposta quando der erro: ele quase sempre diz o que faltou.
  • Não deduza sucesso pelo corpo. Cheque o status.