Documentação
Referência da Citare API
Três endpoints, JSON puro, autenticação por header. Tudo o que você precisa para integrar jurisprudência brasileira ao seu produto.
Autenticação
Toda requisição leva a sua chave no header X-API-Key. Gere chaves no painel — ck_live_… para produção, ck_test_… para desenvolvimento (mesma conta e saldo, tráfego separado nos relatórios).
A chave é exibida uma única vez na criação. Guarde-a em variável de ambiente; nunca a exponha em código de navegador.
# URL base https://justia-ia-production.up.railway.app # Header obrigatório em toda chamada X-API-Key: ck_live_SEU_SEGREDO
Créditos e preços
A cobrança é por consumo, em créditos pré-pagos que não expiram:
| Endpoint | Custo | Devolve |
|---|---|---|
POST /v1/juris/busca | 1 crédito | Até 20 resultados com ementa resumida |
GET /v1/juris/documento/:id | 2 créditos | Ementa integral + link do inteiro teor oficial |
GET /v1/juris/estatisticas | 1 crédito | Jurimetria agregada por tribunal (volume, provimento, matérias, relatores) |
GET /v1/juris/saldo | Grátis | Saldo de créditos da conta |
Requisições que falham por validação (422), documento inexistente (404) ou saldo insuficiente (402) não debitam créditos. Erro interno nosso (500) estorna automaticamente.
POST /v1/juris/busca
1 créditoBusca semântica: descreva a tese em linguagem natural. Filtros opcionais estreitam o resultado; a ementa vem resumida (até 400 caracteres) — o documento completo sai pelo endpoint de documento.
curl -X POST https://justia-ia-production.up.railway.app/v1/juris/busca \
-H "X-API-Key: ck_live_…" \
-H "Content-Type: application/json" \
-d '{
"consulta": "dano moral por inscrição indevida em cadastro de inadimplentes",
"tribunais": ["STJ", "TJSP"],
"materias": ["Direito do Consumidor"],
"dispositivo": "provido",
"limite": 10
}'| Campo | Tipo | Descrição |
|---|---|---|
consulta | string | Obrigatório. A tese/pergunta, 3 a 2.000 caracteres. |
tribunais | string[] | Opcional. Siglas (STJ, TJSP, TRF1…). Até 20. |
materias | string[] | Opcional. Ex.: "Direito do Consumidor". Até 20. |
dispositivo | string | Opcional. Resultado do julgamento: provido | improvido | parcial | extinto. |
limite | number | Opcional. 1 a 20 resultados (padrão 10). |
Resposta 200:
{
"creditosDebitados": 1,
"creditosRestantes": 9999,
"total": 10,
"resultados": [
{
"id": "8f1c9e2a-4b7d-4e2f-9c1a-…",
"tribunal": "STJ",
"classe": "AgInt no AREsp",
"numero": "2104531/SP",
"relator": "Min. Nancy Andrighi",
"dataJulgamento": "2024-03-12",
"materia": "Direito do Consumidor",
"dispositivo": "provido",
"ementaResumo": "AGRAVO INTERNO… (resumo de até 400 caracteres)",
"similaridade": 0.9123
}
]
}GET /v1/juris/documento/:id
2 créditosUm acórdão pelo id retornado na busca: metadados completos, a ementa integral e o link do inteiro teor no portal oficial do tribunal.
curl https://justia-ia-production.up.railway.app/v1/juris/documento/8f1c9e2a-4b7d-4e2f-9c1a-… \ -H "X-API-Key: ck_live_…"
Resposta 200:
{
"creditosDebitados": 2,
"creditosRestantes": 9997,
"documento": {
"id": "8f1c9e2a-…",
"tribunal": "STJ",
"classe": "AgInt no AREsp",
"numero": "2104531/SP",
"relator": "Min. Nancy Andrighi",
"dataJulgamento": "2024-03-12",
"materia": "Direito do Consumidor",
"dispositivo": "provido",
"ementa": "… (ementa integral)",
"urlFonte": "https://processo.stj.jus.br/…"
}
}id inválido ou inexistente → 404, sem débito.
GET /v1/juris/estatisticas
1 créditoJurimetria agregada da base inteira: volume por tribunal, composição do resultado (providos/parciais/improvidos), matérias mais frequentes e relatores com mais acórdãos. Só agregados — nenhum documento individual. Ideal para dashboards e análises de mercado. ?tribunal=TJSP filtra um tribunal.
curl "https://justia-ia-production.up.railway.app/v1/juris/estatisticas?tribunal=TJSP" \
-H "X-API-Key: ck_live_…"
{
"creditosDebitados": 1,
"creditosRestantes": 9996,
"atualizadoEm": "2026-07-19T18:00:00.000Z",
"totalAcordaos": 3120450,
"tribunais": [
{
"tribunal": "TJSP",
"total": 41200,
"provido": 14800, "parcial": 6100, "improvido": 17300,
"extinto": 900, "outros": 2100,
"topMaterias": [{ "materia": "Direito do Consumidor", "total": 9800 }],
"topRelatores": [{ "relator": "Des. …", "total": 1250, "providos": 480 }]
}
]
}Os agregados são recalculados a cada ~6 horas. Sem o filtro, a resposta traz todos os tribunais da base.
GET /v1/juris/saldo
grátiscurl https://justia-ia-production.up.railway.app/v1/juris/saldo -H "X-API-Key: ck_live_…"
{
"creditosRestantes": 9997,
"ambiente": "live",
"escopo": "juris"
}Códigos de erro
Erros vêm como JSON com erro (código estável) e mensagem (texto em português):
| HTTP | Código | Quando |
|---|---|---|
| 401 | API_KEY_AUSENTE | Header X-API-Key não enviado. |
| 401 | API_KEY_INVALIDA | Chave inexistente ou revogada. |
| 402 | CREDITOS_INSUFICIENTES | Saldo insuficiente. Compre um pacote. |
| 403 | CONTA_BLOQUEADA | Conta desativada pela administração. |
| 404 | DOCUMENTO_NAO_ENCONTRADO | id inexistente (sem débito). |
| 422 | REQUEST_INVALIDO | Body fora do schema (sem débito). |
| 429 | RATE_LIMIT | Requisições por minuto excedidas. |
| 429 | RATE_LIMIT_DIARIO | Teto diário da chave excedido. |
| 500 | ERRO_INTERNO | Falha nossa — crédito estornado. |
Limites de requisição
Cada chave tem dois limites, visíveis no painel: 60 req/min e 10.000 req/dia (padrão — ajustável para contratos de volume). Excedeu → 429; espere e tente de novo. O teto protege a plataforma e o seu próprio custo contra loops acidentais.
Boas práticas
- Cache do seu lado. O mesmo
iddevolve o mesmo documento — guarde e não pague duas vezes. - Busque primeiro, detalhe depois. Mostre os resumos da busca ao seu usuário e só busque o documento (2 créditos) quando ele abrir o item.
- Trate 402 no fluxo. Monitore
creditosRestantesnas respostas e avise seu time antes do saldo zerar. - Uma chave por ambiente.
ck_test_em dev/homolog,ck_live_em produção — revogar uma não afeta a outra. - Respeite a fonte. O link do inteiro teor aponta o portal oficial do tribunal; exiba-o ao usuário final como referência verificável.
Pronto para integrar?
Crie a conta, gere a chave e faça a primeira busca em minutos.
Criar conta grátis