Erros e limites

O formato dos erros, cada código, idempotência e os limites de chamadas.

Formato

Todo erro tem o mesmo formato:

{ "error": { "code": "not_found", "message": "No such contact." } }
CampoO que é
codeUm código estável, em inglês, feito para o seu código comparar.
messageUma explicação para pessoas. Pode mudar; não compare.

Alguns erros trazem um campo a mais, como o contact_id em phone_taken.

Códigos

StatusCódigosQuando
400invalid_json, invalid_cursor, invalid_query, invalid_idempotency_keyO corpo, o cursor, a query ou a Idempotency-Key não é válido
401unauthorizedToken ausente, desconhecido, expirado ou revogado
403forbiddenFalta o escopo, ou o membro que autorizou não tem a permissão
404not_foundO endpoint não existe, ou o item não é do workspace
405method_not_allowedO método não existe neste endpoint
409phone_taken, taken, quota, opted_out, open_item_exists, invalid_state, draftO estado atual impede a ação: telefone ou nome já usado, limite do plano cheio, contato descadastrado, negócio aberto no pipeline, campanha no estado errado
422invalid, invalid_phone, limit, in_the_past, group_left, audience_too_large, idempotency_mismatchO corpo não é válido para a ação
429rate_limitedLimite de requisições

Cada endpoint lista os seus na Referência da API.

Idempotência

Toda escrita (POST, PUT, PATCH, DELETE) aceita o cabeçalho Idempotency-Key. Com ele, repetir a chamada (depois de um timeout, por exemplo) devolve a primeira resposta em vez de fazer de novo.

  • Até 200 letras, dígitos, - ou _. Outro formato recebe 400 com invalid_idempotency_key.
  • A primeira resposta fica guardada por 24 horas. Uma repetição a recebe de volta, com o mesmo status, e o cabeçalho Idempotent-Replayed: true.
  • A chave vale para o mesmo método, caminho e corpo. Usar a mesma chave em outra requisição recebe 422 com idempotency_mismatch.
  • Duas chamadas simultâneas com a mesma chave não executam duas vezes: a segunda espera a primeira e recebe a resposta dela.
  • As chaves são de cada chave de API (ou de cada autorização OAuth); outra credencial não vê as suas.

Limites

  • API: cada chave de API, e cada conexão OAuth (app, pessoa e workspace), faz até 600 requisições por minuto. Acima disso, a resposta é 429 com rate_limited e o cabeçalho Retry-After, em segundos.
  • MCP: cada conexão (app, pessoa e workspace) faz até 60 chamadas por minuto. Veja Servidor MCP.
  • Webhooks de saída: o plano limita os endpoints de um workspace. Veja webhooks.

Na API, ao receber 429, espere os segundos de Retry-After e tente de novo.

Nesta página