Skip to main content
Toda resposta que não é 2xx tem o mesmo body:
Desvie por type para o fluxo de controle e por code para o tratamento específico. Os dois são estáveis; message é escrito para humanos e pode ser reescrito. Sempre logue request_id. Ele é ecoado no header de resposta X-Request-ID, e citá-lo nos deixa encontrar a sua requisição exata.

Tipos

Um 404 não distingue “não existe” de “pertence a outro workspace”. É deliberado: distinguir os dois deixaria qualquer um sondar ids de registro entre workspaces.

Scopes faltando

Um 403 de um cheque de scope nomeia exatamente o que falta, para você não ter que adivinhar:
Um 403 que não é insufficient_scope costuma significar política de write do workspace — por exemplo, uma entidade espelhada de um CRM externo. Chame GET /v1/capabilities para ver quais entidades você pode escrever.

Tentando de novo

Tente de novo rate_limit_error e api_error. Não tente de novo erros 4xx sem mudanças; eles vão falhar igual.
Use backoff exponencial com jitter. Tentar de novo imediatamente durante um rate limit o estende.