• Quem pesquisa “API do CNJ” quase sempre cai no DataJud sem saber o nome.
  • A base entrega capa e movimentação, não o PDF da sentença.
  • A consulta é pública, com chave na wiki. Não é webhook. Não é intimação.
  • Tribunal por tribunal: um índice Elasticsearch para cada corte.

Na minha experiência, o time pede “a API do CNJ” e espera Jusbrasil. O que volta é um JSON de metadados, sem parte, sem valor da causa na granulação que o comercial queria, e sem o acórdão. A decepção não é a API. É o briefing.

Este guia é o mapa honesto: o que o DataJud é, o que a API pública consulta, onde aperta, e o que fazer com o dado depois que ele entra no escritório.

O que é o DataJud?

O DataJud é a Base Nacional de Dados do Poder Judiciário. O CNJ descreve a API Pública como acesso aos metadados de processos públicos em todo o Brasil, aderente à Portaria n. 160/2020, com proteção a processos sigilosos e a informações das partes 1.

Capa. Classe. Assunto. Movimentações. Número CNJ. Tribunal. Data de ajuizamento.

Não é inteiro teor. Não é peça. Não é jurisprudência pesquisável por tese. Não é o diário.

Se a sua pergunta é “saiu intimação dessa OAB?”, você está no DJEN. Se é “o STJ firmou o quê neste tema?”, você está no SCON. Se é “o que já aconteceu neste processo público?”, aí sim: DataJud.

Como a API pública funciona

Protocolo: POST no Elasticsearch. Um índice por tribunal. A URL-base é https://api-publica.datajud.cnj.jus.br/, seguida do alias da corte, por exemplo api_publica_tjsp ou api_publica_trf1 1.

Autenticação: header Authorization: APIKey …. A chave pública vigente fica na wiki de acesso do DataJud. O CNJ avisa que pode trocá-la a qualquer momento 2. Não grave uma chave de tutorial de 2023 no código de produção. Leia a wiki no dia do deploy.

Consulta mínima por número de processo no TJSP (número sem máscara, ajuste o índice ao tribunal):

curl -X POST "https://api-publica.datajud.cnj.jus.br/api_publica_tjsp/_search" \
  -H "Authorization: APIKey SUA_CHAVE_DA_WIKI" \
  -H "Content-Type: application/json" \
  -d '{"query":{"match":{"numeroProcesso":"00000000000000000000"}}}'

O SUA_CHAVE_DA_WIKI não é segredo seu. É a chave pública que o CNJ publica. Mesmo assim, trate como configuração: quando o CNJ rotacionar, seu job quebra no mesmo dia.

Campos que de fato aparecem com frequência no documento: numeroProcesso, tribunal, dataAjuizamento, classe, assuntos, orgaoJulgador, movimentos, @timestamp. A lista completa muda com o tribunal e com a versão da base. Não construa o produto em cima de um campo que você viu uma vez no TJSP e assumiu no TRF3.

Movimento tem código de tabela unificada (TPU) e data. Serve para linha do tempo. Não serve para saber se aquele movimento intimou o advogado no diário. São fatos diferentes.

Nos meus testes, três pegadinhas se repetem.

Índice errado. O processo é do TRT-2 e você consultou api_publica_tjsp. A resposta vem vazia. Parece que o DataJud “não tem o processo”. Tem. Você perguntou no tribunal vizinho.

Número com máscara. Hífen e ponto no numeroProcesso falham em muita query. Mande os 20 dígitos.

Aliases que eu vejo no dia a dia: api_publica_tjsp, api_publica_tjrj, api_publica_trf1, api_publica_trf3, api_publica_tst, api_publica_stj. A lista completa está na wiki e no PDF de tutorial do CNJ. Se o alias estiver errado, a URL 404 ou o índice vem vazio. Os dois sintomas parecem “a API caiu”. Não caiu.

Paginação ingênua. Elasticsearch devolve uma página. Volume alto pede search_after, não from infinito. Sem isso você acha que varreu a vara e varreu as primeiras dezenas.

O DataJud não geo-bloqueia IP estrangeiro do mesmo jeito que a consulta do DJEN. Dá para hospedar o worker fora do Brasil. Isso não torna a base um feed em tempo real. A atualização depende do tribunal enviar ao CNJ. Atraso de dias existe. Quem promete “minuto a minuto” em cima só do DataJud está vendendo o que a fonte não entrega.

