Executando verificação de segurança...
15

Abstraindo a API Pública do CNJ - DataJud

Nesta semana o Filipe Deschamps postou em sua newsletter oficial sobre a API Pública do DataJud, lançada pelo CNJ para oferecer de forma unificada em uma única API os metadados dos processos judiciais de todo o Brasil (exceto os que tramitam em segredo de justiça).

Como trabalho atualmente no Judiciário Federal e me interesso por esse assunto, criei uma biblioteca javascript para abstrair o uso dessa API e estou convidando a comunidade open-source brasileira para ajudar na manutenção e construção de novas features😍.

Github do projeto
NPM
Notícia oficial postada aqui no Tabnews

Convidem seus amigos, familiares e pets para contribuir com o crescimento do projeto 😃

Carregando publicação patrocinada...
2
1
2

Valeu pela iniciativa!

Seria legal entrar em contato com o pessoal do BrasilAPI, que tbm tem a mão do Deschamps, e integrar com eles, seria muito bom todas essas coisas unificadas!

2

Cara, parabéns pela iniciativa. Eu devo começar a mexer com a API na proxima semana. Se eu tiver algo a acrescentar, vai ser um prazer contribuir.

2
2

Eu instalei pelo NPM e criei um código HTML assim, o console está dando o seguinte erro:
ambiguous indirect export: default

<script type="module">    
    import BuscaProcesso from "./node_modules/busca-processos-judiciais/dist/index.js";
 //   const BuscaProcesso = require("busca-processos-judiciais");
    async function buscarProcesso() {
  const busca = new BuscaProcesso(
    "TRF4",
    "APIKey cDZHYzlZa0JadVREZDJCendQbXY6SkJlTzNjLV9TRENyQk1RdnFKZGRQdw==",
  );
  return busca.getCleanResult("50342112220234040000");
}

buscarProcesso()
  .then((data) => console.log(data))
  .catch((erro) => console.log(erro));
</script>
1

Eai Luke. Beleza?
Respondi ao seu issue report no Github, mas vou deixar aqui a solução para caso alguém encontre o mesmo problema :-)

Resposta original no Issue do GitHub:

Vi que você está fazendo o import fora de um ambiente node (usando seu Browser), por isso não está utilizando um "bare import" e sim uma importação com o caminho completo do arquivo.

A solução para esse bug é bem simples: basta você alterar 2 coisas na sua linha de importação, ficando assim:

import BuscaProcesso from './node_modules/busca-processos-judiciais/dist/index.mjs'

Testei seu código aqui e funcionou perfeitamente com essa alteração.

Isso funciona porque:

O pacote BuscaProcesso é exportado como default, então a importação dentro de chaves "{}" gerará conflito.
Como você está importando de dentro de um JS module (já que você especificou a propriedade "type" como "module"), a exportação do BuscaProcesso, nesse caso, é feita de dentro do arquivo index.mjs, que é um ES6 Module (o index.js é commom JS).

Abraço!

1

Desculpa mandar aqui e lá, estava curioso em ver funcionando. Do jeito que passou dá um erro do import tanto no firefox quanto no chrome, fala que por causa do mime type não pode ser importado, aí eu alterei o index.mjs para index2.js e importei e deu certo, obrigado por responder.

1
1

Não disponibiliza pela OAB, Thiago.

As buscas personalizadas são feitas com a seguinte query (exemplo de busca por código da classe processual e por código do órgão julgador):

{
    "query": {
        "bool": {
            "must": [
                {"match": {"classe.codigo": 1116}},
                {"match": {"orgaoJulgador.codigo": 13597}}
            ]
        }
    }
}

Os dados que podem ser buscados por essa query são, à princípio (não testei, mas a lógica diz que é assim que funciona), todos que aparecem numa resposta:

