Project

datajud

0.0
The project is in a healthy, maintained state
Gem Ruby que permite busca e extração detalhada de processos judiciais diretamente da API pública DataJUD do CNJ, preenchendo estruturas de processos brasileiros.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

~> 2.0
~> 0.3
~> 1.14
 Project Readme

Datajud

SDK simples para consumir a API pública do DataJud (CNJ) em Ruby.

Installation

Install the gem and add to the application's Gemfile by executing:

$ bundle add datajud

If bundler is not being used to manage dependencies, install the gem by executing:

$ gem install datajud

Usage

Consultar processo com API orientada a objeto

require 'datajud'

# Busca processo (tribunal pode ser explícito ou inferido)
processo = Datajud.find("00008323520184013202")
processo = Datajud.find("00008323520184013202", tribunal: "trf1")

# Acessa atributos principais
puts processo.tribunal # Tribunal como objeto ou string
puts processo.numero
puts processo.vara
puts processo.situacao
puts processo.andamentos
puts processo.documentos
puts processo.audiencias
puts processo.sistema
puts processo.formato
puts processo.data_ultima_atualizacao
puts processo.data_ajuizamento
puts processo.nivel_sigilo
puts processo.id
puts processo.timestamp

# Tribunal como objeto (se disponível)
puts processo.tribunal.nome if processo.tribunal.respond_to?(:nome)
puts processo.tribunal.sigla if processo.tribunal.respond_to?(:sigla)
puts processo.tribunal.esfera if processo.tribunal.respond_to?(:esfera)

# Exemplos de acesso orientado a objeto
puts processo.vara.nome if processo.vara.respond_to?(:nome)
puts processo.vara.comarca.nome if processo.vara&.comarca&.respond_to?(:nome)
puts processo.assunto.map(&:nome) if processo.assunto

# Tabela HTML de endpoints (todos os tribunais conhecidos)
Datajud.endpoints_table(Datajud::TRIBUNAIS_SIGLAS)

Métodos de consulta disponíveis

# API orientada a objeto
processo = Datajud.find("00008323520184013202", tribunal: "trf1")
# ou
processo = Datajud.find("00008323520184013202", "trf1")

# Retorno bruto (hash)
resultado = Datajud.processo("00008323520184013202", tribunal: "trf1")

# Consulta genérica com filtros (Elasticsearch)
resultado = Datajud::ApiClient.buscar("trf1", match: { numeroProcesso: "00008323520184013202" })

# Atalho para buscar processo (modo legado)
resultado = Datajud::ApiClient.buscar_processo("00008323520184013202", "trf1")

Dica: quando quiser ver todas as chaves retornadas pela API, prefira Datajud.processo.

Compatibilidade com ApiClient (modo legado)

Datajud.configure do |config|
    config.api_key = "SUA_API_KEY"
end

resultado = DataJud::ApiClient.buscar_processo("00008323520184013202", "trf1")
puts resultado

Auto-detectar tribunal pelo número CNJ

Se o número estiver no formato CNJ, a gem tenta derivar o tribunal automaticamente para evitar varrer todas as bases.

processo = Datajud.find("0000832-35.2018.8.26.0202")
puts processo.tribunal.nome

A UF da comarca é derivada localmente pelo código IBGE do município quando disponível.

Configuração (API key, timeout e retries)

Datajud.configure do |config|
    config.api_key = "SUA_API_KEY"
    config.open_timeout = 5
    config.read_timeout = 15
    config.retries = 2
    config.retry_wait = 0.5
    config.fallback_all_on_miss = true
    config.lookup_ibge = true
    config.ibge_base_url = "https://servicodados.ibge.gov.br/api/v1/localidades/municipios"
end

Ou via variável de ambiente:

export DATAJUD_API_KEY="SUA_API_KEY"

Consultar processo sem passar tribunal

require 'datajud'

resultado = Datajud.processo("00008323520184013202")
puts resultado

Consultar processo passando 1 tribunal

require 'datajud'

resultado = Datajud.processo("00008323520184013202", tribunal: "trf1")
puts resultado

Consultar processo passando vários tribunais

require 'datajud'

resultado = Datajud.processo("00008323520184013202", tribunal: ["trf1", "tjmg"])
puts resultado

Listas de tribunais disponíveis

Você pode acessar as listas de siglas dos tribunais diretamente pelas constantes do módulo:

require 'datajud'

# Todos os tribunais
Datajud::TRIBUNAIS_SIGLAS

# Apenas TJs
Datajud::TJS_SIGLAS

# Apenas TRFs
Datajud::TRFS_SIGLAS

# Apenas TRTs
Datajud::TRTS_SIGLAS

# Apenas TREs
Datajud::TRES_SIGLAS

# Apenas Superiores
Datajud::SUPERIORES_SIGLAS

Development

After checking out the repo, run bin/setup to install dependencies. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and the created tag, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/PablUoo/datajud. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the Datajud project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.