Djen
Agent Skills com conhecimento de produção sobre as APIs públicas do CNJ: DataJud e DJEN (Comunica PJe)
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.
2 things to look at
- 25 days oldThe repository was created 25 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 12 stars12 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.
What its author says it does
Copied from the file, not written here
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.
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