DataJud: A API Pública Gratuita do CNJ — Como Usar
O que é o DataJud, como usar os endpoints Elasticsearch do CNJ, autenticação, formatos de query, tribunais disponíveis e exemplos práticos com curl.
O DataJud é uma das iniciativas mais importantes do Poder Judiciário brasileiro nos últimos anos: uma base de dados centralizada com mais de 80 milhões de processos judiciais, acessível de forma gratuita por qualquer desenvolvedor via API REST pública. Para advogados e empresas de LegalTech, isso significa consultar movimentações processuais em 91 tribunais com uma única chamada de API — sem precisar de scraping, sem criar contas em cada tribunal, e sem pagar licença.
Este guia explica como funciona o DataJud, como autenticar, como construir queries e como o LegalSuite o utiliza para monitoramento em tempo real.
O Que é o DataJud
O DataJud (Base Nacional de Dados do Poder Judiciário) é um projeto do CNJ (Conselho Nacional de Justiça) criado pela Resolução CNJ 331/2020. Ele consolida dados processuais de todos os tribunais brasileiros em uma única base centralizada, com o duplo objetivo de:
- Transparência pública: qualquer cidadão pode consultar dados de processos judiciais
- Estatísticas do Judiciário: alimenta os relatórios "Justiça em Números" do CNJ
O DataJud utiliza o Elasticsearch como motor de armazenamento e busca — tecnologia de busca full-text em escala muito usada por empresas de tecnologia. Isso significa que as queries do DataJud seguem a sintaxe do Elasticsearch (DSL — Domain Specific Language), que é muito mais poderosa que um simples filtro por número de processo.
DataJud ≠ Informações em Tempo Real
O DataJud é atualizado periodicamente pelos tribunais (não em tempo real). A frequência de atualização varia: tribunais mais integrados atualizam com defasagem de horas; outros podem ter defasagem de dias. Para monitoramento de prazos fatais, combine o DataJud com os alertas do DJE (Diário da Justiça Eletrônico) em tempo real.
Autenticação: Como Obter Acesso
A API do DataJud é pública, mas exige registro prévio para obtenção de chave de autenticação (API Key). O processo é:
Crie uma conta no Portal de Serviços do CNJ
Acesse datajud.cnj.jus.br e clique em "Cadastre-se". Informe nome, email e crie uma senha. Não é necessário OAB nem CNPJ — qualquer pessoa pode se cadastrar.
Gere sua API Key
Após o login, acesse "Meu Perfil" → "API Key" → "Gerar Nova Chave". A chave é uma string no formato cDZHYzlZa0JadVREZDJCendDS3BETWo (exemplo fictício). Guarde em local seguro.
Inclua a API Key no cabeçalho das requisições
Todas as requisições devem incluir o cabeçalho HTTP:
Authorization: APIKey {sua_api_key}
Rate Limit da API
A API do DataJud tem limites de requisições por hora para cada API Key (os limites exatos estão documentados em datajud.cnj.jus.br/api-docs). Requisições em volume alto (como varredura de processos) devem usar paginação e respeitar os rate limits para não ter a chave suspensa temporariamente.
Estrutura da API: Endpoint Base
O endpoint base da API do DataJud segue o padrão:
https://api-publica.datajud.cnj.jus.br/api_publica_{sigla_tribunal}/_search
Onde {sigla_tribunal} é a identificação do tribunal. Exemplos:
# STJ
https://api-publica.datajud.cnj.jus.br/api_publica_stj/_search
# TJSP
https://api-publica.datajud.cnj.jus.br/api_publica_tjsp/_search
# TRT-2 (São Paulo)
https://api-publica.datajud.cnj.jus.br/api_publica_trt2/_search
# TRF-3 (SP/MS)
https://api-publica.datajud.cnj.jus.br/api_publica_trf3/_search
# TST
https://api-publica.datajud.cnj.jus.br/api_publica_tst/_search
Os Campos Disponíveis em Cada Processo
Cada documento retornado pela API contém os principais campos do processo:
| Campo | Tipo | Descrição |
|---|---|---|
numeroProcesso | string | Número CNJ (NNNNNNN-DD.AAAA.J.TR.OOOO) |
tribunal | string | Sigla do tribunal |
classe.codigo | integer | Código da classe processual (TPU-CNJ) |
classe.nome | string | Nome da classe (ex.: "Procedimento Comum Cível") |
assunto | array | Lista de assuntos processuais (códigos e nomes TPU) |
movimentos | array | Lista de movimentos/andamentos processuais |
dataAjuizamento | date | Data de distribuição do processo |
grau | string | Grau de jurisdição (G1, G2, JE, etc.) |
orgaoJulgador.nome | string | Nome do órgão julgador / vara |
orgaoJulgador.codigoMunicipioIBGE | string | IBGE do município da vara |
partes | array | Lista de partes com nome e tipo (ativo/passivo/outros) |
valor | number | Valor da causa |
Exemplos Práticos de Query
Busca por Número de Processo
curl -X POST "https://api-publica.datajud.cnj.jus.br/api_publica_tjsp/_search" \
-H "Authorization: APIKey sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"query": {
"match": {
"numeroProcesso": "1234567-89.2023.8.26.0100"
}
}
}'
Busca por Nome da Parte
curl -X POST "https://api-publica.datajud.cnj.jus.br/api_publica_tjsp/_search" \
-H "Authorization: APIKey sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"query": {
"match": {
"partes.nome": "Empresa Exemplo Ltda"
}
},
"size": 10,
"sort": [
{ "dataAjuizamento": { "order": "desc" } }
]
}'
Busca por Classe Processual + Período
curl -X POST "https://api-publica.datajud.cnj.jus.br/api_publica_stj/_search" \
-H "Authorization: APIKey sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"query": {
"bool": {
"must": [
{ "match": { "classe.codigo": "7" } },
{
"range": {
"dataAjuizamento": {
"gte": "2025-01-01",
"lte": "2026-03-31"
}
}
}
]
}
},
"size": 20
}'
Paginação com from e size
O Elasticsearch limita o resultado a 10.000 registros por consulta. Para recuperar mais registros, use from e size:
# Página 1 (registros 1-20)
"from": 0, "size": 20
# Página 2 (registros 21-40)
"from": 20, "size": 20
# Página 100 (registros 1981-2000)
"from": 1980, "size": 20
Para conjuntos maiores que 10.000 registros, use a funcionalidade search_after do Elasticsearch:
{
"query": { ... },
"size": 1000,
"sort": [
{ "dataAjuizamento": { "order": "desc" } },
{ "_id": { "order": "asc" } }
],
"search_after": ["2025-12-31", "abc123xyz"]
}
Consulta em Múltiplos Tribunais Simultaneamente
Para verificar se uma pessoa ou empresa tem processos em múltiplos tribunais, é necessário fazer uma requisição por tribunal — a API não tem um endpoint unificado que busca em todos os 91 tribunais de uma vez.
A estratégia para monitoramento em escala é:
- Manter uma lista dos tribunais relevantes para o seu caso (ex.: todos os TJs + TST + STJ)
- Disparar requisições em paralelo para cada tribunal (usando async/await em Node.js ou asyncio em Python)
- Consolidar os resultados em uma base local
- Monitorar apenas os tribunais onde há processos ativos
// Exemplo Node.js — consulta paralela em múltiplos tribunais
const tribunais = ['tjsp', 'tjrj', 'tjmg', 'stj', 'tst'];
const numeroProcesso = '1234567-89.2023.8.26.0100';
const resultados = await Promise.all(
tribunais.map(async (tribunal) => {
const response = await fetch(
`https://api-publica.datajud.cnj.jus.br/api_publica_${tribunal}/_search`,
{
method: 'POST',
headers: {
'Authorization': `APIKey ${process.env.DATAJUD_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
query: { match: { numeroProcesso } }
})
}
);
return response.json();
})
);
Estrutura dos Movimentos Processuais
O campo movimentos contém o histórico de andamentos do processo. Cada movimento segue a Tabela Processual Unificada (TPU) do CNJ:
{
"movimentos": [
{
"codigo": 12223,
"nome": "Sentença",
"dataHora": "2026-03-15T14:32:00",
"complementosTabelados": [
{
"codigo": 3,
"nome": "Procedência"
}
]
},
{
"codigo": 22,
"nome": "Distribuição",
"dataHora": "2024-01-10T09:15:00"
}
]
}
Os códigos de movimentos mais relevantes para monitoramento automático incluem:
- Código 22: Distribuição
- Código 26: Conclusão ao juiz
- Código 12223: Sentença (com complemento de procedência/improcedência)
- Código 54: Acórdão
- Código 848: Trânsito em julgado
- Código 85: Arquivamento
Como o LegalSuite Usa o DataJud
O LegalSuite integra a API do DataJud para oferecer monitoramento de processos em 91 tribunais. O fluxo é:
🔍Monitoramento Contínuo
🔔Alertas Inteligentes
📅Extração de Prazos
DataJud vs. Scraping de Tribunais
Antes do DataJud, o monitoramento de processos exigia web scraping dos portais individuais de cada tribunal — uma tarefa frágil, cara e constantemente quebrada por mudanças nos sites. O DataJud padronizou o acesso e eliminou a necessidade de scraping para os dados históricos. Para movimentações em tempo real (DJe), o monitoramento ainda pode ser necessário, mas o DataJud cobre a maioria dos casos de uso de monitoramento.
Tribunais Disponíveis no DataJud
Os 91 tribunais disponíveis incluem todos os tribunais superiores e de segunda instância:
Tribunais Superiores: STF, STJ, TST, TSE, STM
Tribunais Regionais Federais: TRF1 (13 estados), TRF2 (RJ, ES), TRF3 (SP, MS), TRF4 (RS, SC, PR), TRF5 (5 estados do Nordeste), TRF6 (MG)
Tribunais Regionais do Trabalho: TRT1 a TRT24 (todos os estados)
Tribunais de Justiça Estaduais: TJAC, TJAL, TJAM, TJAP, TJBA, TJCE, TJDF, TJES, TJGO, TJMA, TJMG, TJMS, TJMT, TJPA, TJPB, TJPE, TJPI, TJPR, TJRJ, TJRN, TJRO, TJRR, TJRS, TJSC, TJSE, TJSP, TJTO
Tribunais Regionais Eleitorais: TRE de cada estado
Tribunais de Justiça Militar Estaduais: TJMMG, TJMRS, TJMSP
Monitore processos em 91 tribunais com DataJud no LegalSuite
O LegalSuite usa a API DataJud do CNJ para monitorar seus processos automaticamente. Receba alertas de novas movimentações em push, email ou WhatsApp.
Começar grátisPerguntas Frequentes
O DataJud substitui completamente o scraping dos portais dos tribunais?
Para dados históricos e movimentos processuais, o DataJud cobre a maioria dos casos de uso. Porém, para publicações no DJe (que é o que gera prazo processual), ainda é necessário acessar o portal do DJe de cada tribunal separadamente, pois o DataJud não inclui o texto integral das publicações. Sistemas como o LegalSuite combinam os dois: DataJud para dados processuais e monitoramento do DJe para alertas de intimações.
Posso buscar processos por CPF ou CNPJ?
O DataJud armazena nomes das partes, mas não indexa CPF/CNPJ diretamente nos campos pesquisáveis da API pública (por questões de privacidade LGPD). É possível buscar por nome da parte e depois filtrar por outros critérios no resultado. Algumas plataformas LegalTech fazem a correspondência de nomes internamente para localizar processos de uma pessoa física ou jurídica.
Qual é o limite de requisições diárias da API?
O CNJ define limites por API Key conforme o tipo de uso (pessoal, empresarial). Os limites são documentados em datajud.cnj.jus.br/api-docs e podem ser ajustados mediante solicitação justificada para usos em escala (como plataformas LegalTech que monitoram milhares de processos). Para uso individual, os limites padrão são suficientes para consultas cotidianas.
Os dados do DataJud são oficiais para apresentação em processos?
Os dados do DataJud são extraídos diretamente dos sistemas dos tribunais, mas para fins probatórios formais, recomenda-se obter a certidão diretamente do portal do tribunal ou do sistema oficial (PJe, eProc, ESAJ). O DataJud é adequado para monitoramento e acompanhamento operacional — a prova oficial é o documento do tribunal.
Como filtrar apenas movimentos novos (delta) desde a última consulta?
Use o campo movimentos.dataHora com um filtro de range para retornar apenas movimentos mais recentes que a última consulta:
{
"query": {
"nested": {
"path": "movimentos",
"query": {
"range": {
"movimentos.dataHora": {
"gte": "2026-03-30T00:00:00"
}
}
}
}
}
}
Armazene a data da última consulta por processo e use como parâmetro gte nas próximas verificações.
O DataJud cobre os Juizados Especiais?
Sim, os Juizados Especiais fazem parte dos TJs estaduais e TRFs, que já estão no DataJud. Os processos do JEC estadual aparecem no índice do respectivo TJ (ex.: TJSP inclui processos do JECC paulista). Os JEFs (Juizados Especiais Federais) aparecem nos índices dos TRFs.
Experimente o LegalSuite
44 calculadoras, gestão de escritório, monitoramento de 91 tribunais e IA jurídica.
Começar grátis