Skip to main content

A library to interact with Escavador API

Project description

O SDK em Python da API do Escavador

Documentação disponível

Instalação

O SDK pode ser instalado via pip através do comando:

python -m pip install escavador

Requisitos

  • Python 3.7+

Como Configurar

No arquivo .env na raíz do seu projeto, crie uma variável chamada ESCAVADOR_API_KEY e atribua a ela o seu token da API. A linha onde a variável é definida deve ficar parecida com:

ESCAVADOR_API_KEY="SUA_API_KEY"

Alternativamente, utilize a função config() durante a execução do seu projeto, antes de utilizar qualquer outro módulo do SDK.

import escavador
escavador.config("SUA_API_KEY")

Para obter seu token da API, acesse o painel de tokens

Exemplos

Consultando os processos de uma empresa pelo CNPJ usando a API V2

Processos de um envolvido pelo seu nome ou documento

from escavador.v2 import Processo

# Chamada inicial na API /api/v2/envolvido/processos?cpf_cnpj=00000000000
envolvido, processos = Processo.por_cnpj(cnpj="00653149000170")  # Também aceita o formato 00.000.000/0000-00)

print(f"Processos da empresa {envolvido.nome}:")

while processos:
    for processo in processos:
        print(f"{processo.numero_cnj}:")
        print(f"Fonte: {processo.fontes[0].nome}")
        print(f"Data de início: {processo.data_inicio}")
        print(f"Última movimentação: {processo.data_ultima_movimentacao}")

    # Chamada para a paginação via cursor na API /api/v2/envolvido/processos?cpf_cnpj=00000000000&cursor=HASH_PROXIMA_PAGINA
    processos = processos.continuar_busca()

Consultando o processo mais recente de um advogado usando a API V2

Consultando processos de um advogado usando sua OAB

from escavador import CriterioOrdenacao, Ordem
from escavador.v2 import Processo

advogado, processos = Processo.por_oab(numero=12345,
                                       estado="SP",
                                       ordena_por=CriterioOrdenacao.INICIO,
                                       ordem=Ordem.DESC)

processo = processos.pop()

print(f"{processo.numero_cnj}: {processo.titulo_polo_ativo} X {processo.titulo_polo_passivo}")

Buscando as movimentações de um processo usando a API V2

Consultando movimentações de um processo

from escavador.v2 import Processo

resultado = Processo.movimentacoes(numero_cnj="0000000-00.0000.0.00.0000")

while resultado:
    for movimentacao in resultado:
        print(f"{movimentacao.data} - {movimentacao.tipo}:")
        print(f"{movimentacao.conteudo}")
        print()
    resultado = resultado.continuar_busca() # Solicita a próxima página de movimentações

Consultando a última movimentação dos processos mais recentes de uma pessoa pelo nome usando a API V2

Processos de um envolvido pelo seu nome ou documento

from escavador import CriterioOrdenacao, Ordem
from escavador.v2 import Processo

envolvido, processos = Processo.por_nome(nome="Fulano de Tal da Silva",
                                         ordena_por=CriterioOrdenacao.INICIO,
                                         ordem=Ordem.DESC)

for processo in processos:
    print(f"{processo.numero_cnj}:")
    print(f"Fonte: {processo.fontes[0].nome}")
    print(f"Data de início: {processo.data_inicio}")
    movimentacoes = Processo.movimentacoes(numero_cnj=processo.numero_cnj)
    if movimentacoes:
        print(f"Última movimentação: {movimentacoes[0].conteudo}")

Solicitar busca assíncrona de processo usando a API V1

Buscando informações do processo no sistema do Tribunal (Assíncrono)

from escavador import Processo

resultado_busca = Processo.informacoes_no_tribunal("0000000-00.0000.0.00.0000")  # Gera uma busca assíncrona

if resultado_busca['resposta']['status'] == 'SUCESSO':
    for instancia in resultado_busca['resposta']['resposta']['instancias']:
        print(instancia['assunto'])

elif resultado_busca['resposta']['status'] == 'PENDENTE':
    # O ID de uma busca assíncrona pode ser usado para consultar seu status 
    # ou identificar a requisição originária ao receber o callback no seu servidor.
    id_async = resultado_busca['resposta']['id']

É recomendado que se utilize o callback ao invés de continuamente consultar o resultado. Entretanto, é possível consultar em massa os seus callbacks cadastrados utilizando a classe Callback.

O módulo server da biblioteca http oferece uma interface simples para receber callbacks. Basta definir o recebimento de requests POST conformando com a documentação do conteúdo dos callbacks.

