Início rápido
1. Crie a conta e a chave de teste
Cadastre-se em /app/cadastro. Em Chaves de API, crie uma chave do ambiente teste. Ela é exibida uma única vez — guarde-a em um cofre de segredos.
2. Crie uma busca por número CNJ
export ODJUD="https://odjud-api.orvyadigital.com.br"
export ODJUD_KEY="odj_test_…"
curl -X POST "$ODJUD/v1/searches/process-number" \
-H "Authorization: Bearer $ODJUD_KEY" \
-H "Idempotency-Key: pedido-0001" \
-H "Content-Type: application/json" \
-d '{"cnj": "1000001-85.2025.8.26.0100", "detail": "full"}'
Resposta 202 Accepted:
{
"id": "srch_k2m…",
"object": "search",
"kind": "PROCESS_NUMBER",
"status": "QUEUED",
"billing": { "product": "cnj.detailed", "unitCredits": 89, "reservedCredits": 89, "billable": null, "chargedCredits": 0, "priceVersion": "ref-2026-10-29" },
"links": { "self": "/v1/searches/srch_k2m…", "results": "/v1/searches/srch_k2m…/results" }
}
detail: cover (capa) ou full (capa + andamentos disponíveis). O número é validado pelo dígito verificador (ISO 7064 mód. 97) antes de qualquer cobrança.
3. Acompanhe (polling)
curl "$ODJUD/v1/searches/srch_k2m…" -H "Authorization: Bearer $ODJUD_KEY"
Enquanto status for QUEUED ou RUNNING, a resposta traz Retry-After: 2. Estados finais: SUCCEEDED, PARTIAL, NOT_FOUND, FAILED, CANCELED. Prefira o webhook search.completed em produção.
4. Leia os resultados
curl "$ODJUD/v1/searches/srch_k2m…/results?limit=25" -H "Authorization: Bearer $ODJUD_KEY"
Cada item segue odjud.process.v1:
{
"schemaVersion": "odjud.process.v1",
"cnj": "10000018520258260100",
"cnjFormatted": "1000001-85.2025.8.26.0100",
"court": { "code": "826", "acronym": "TJSP", "name": "Tribunal de Justiça de São Paulo" },
"grade": { "code": "G1", "label": "1º grau" },
"classe": { "code": 7, "name": "Procedimento Comum Cível" },
"parties": [{ "name": "…", "pole": "ACTIVE", "role": "AUTOR", "lawyers": [{ "name": "…", "oab": "SP000000" }] }],
"movements": [{ "at": "2026-10-16T02:30", "description": "…", "detail": null, "sequence": 3, "grade": "G1" }],
"movementsComplete": true,
"completeness": "COMPLETE",
"missingFields": ["claimAmount"],
"publicAccess": true,
"restrictions": [],
"source": { "key": "public-courts:TJSP", "name": "TJSP — e-SAJ", "official": true, "fallback": false },
"collectedAt": "2026-10-29T12:00:00.000Z"
}
Campos que a fonte não publica ficam null e aparecem em missingFields. Documentos (CPF/CNPJ) de partes não são entregues.
Cenários do sandbox
| Sequência do número | Resultado simulado | Cobrança |
|---|---|---|
0000404-… |
NOT_FOUND |
não tarifado |
0000500-… |
FAILED (fonte indisponível) |
não tarifado |
0000206-… |
PARTIAL (andamentos incompletos) |
tarifado |
0000429-… |
FAILED (fonte pediu pausa) |
não tarifado |
| qualquer outro válido | SUCCEEDED |
tarifado |
Exemplos válidos: 0000404-71.2025.8.26.0100, 0000500-86.2025.8.26.0100, 0000206-34.2025.8.26.0100.