A cota também existe, mesmo com chave pública. Rajada de _search em loop por vara inteira é o jeito mais rápido de ganhar 429 ou 500 e achar que “o CNJ caiu”. Espace. Cacheie o processo que não mudou o @timestamp. Não releia a capa a cada 30 segundos porque o comercial quer o painel “ao vivo”.

Você realmente precisa varrer o tribunal inteiro, ou precisa de 200 números CNJ da carteira? A segunda query cabe. A primeira é outro produto.

O que a API não entrega (e o briefing inventa)

Valor da causa confiável, em todos os tribunais, o tempo todo: não.

Nome e documento da parte, com qualidade de cadastro: limitado, e o desenho da Portaria 160 existe justamente para não vazar o que não pode.

Documento dos autos: não.

Súmula, teses, inteiro teor de acórdão: não. Isso é pesquisa de jurisprudência, outra base.

Intimação com data de disponibilização para contar art. 224: não. Isso é DJEN.

LGPD continua valendo sobre dado processual público. O art. 7º, § 3º, da Lei 13.709/2018 não transforma diário em salvo-conduto para qualquer tratamento. Sigilo (art. 189 do CPC) e processo que a base já omitiu não voltam pelo seu crawler. Se a API não devolveu a parte, não complete com uma base paralela “para enriquecer o lead”.

Um sócio de um escritório me pediu um “radar de prazos” só com DataJud. Eu recusei o desenho. Movimento “juntada de petição” não é intimação. Prazo que depende disso vai estourar com cara de dashboard bonito.

Eu recomendo o DataJud para três usos honestos: achar o processo pelo número CNJ, montar linha do tempo de movimentos públicos, e cruzar volume por classe/órgão quando você aceita o atraso da base. Fora isso, você está na ferramenta errada.

E se o comercial pedir “busca por CPF em todos os tribunais do Brasil”? Diga não, ou diga “incompleto e irregular”. A API pública não foi desenhada como Serasa jurídico. Forçar esse uso é o atalho que mistura LGPD com expectativa furada.

💡 Leia também: API do DJEN: consulta oficial do CNJ e como integrar, quando o que você precisa é publicação e prazo, não capa.

Como colocar a consulta no sistema do escritório

Três camadas, de novo, porque o erro é sempre fundi-las.

  1. DataJud (ou o software jurídico que já consome isso) para “o que aconteceu”.
  2. DJEN para “o que dispara prazo”.
  3. WhatsApp para o cliente que pergunta “e o meu processo?”.

A integração ADVBox no Chat Jurídico lê processo e contato no ponto da conversa. Não substitui o DataJud. Também não substitui o diário. O post ADVBox + Chat Jurídico é essa costura.

Se você está construindo produto em cima da API pública, desenhe para: chave rotacionada, índice por tribunal, resposta vazia que não é “processo inexistente”, e atraso da fonte. Sem SLA. Sem versionamento visível. O aviso na interface (“não substitui a consulta no tribunal”) não é jurídico de enfeite. É o único contrato que o CNJ te deu.

Um checklist curto antes do primeiro job em produção:

  • Wiki aberta no dia, chave copiada de lá, não de um gist.
  • Tabela de aliases versionada no seu repo, com um teste que falha se o índice 404.
  • Log de @timestamp por processo, para não reler o que não mudou.
  • Fila morta para 500/429, não retry infinito às 9h da manhã de segunda.

Isso não é over-engineering. É o mínimo para o painel não mentir na terça.

O Chat Jurídico entra depois: o cliente não pergunta pelo alias do índice. Pergunta se o processo andou. Se a capa do DataJud (ou do software jurídico) não chega na conversa, alguém vai abrir o tribunal na mão, de novo, no meio do almoço.

Perguntas frequentes

O que é o DataJud? A base nacional de metadados processuais do CNJ. Capa e movimentos de processos públicos, com proteção a sigilo. Portaria 160/2020.

A API pública é gratuita? Sim. APIKey pública na wiki. Pode mudar. Não há webhook.

Serve para prazo de intimação? Não. Prazo de intimação por diário é DJEN e art. 224 do CPC.

É pesquisa de jurisprudência? Não. Sem inteiro teor, sem tese. Use o SCON do STJ e as bases dos tribunais.

Referências

1 API Pública do DataJud (CNJ).

2 Acesso | Datajud-Wiki.

🚀 O andamento está no sistema. A pergunta está no WhatsApp.

O Chat Jurídico responde o cliente com contexto do caso, no mesmo número. Garantia de 8 dias na contratação.

Falar com o comercial no WhatsApp