Consultar manualmente o status de uma busca assíncrona previamente solicitada

Embora não seja recomendado devido à possibilidade de saturação do seu limite de requisições por minuto, é possível consultar periodicamente o status de uma busca assíncrona.

from escavador import BuscaAssincrona
from time import sleep

while True:
    resultado_busca = BuscaAssincrona.por_id(id_async)
    if resultado_busca['resposta']['status'] != 'PENDENTE':
        break
    sleep(15)

if resultado_busca['resposta']['status'] == 'SUCESSO':
    # Os dados consultados estarão disponíveis no campo ['resposta']['resposta']
    pass
elif resultado_busca['resposta']['status'] == 'ERRO':
    print("Algo deu errado, tente novamente mais tarde.")

Criando Monitoramentos na API V1

from escavador import MonitoramentoTribunal, MonitoramentoDiario, TiposMonitoramentosTribunal, TiposMonitoramentosDiario,FrequenciaMonitoramentoTribunal

# Monitoramento nos sisteams dos Tribunais
monitoramento_tribunal = MonitoramentoTribunal.criar(tipo_monitoramento=TiposMonitoramentosTribunal.UNICO,
                                                       valor="0000000-00.0000.0.00.0000",
                                                       tribunal="TJSP",
                                                       frequencia=FrequenciaMonitoramentoTribunal.SEMANAL)

# Monitoramento em Diários Oficiais
monitoramento_diario = MonitoramentoDiario.criar(TiposMonitoramentosDiario.PROCESSO, processo_id=2, origens_ids=[2,4,6])

Consultando os Tribunais e sistemas disponíveis para a API V1

from escavador import Tribunal

tribunais_disponiveis = Tribunal.sistemas_disponiveis()

Módulos Disponíveis e Referência da API

V1:

Módulo Link API
Busca https://api.escavador.com/v1/docs/#busca
Processo https://api.escavador.com/v1/docs/#processos
Callback https://api.escavador.com/v1/docs/#callback
DiarioOficial https://api.escavador.com/v1/docs/#dirios-oficiais
Instituicao https://api.escavador.com/v1/docs/#instituies
Legislacao https://api.escavador.com/v1/docs/#legislao
Jurisprudencia https://api.escavador.com/v1/docs/#jurisprudncias
MonitoramentoDiario https://api.escavador.com/v1/docs/#monitoramento-de-dirios-oficiais
MonitoramentoTribunal https://api.escavador.com/v1/docs/#monitoramento-no-site-do-tribunal
Movimentacao https://api.escavador.com/v1/docs/#movimentaes
Pessoa https://api.escavador.com/v1/docs/#pessoas
Tribunal https://api.escavador.com/v1/docs/#tribunais
Saldo https://api.escavador.com/v1/docs/#saldo-da-api

V2:

Módulo Link API
v2.Processo https://api.escavador.com/v2/docs/#processos
v2.Tribunal https://api.escavador.com/v2/docs/#tribunais

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

escavador-0.11.2.tar.gz (26.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

escavador-0.11.2-py3-none-any.whl (39.3 kB view details)

Uploaded Python 3

File details

Details for the file escavador-0.11.2.tar.gz.

File metadata

  • Download URL: escavador-0.11.2.tar.gz
  • Upload date:
  • Size: 26.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.12 Linux/6.11.0-1018-azure

File hashes

Hashes for escavador-0.11.2.tar.gz
Algorithm Hash digest
SHA256 ffc5d98e01b04ff9ad14e7ec46ae5895f496e40edbe184352827cb62a3375c58
MD5 0bf1d20a5a06a7fc6e95437ad40d54f3
BLAKE2b-256 53ec39df98b1203aaa4da53ad5e6dcf1c40050ef5b4a9696f8b9cae3be49d2cd

See more details on using hashes here.

File details

Details for the file escavador-0.11.2-py3-none-any.whl.

File metadata

  • Download URL: escavador-0.11.2-py3-none-any.whl
  • Upload date:
  • Size: 39.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.12 Linux/6.11.0-1018-azure

File hashes

Hashes for escavador-0.11.2-py3-none-any.whl
Algorithm Hash digest
SHA256 92788c268be38739d78b79ed5526c48104dff7930ab65c1be145234c48cc8e05
MD5 87a21e7ec0bc6bc0e8d2910e1bd9d8e5
BLAKE2b-256 43d7ff73353526aaf8fd408d3996faeb7acbcbfac9d7abf8548a283b252772b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page