Pular para o conteúdo principal

Documentation Index

Fetch the complete documentation index at: https://docs.judit.io/llms.txt

Use this file to discover all available pages before exploring further.

Novo CNPJ (IN 2229/24)A Judit já aceita o novo formato de CNPJ alfanumérico em conformidade com a Instrução Normativa RFB nº 2229/2024.
  • Zero esforço: nenhuma alteração é necessária na sua integração.
  • Ambiente de teste: utilize o documento A1B2C3D4/E5F6-68 para validar o fluxo e receber um processo fictício de resposta.
A Consulta Síncrona ao Hot Storage retorna, em milissegundos, todos os processos do nosso datalake vinculados a um CPF, CNPJ, OAB, Nome ou CNJ. Não há fila nem espera por tribunal: a resposta vem direto do cache JUDIT.
🤖 Endpoint: POST https://lawsuits.production.judit.io/lawsuits. A resposta é síncrona (HTTP 200 com o JSON pronto). Esta rota não vai ao tribunal — ela lê o datalake da Judit, então pode haver um pequeno atraso em relação ao estado mais atual do processo. Se precisar de dados atualizados em tempo real, use POST /requests (assíncrono).

Síncrono vs. assíncrono — qual escolher?

CaracterísticaSíncrono (Hot Storage)Assíncrono (Requests)
Latênciams (resposta imediata)segundos a minutos
FonteDatalake JUDIT (cache)Tribunal em tempo real
AtualidadeÚltima coleta da JUDITEstado atual do tribunal
WebhookNão aplicávelSim, opcional
CustoMais baratoMais caro
Caso idealValidação rápida, dashboards, busca interativaDiligência, atualização forçada, consulta sob demanda

Quando usar

Validação em tempo real

Onboarding, KYC, autocomplete — sempre que precisar de uma resposta imediata para a UI.

Dashboards interativos

Dashboards e BI que listam processos vinculados a um cliente sem precisar atualizar o tribunal.

Pré-filtragem de risco

Antes de disparar uma consulta assíncrona cara, descubra rapidamente se vale a pena.

Estatísticas e contagens

Combine com /lawsuits/count e /lawsuits/synthetic para análises agregadas.
Todas as consultas síncronas aceitam filtros (tribunal, valor da causa, classes, partes, datas, fase). Veja a lista completa em filtros da consulta histórica — o mesmo objeto search_params.filter se aplica aqui.

Passo 1: Criar a Consulta Síncrona (POST)

Para iniciar a consulta síncrona, faça uma requisição POST enviando o documento desejado. POST https://lawsuits.production.judit.io/lawsuits

Exemplos de consultas síncronas

{
    "search": {
        "search_type": "cpf",
        "search_key": "999.999.999-99"
    }
}
Ao realizar consultas por nome, é possível que existam homônimos. Sempre que possível, prefira CPF, CNPJ ou OAB para garantir maior precisão.

Parâmetros do Payload

ParâmetroTipoObrigatórioDescrição
search.search_typestringSimTipo da entidade buscada: "cpf", "cnpj", "oab" ou "name".
search.search_keystringSimO valor a ser buscado (ex.: "999.999.999-99", "João Silva").
search.search_params.filterobjectNãoFiltros estruturais (tribunal, valor, classes, partes, datas). Mesma estrutura da consulta histórica.

Filtros mais comuns (search_params.filter)

A consulta síncrona aceita os mesmos filtros da consulta histórica. Veja exemplos práticos:
{
    "search": {
        "search_type": "cpf",
        "search_key": "999.999.999-99",
        "search_params": {
            "filter": {
                "tribunals": { "keys": ["TJRJ"], "not_equal": false }
            }
        }
    }
}
Lista completa de tribunais aceitos: veja Filtros da consulta histórica.

Exemplo de Requisição (POST)