{
    "took": 213,
    "timed_out": false,
    "_shards": {
        "total": 3,
        "successful": 3,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 10000,
            "relation": "gte"
        },
        "max_score": 2.0,
        "hits": [
            {
                "_index": "api_publica_tjdft",
                "_type": "_doc",
                "_id": "TJDFT_1116_G1_13597_07223914020178070001",
                "_score": 2.0,
                "_source": {
                    "classe": {
                        "codigo": 1116,
                        "nome": "Execução Fiscal"
                    },
                    "numeroProcesso": "07223914020178070001",
                    "sistema": {
                        "codigo": 1,
                        "nome": "Pje"
                    },
                    "formato": {
                        "codigo": 1,
                        "nome": "Eletrônico"
                    },
                    "tribunal": "TJDFT",
                    "dataHoraUltimaAtualizacao": "2022-09-06T12:03:20.257Z",
                    "grau": "G1",
                    "@timestamp": "2023-04-13T17:59:46.214Z",
                    "dataAjuizamento": "2017-08-21T10:05:32.000Z",
                    "movimentos": [
                        {
                            "complementosTabelados": [
                                {
                                    "codigo": 2,
                                    "valor": 2,
                                    "nome": "sorteio",
                                    "descricao": "tipo_de_distribuicao_redistribuicao"
                                }
                            ],
                            "codigo": 26,
                            "nome": "Distribuição",
                            "dataHora": "2017-08-21T10:05:32.000Z"
                        },
                        ...
                        {
                            "codigo": 11382,
                            "nome": "Bloqueio/penhora on line",
                            "dataHora": "2022-07-13T07:25:59.000Z"
                        },
                        {
                            "codigo": 132,
                            "nome": "Recebimento",
                            "dataHora": "2022-07-13T07:26:00.000Z"
                        }
                    ],
                    "id": "TJDFT_1116_G1_13597_07223914020178070001",
                    "nivelSigilo": 0,
                    "orgaoJulgador": {
                        "codigoMunicipioIBGE": 5300108,
                        "codigo": 13597,
                        "nome": "VARA DE EXECU??O FISCAL DO DF"
                    },
                    "assuntos": [
                        [
                            {
                                "codigo": 6017,
                                "nome": "Dívida Ativa (Execução Fiscal)"
                            }
                        ]
                    ]
                }
            },
            
//... demais dados duplicados
1

Show de bola. Poxa se soubesse kkk tinha utilizado o seu projeto e tinha ajudado em algo. Pois quando fiquei sabendo, ja montei comecei a montar meu projeto com ela e estou implementando IA para executar ações de produtividade que alguns sistemas na area não tem. Mas parabens e vou tentar contribuir sim

1
1

Muito bom o projeto!

Eu estou tentando montar uma analise com todos os processos, mas nao consigo passar a limitacao de 10.000 processos. Alguem sabe como? Alem disso, parece que a ultima atualizacao foi em Outubro de 2023, pra voces tambem?

2

Update: O método getProceduralClassAndJudgingBodyWithPagination agora possui um atributo chamado searchAfter, que é opcional e aceita o resultado do campo sort do último processo do resultado anterior. Fazendo uma nova chamada com esse método e passando esse valor, a API irá devolvera a próxima página.

Fiz um teste unitário e funcionou corretamente.
Peço que teste em seu ambiente de desenvolvimento, e qualquer problema me avise ;-)

Já mandei a atualização 1.0.2 pro npmjs.org, só atualizar seu pacote.

Abraço.

1
1

Sabe que não cheguei a perceber isso. Não está vindo nenhum processo posterior a outubro de 2023? É estranho, não sei por que o CNJ colocaria esse limite temporal.

1
1
1

Em princípio não, Gabriel.

Esses são os dados de retorno (um exemplo que consta no site oficial da API):

{
    "took": 213,
    "timed_out": false,
    "_shards": {
        "total": 3,
        "successful": 3,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 10000,
            "relation": "gte"
        },
        "max_score": 2.0,
        "hits": [
            {
                "_index": "api_publica_tjdft",
                "_type": "_doc",
                "_id": "TJDFT_1116_G1_13597_07223914020178070001",
                "_score": 2.0,
                "_source": {
                    "classe": {
                        "codigo": 1116,
                        "nome": "Execução Fiscal"
                    },
                    "numeroProcesso": "07223914020178070001",
                    "sistema": {
                        "codigo": 1,
                        "nome": "Pje"
                    },
                    "formato": {
                        "codigo": 1,
                        "nome": "Eletrônico"
                    },
                    "tribunal": "TJDFT",
                    "dataHoraUltimaAtualizacao": "2022-09-06T12:03:20.257Z",
                    "grau": "G1",
                    "@timestamp": "2023-04-13T17:59:46.214Z",
                    "dataAjuizamento": "2017-08-21T10:05:32.000Z",
                    "movimentos": [
                        {
                            "complementosTabelados": [
                                {
                                    "codigo": 2,
                                    "valor": 2,
                                    "nome": "sorteio",
                                    "descricao": "tipo_de_distribuicao_redistribuicao"
                                }
                            ],
                            "codigo": 26,
                            "nome": "Distribuição",
                            "dataHora": "2017-08-21T10:05:32.000Z"
                        },
                        ...
                        {
                            "codigo": 11382,
                            "nome": "Bloqueio/penhora on line",
                            "dataHora": "2022-07-13T07:25:59.000Z"
                        },
                        {
                            "codigo": 132,
                            "nome": "Recebimento",
                            "dataHora": "2022-07-13T07:26:00.000Z"
                        }
                    ],
                    "id": "TJDFT_1116_G1_13597_07223914020178070001",
                    "nivelSigilo": 0,
                    "orgaoJulgador": {
                        "codigoMunicipioIBGE": 5300108,
                        "codigo": 13597,
                        "nome": "VARA DE EXECU??O FISCAL DO DF"
                    },
                    "assuntos": [
                        [
                            {
                                "codigo": 6017,
                                "nome": "Dívida Ativa (Execução Fiscal)"
                            }
                        ]
                    ]
                }
            },
            {
                "_index": "api_publica_tjdft",
                "_type": "_doc",
                "_id": "TJDFT_1116_G1_13597_00073039720138070015",
                "_score": 2.0,
                "_source": {
                    "classe": {
                        "codigo": 1116,
                        "nome": "Execução Fiscal"
                    },
                    "numeroProcesso": "00073039720138070015",
                    "sistema": {
                        "codigo": 1,
                        "nome": "Pje"
                    },
                    "formato": {
                        "codigo": 1,
                        "nome": "Eletrônico"
                    },
                    "tribunal": "TJDFT",
                    "dataHoraUltimaAtualizacao": "2022-09-06T17:26:23.938Z",
                    "grau": "G1",
                    "@timestamp": "2023-04-13T18:02:23.754Z",
                    "dataAjuizamento": "2019-05-30T03:17:56.000Z",
                    "movimentos": [
                        {
                            "complementosTabelados": [
                                {
                                    "codigo": 2,
                                    "valor": 1,
                                    "nome": "competência exclusiva",
                                    "descricao": "tipo_de_distribuicao_redistribuicao"
                                }
                            ],
                            "codigo": 26,
                            "nome": "Distribuição",
                            "dataHora": "2013-02-18T13:17:23.000Z"
                        },
                        ...
                        {
                            "codigo": 245,
                            "nome": "Provisório",
                            "dataHora": "2019-05-30T11:10:02.000Z"
                        }
                    ],
                    "id": "TJDFT_1116_G1_13597_00073039720138070015",
                    "nivelSigilo": 0,
                    "orgaoJulgador": {
                        "codigoMunicipioIBGE": 5300108,
                        "codigo": 13597,
                        "nome": "VARA DE EXECU??O FISCAL DO DF"
                    },
                    "assuntos": [
                        [
                            {
                                "codigo": 6017,
                                "nome": "Dívida Ativa (Execução Fiscal)"
                            }
                        ],
                        [
                            {
                                "codigo": 10394,
                                "nome": "Dívida Ativa não-tributária"
                            }
                        ]
                    ]
                }
            }
            ...
        ]
    }
}
1

Eu cheguei a usar essa api para ter um dashboard mais bonita dos meus processos (sou advogado a 11 anos e sou dev tem um certo tempo).
Eu estou procurando uma api para ter acesso a mais dados, incluindo nome de asvogados, consulta por assuntos do CNJ.
Você por acaso pode me recomendar alguma API?

1
1

Sabe me informar se existe alguma iniciativa semelhante em R ou Python? A lib em javascript ficou bem útil , muito boa sua ideia.

1
1
1
1
0
-1