Erros
A API pública usa status HTTP + envelope:
{
"error": {
"code": "CODIGO",
"message": "Descrição legível"
}
}Alguns erros incluem campos extras (por exemplo, availableCredits e requiredCredits).
Tabela principal
| HTTP | Código | Significado | Como resolver |
|---|---|---|---|
| 401 | API_KEY_REQUIRED | Chave ausente | Envie x-api-key ou Authorization: Bearer |
| 401 | INVALID_API_KEY | Chave inválida/revogada | Gere ou copie a chave em /dashboard/keys |
| 403 | ACCOUNT_INACTIVE | Conta inativa | Contate o suporte |
| 403 | EMAIL_VERIFICATION_REQUIRED | E-mail não confirmado | Conclua a verificação de cadastro |
| 403 | INSUFFICIENT_CREDITS | Saldo insuficiente | Recarregue em /dashboard/topup |
| 400 | MISSING_DOCUMENT | Documento não informado | Envie cpf_cnpj ou document |
| 400 | MISSING_SEARCH_TERM | Termo ausente | Informe o parâmetro de busca exigido |
| 400 | INVALID_JSON | Body JSON inválido | Valide o payload |
| 422 | INVALID_DOCUMENT | CPF/CNPJ inválido | Normalize e valide dígitos |
| 422 | INVALID_LIMIT | Limit inválido | Em /v1/processos, use 50 ou 100 |
| 422 | INVALID_CNJ | CNJ inválido | Normalize o número CNJ |
| 422 | INVALID_OAB / INVALID_OABS | OAB inválida | Use UF e número corretos |
| 422 | INVALID_WEBHOOK_URL | Webhook inválido | Use HTTPS válido |
| 404 | INVALID_API_HOST | Host incorreto | Use api.buscaprocessos.app.br |
| 404 | MONITORING_NOT_FOUND | Monitoramento inexistente | Confira o ID da conta |
| 404 | CERTIFICATE_NOT_FOUND | Certificado inexistente | Liste certificados da conta |
| 404 | — | Recurso/lista vazia | Trate conforme o endpoint (ex.: processos não encontrados) |
| 429 | — | Rate limit | Respeite Retry-After, X-RateLimit-* |
| 502 | UPSTREAM_UNAVAILABLE | Fonte indisponível | Retente com backoff |
| 500 | INTERNAL_ERROR | Erro interno | Persist requestId e contate suporte |
Nota sobre 402
Alguma documentação interna do painel menciona HTTP 402 para saldo. No código da API pública, saldo insuficiente é retornado como 403INSUFFICIENT_CREDITS.
Rate limit (429)
Em rotas que usam o perfil de consulta paga/escavador:
- limite típico: 5 requisições / 60 segundos / IP
- resposta pode incluir
retryAfter - headers:
Retry-After,X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset
Como tratar no cliente
async function callApi(path: string) {
const res = await fetch(`https://api.buscaprocessos.app.br${path}`, {
headers: { "x-api-key": process.env.BUSCAPROCESSOS_API_KEY! },
});
const body = await res.json().catch(() => ({}));
if (res.status === 429) {
const retryAfter = Number(res.headers.get("Retry-After") || 1);
// agende retry com jitter
throw Object.assign(new Error("rate_limited"), { retryAfter });
}
if (!res.ok) {
throw Object.assign(new Error(body?.error?.message || "api_error"), {
status: res.status,
code: body?.error?.code,
body,
});
}
return body;
}Correlação e suporte
Sempre registre, quando disponíveis:
meta.requestId- header
X-BuscaProcessos-Request-Id meta.searchLogId- status HTTP e
error.code
Isso acelera o atendimento em WhatsApp de suporte.