Documentação

Erros & limites

Referência única — se algum comportamento divergir do descrito aqui, é bug ou doc desatualizada.

Códigos de erro

Toda resposta de erro tem o shape:

{
  "detail": "<mensagem legível>"
}
StatusQuando aconteceO que fazer
400Sem skills relevantes pra essa intentReescreva o intent com mais especificidade. Se o cenário deveria ter cobertura, reporte à curadoria — vira input pro pipeline.
400Body inválido (intent vazio, JSON malformado)Verifique payload. Intent deve ser string não-vazia.
401API key ausente ou inválidaVeja autenticação. Se a key foi rotacionada, atualize seu env.
403Body referencia tenant diferente do dono da keyDefesa multi-tenant. O empresa_id no body precisa bater com o dono da API key. Em geral: não passe empresa_id explícito a menos que seja necessário.
422Validação de schema falhouResposta inclui detalhe por campo. Ajuste o body.
429Rate limit estouradoHeader Retry-After indica quantos segundos esperar. Implemente backoff exponencial.
500Erro internoTente novamente após alguns segundos. Se persistir, contate a curadoria com o execution_id (se houver).
503Serviço temporariamente indisponívelJanela de manutenção ou sobrecarga. Backoff e retry. Casos raros.

Rate limits

  • 60 requisições/min por API key, sliding window.
  • Excedeu → 429 Too Many Requests com header Retry-After: <segundos>.
  • Cache de respostas reduz custo: chamadas idênticas (mesmo intent + mesma seleção de skills) saem em <100ms dentro de 1h.
  • Caso de uso legítimo precisando de mais? Solicite aumento à curadoria — avaliamos por empresa.

Payload e timeout

  • Payload máximo: 256 KB no request body. Intents costumam usar <1 KB.
  • Timeout: 60s no compose cold (primeira chamada com intent novo). Cached: <100ms. Configure o timeout do cliente HTTP pra ≥60s.
  • Resposta máxima: contexto composto pode chegar a ~32 KB. Cheque limite de payload do seu connector em ferramentas low-code.

Versionamento

  • Todos os endpoints estão sob /api/v1. Mudanças retrocompatíveis (campos novos, valores opcionais) saem sem aviso.
  • Quebras de contrato (campo removido, semântica alterada) são anunciadas com no mínimo 60 dias de antecedência aos clientes ativos.
  • Quando lançarmos /api/v2, a v1 fica disponível por no mínimo 6 meses em paralelo.

Próximos passos