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.9.0.tar.gz (27.3 kB view details)

Uploaded Source

Built Distribution

escavador-0.9.0-py3-none-any.whl (38.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: escavador-0.9.0.tar.gz
  • Upload date:
  • Size: 27.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.7.17 Linux/5.15.0-1064-azure

File hashes

Hashes for escavador-0.9.0.tar.gz
Algorithm Hash digest
SHA256 79738945c695ae6e16a7dbe96634cf2f40345b7e0c89982b33ad286dbfc73222
MD5 73efa1d2fa245d3c117cb2c35a4b0ccb
BLAKE2b-256 8fd196ac501e3514fd56b96e772528adc60cde706d366776a0b6aae73550a3ee

See more details on using hashes here.

File details

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

File metadata

  • Download URL: escavador-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 38.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.7.17 Linux/5.15.0-1064-azure

File hashes

Hashes for escavador-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ddea120a3e021f2eb51ba771110b88b70ce7f5370a820fffcb0355b59b68e861
MD5 bc8f73158879799b9937f9e063b0009e
BLAKE2b-256 719ef872dd26136c95597a2bf7fa9555ff45af37296fc8a02ffef49f262d254a

See more details on using hashes here.

Supported by

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