Skip to main content

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

Metadata

Release files for escavador 0.11.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for escavador 0.11.2
File Size Uploaded
escavador-0.11.2.tar.gz 26.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for escavador 0.11.2
File Interpreter ABI Platform
escavador-0.11.2-py3-none-any.whl Python 3 none any Details

Total release size: 66.2 kB

Release files / escavador-0.11.2.tar.gz

Download URL escavador-0.11.2.tar.gz
Size 26.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ffc5d98e01b04ff9ad14e7ec46ae5895f496e40edbe184352827cb62a3375c58
BLAKE2b-256 checksum
How to use checksums
53ec39df98b1203aaa4da53ad5e6dcf1c40050ef5b4a9696f8b9cae3be49d2cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.12 Linux/6.11.0-1018-azure

Release files / escavador-0.11.2-py3-none-any.whl

Download URL escavador-0.11.2-py3-none-any.whl
Size 39.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
92788c268be38739d78b79ed5526c48104dff7930ab65c1be145234c48cc8e05
BLAKE2b-256 checksum
How to use checksums
43d7ff73353526aaf8fd408d3996faeb7acbcbfac9d7abf8548a283b252772b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.12 Linux/6.11.0-1018-azure

Release history Release notifications | RSS feed

This release

0.11.2 This release

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.5.1

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page