Djen
Guia prático da API do DJEN — Diário de Justiça Eletrônico Nacional (Comunica PJe, comunicaapi.pje.jus.br), a API pública do CNJ para intimações, citações e publicações processuais de todos os tribunais brasileiros. Vai além da documentação oficial: registra conhecimento de produção como o geo-bloqueio (403 para IPs fora do Brasil — derruba cloud functions em regiões estrangeiras), o limite silencioso de 50 itens por página, os sufixos de inscrição da OAB que variam por tribunal (sem eles ~90% das publicações ficam invisíveis), páginas vazias transientes, teto de 10.000 resultados e sanitização do HTML das publicações. Use sempre que for integrar, consultar ou depurar o DJEN/Comunica PJe — monitoramento de publicações por OAB, busca de intimações por processo, certidões em PDF ou erros 403/500/páginas vazias nessa API.From its SKILL.md
npx -y skills add rvsanches/skills-datajud-djen --skill djenAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.4 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
API do DJEN / Comunica PJe (CNJ)
O DJEN (Diário de Justiça Eletrônico Nacional) centraliza as comunicações processuais — intimações, citações e demais publicações — de todos os tribunais brasileiros (Resolução CNJ nº 455; cobertura nacional obrigatória desde 2025). A API pública do Comunica PJe expõe essas comunicações para consulta.
Diferença-chave para o DataJud: o DataJud mostra movimentações (o que aconteceu no processo); o DJEN mostra o que dispara prazo contra o advogado. Para monitorar prazos, é o DJEN que importa.
Portal: https://comunica.pje.jus.br. Swagger: https://comunicaapi.pje.jus.br. Este guia registra o que a documentação não conta, aprendido operando a API em produção (projeto Judis, 2026).
Início rápido
# ATENÇÃO: precisa rodar de IP brasileiro (ver regra nº 1)
curl 'https://comunicaapi.pje.jus.br/api/v1/comunicacao?numeroOab=123456&ufOab=SP&dataDisponibilizacaoInicio=2026-07-11&dataDisponibilizacaoFim=2026-07-12&pagina=1&itensPorPagina=50' \
-H 'Accept: application/json'
Sem autenticação, sem chave, sem cadastro. A resposta é
{ "count": <total>, "items": [ ... ] }.
As 7 regras de ouro (aprendidas em produção)
-
A API geo-bloqueia IPs fora do Brasil: HTTP 403. Funciona do seu notebook e falha no deploy — porque sua cloud function/container está em região estrangeira (
us-central1,us-east-1…). Rode o backend em região brasileira (GCPsouthamerica-east1, AWSsa-east-1). Descobrimos em smoke test de produção: mesma requisição, 200 do Brasil, 403 dos EUA. O DataJud não tem esse bloqueio — é específico do Comunica. -
itensPorPaginamáximo é 50 — e o erro é silencioso. Acima de 50 a API respondeitems: []comcountpreenchido, sem erro. Parece "sem resultados", mas é o parâmetro. Use exatamente 50 e pagine. -
Página vazia ≠ fim dos dados. Sob instabilidade a API retorna páginas intermitentemente vazias no meio da paginação. Se
acumulado < count, retente a mesma página com backoff antes de desistir. -
Monitorando por OAB, consulte as variantes de sufixo. O filtro
numeroOabé match exato de string, e cada tribunal grava a inscrição de um jeito (123456no TJSP,123456-Oou123456-Ano TJMT…). Sem varrer os sufixos["", "-O", "-A", "-N", "-B", "-S", "-E"], a maior parte das publicações fica invisível. E nunca case por nome do advogado — grafias variam entre tribunais; só OAB normalizada (dígitos) + UF. -
counté capado em ~10.000 por consulta. Para volumes grandes, particione por data/tribunal em vez de paginar até o fim. -
Deduplique pelo campo
id(número, único por comunicação). A mesma consulta em janelas sobrepostas retorna repetidos — janela sobreposta é inclusive recomendada (ontem+hoje) para tolerar atrasos de disponibilização. -
O campo
textoé HTML de dezenas de tribunais — trate como input hostil. Sanitize na exibição removendo não sóscript/handlers, mas tambémclass/style/id: com CSS utilitário global (Tailwind), umclass="fixed inset-0 z-50"vindo numa publicação cobre a tela inteira do seu app (UI redressing).
Referências (leia conforme a tarefa)
| Arquivo | Quando ler |
|---|---|
| references/consultas.md | Montar requests: filtros, paginação correta (com os quirks), variantes de OAB, certidão em PDF, janelas de data |
| references/resposta.md | Interpretar respostas: todos os campos (snake_case misturado com camelCase), dedupe, cancelamento de publicação, normalização |
| references/producao.md | Operar em produção: geo-bloqueio e regiões, retry/backoff/circuit breaker, tetos de segurança, sanitização de HTML, agendamento e alertas |
Relação com o DataJud
| DJEN | DataJud (skill datajud) | |
|---|---|---|
| Conteúdo | Intimações/citações — o que dispara prazo | Movimentações — o que aconteceu |
| Autenticação | Nenhuma | Chave pública (header APIKey) |
| Geo-bloqueio | 403 para IP fora do Brasil | Não tem |
| Protocolo | GET REST com query string | POST, Elasticsearch Query DSL |
| Rate limit | Não documentado (500 sob rajada) | Cota global por chave compartilhada |
Ambas são do CNJ, sem SLA nem versionamento formal — projete para indisponibilidade e mudanças sem aviso, e mantenha na interface o aviso de que a ferramenta não substitui a consulta oficial ao diário.
What ships with it: 3 files
16.0 KB alongside SKILL.md
references/
- consultas.md5.2 KB
- producao.md5.8 KB
- resposta.md5.0 KB