curl --request POST \
  --url 'https://lawsuits.production.judit.io/lawsuits' \
  --header 'Content-Type: application/json' \
  --header 'api-key: '"$JUDIT_API_KEY" \
  --data '{
    "search": {
      "search_type": "cpf",
      "search_key": "999.999.999-99"
    }
  }'

Passo 2: Ler a resposta

A resposta vem no corpo do mesmo POST (não há polling). Os campos principais:
CampoTipoDescrição
has_lawsuitsbooleantrue se foram encontrados processos no datalake.
request_idstringIdentificador único da consulta — útil para auditoria.
response_dataarrayLista de processos. Cada item segue o Schema Lawsuit.
response_data[].phasestringFase atual do processo — ver tabela abaixo.
response_data[].statusstringStatus atual do processo — ver tabela abaixo.

Exemplo completo de resposta

A resposta dessa requisição será um objeto JSON com os dados retornados:
{
    "has_lawsuits": true,
    "request_id": "c37cacba-41b5-4694-919f-4a937f2ea5df",
    "response_data": [
        {
            "code": "9999999-99.9999.9.99.9999",
            "justice": "5",
            "tribunal": "01",
            "instance": 2,
            "distribution_date": "2023-05-18T11:12:59.000Z",
            "tribunal_acronym": "TRT1",
            "secrecy_level": 0,
            "tags": {
                "is_fallback_source": true,
                "crawl_id": "28e00227-e41b-4c94-956e-7a0f105eabee"
            },
            "subjects": [
                { "code": "13656", "name": "DOMÉSTICOS" }
            ],
            "classifications": [
                { "code": "1009", "name": "RECURSO ORDINÁRIO TRABALHISTA" }
            ],
            "courts": [
                { "code": "75580", "name": "GAB DES. GLAUCIA ZUCCARI FERNANDES BRAGA" }
            ],
            "parties": [
                {
                    "name": "Usuário teste",
                    "side": "Active",
                    "person_type": "Autor",
                    "document": "99999999999",
                    "document_type": "CPF",
                    "lawyers": [
                        { "name": "Advogada do Autor", "side": "Active", "person_type": "Advogado" }
                    ]
                },
                {
                    "name": "Usuário teste",
                    "side": "Passive",
                    "person_type": "Réu",
                    "document": "99999999999",
                    "document_type": "CPF",
                    "lawyers": [
                        { "name": "Advogado do Réu", "side": "Passive", "person_type": "Advogado" }
                    ]
                }
            ],
            "steps": [],
            "attachments": [],
            "related_lawsuits": [],
            "crawler": {
                "source_name": "JTJ - BR - Document / Lawsuit - Auth",
                "crawl_id": "28e00227-e41b-4c94-956e-7a0f105eabee",
                "weight": 0,
                "updated_at": "2024-03-18T19:21:02.466Z"
            },
            "amount": 7685.82,
            "last_step": {
                "lawsuit_cnj": "9999999-99.9999.9.99.9999",
                "lawsuit_instance": 2,
                "step_id": "JZzfEPTs10aeE+vpu+p+bkrz5K7enJhAM5kWattktHk=",
                "step_date": "2024-03-18T19:21:02.466Z",
                "private": false,
                "steps_count": 1
            },
            "name": "Nome do Autor X Nome do Réu"
        }
    ]
}
Estrutura completa de cada item do array response_data: veja Schema Lawsuit.

Erros comuns

HTTPQuando aconteceComo tratar
400search_type ou search_key inválidos / formato incorreto.Validar o documento antes de enviar (ex.: 11 dígitos para CPF, 14 para CNPJ).
401API Key ausente ou inválida.Conferir o header api-key.
404Nenhum processo encontrado. A resposta vem com has_lawsuits: false mesmo assim.Tratar como ausência de exposição judicial — não é necessariamente erro.
429Rate limit excedido (500 req/min).Implementar exponential backoff lendo X-RateLimit-Reset.
500Erro interno transitório.Repetir com backoff. Se persistir, abrir ticket no suporte.

Próximos passos