djen
Skill22 starsChanged 4 months agoMITView on GitHub
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.
In this repositoryOne other file it gives its agents.
- datajudSkill
The file
Files
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.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

