Package: escavador
O SDK em Python da API do EscavadorDocumentação disponívelAPI V1API V2InstalaçãoO SDK pode ser instalado viapipatravés do comando:python-mpipinstallescavadorRequisitosPython 3.6+Como ConfigurarNo arquivo.envna raíz do seu projeto, crie uma variável chamadaESCAVADOR_API_KEYe 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çãoconfig()durante a execução do seu projeto, antes de utilizar qualquer outro módulo do SDK.importescavadorescavador.config("SUA_API_KEY")Para obter seu token da API, acesse opainel de tokensExemplosConsultando os processos de uma empresa pelo CNPJ usando a API V2Processos de um envolvido pelo seu nome ou documentofromescavador.v2importProcesso# Chamada inicial na API /api/v2/envolvido/processos?cpf_cnpj=00000000000envolvido,processos=Processo.por_cnpj(cnpj="00653149000170")# Também aceita o formato 00.000.000/0000-00)print(f"Processos da empresa{envolvido.nome}:")whileprocessos:forprocessoinprocessos: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_PAGINAprocessos=processos.continuar_busca()Consultando o processo mais recente de um advogado usando a API V2Consultando processos de um advogado usando sua OABfromescavadorimportCriterioOrdenacao,Ordemfromescavador.v2importProcessoadvogado,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 V2Consultando movimentações de um processofromescavador.v2importProcessoresultado=Processo.movimentacoes(numero_cnj="0000000-00.0000.0.00.0000")whileresultado:formovimentacaoinresultado:print(f"{movimentacao.data}-{movimentacao.tipo}:")print(f"{movimentacao.conteudo}")print()resultado=resultado.continuar_busca()# Solicita a próxima página de movimentaçõesConsultando a última movimentação dos processos mais recentes de uma pessoa pelo nome usando a API V2Processos de um envolvido pelo seu nome ou documentofromescavadorimportCriterioOrdenacao,Ordemfromescavador.v2importProcessoenvolvido,processos=Processo.por_nome(nome="Fulano de Tal da Silva",ordena_por=CriterioOrdenacao.INICIO,ordem=Ordem.DESC)forprocessoinprocessos: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)ifmovimentacoes:print(f"Última movimentação:{movimentacoes[0].conteudo}")Solicitar busca assíncrona de processo usando a API V1Buscando informações do processo no sistema do Tribunal(Assíncrono)fromescavadorimportProcessoresultado_busca=Processo.informacoes_no_tribunal("0000000-00.0000.0.00.0000")# Gera uma busca assíncronaifresultado_busca['resposta']['status']=='SUCESSO':forinstanciainresultado_busca['resposta']['resposta']['instancias']:print(instancia['assunto'])elifresultado_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 classeCallback.O móduloserverda bibliotecahttpoferece uma interface simples para receber callbacks. Basta definir o recebimento de requestsPOSTconformando coma documentação do conteúdo dos callbacks.Consultar manualmente o status de uma busca assíncrona previamente solicitadaEmbora 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.fromescavadorimportBuscaAssincronafromtimeimportsleepwhileTrue:resultado_busca=BuscaAssincrona.por_id(id_async)ifresultado_busca['resposta']['status']!='PENDENTE':breaksleep(15)ifresultado_busca['resposta']['status']=='SUCESSO':# Os dados consultados estarão disponíveis no campo ['resposta']['resposta']passelifresultado_busca['resposta']['status']=='ERRO':print("Algo deu errado, tente novamente mais tarde.")Criando Monitoramentos na API V1fromescavadorimportMonitoramentoTribunal,MonitoramentoDiario,TiposMonitoramentosTribunal,TiposMonitoramentosDiario,FrequenciaMonitoramentoTribunal# Monitoramento nos sisteams dos Tribunaismonitoramento_tribunal=MonitoramentoTribunal.criar(tipo_monitoramento=TiposMonitoramentosTribunal.UNICO,valor="0000000-00.0000.0.00.0000",tribunal="TJSP",frequencia=FrequenciaMonitoramentoTribunal.SEMANAL)# Monitoramento em Diários Oficiaismonitoramento_diario=MonitoramentoDiario.criar(TiposMonitoramentosDiario.PROCESSO,processo_id=2,origens_ids=[2,4,6])Consultando os Tribunais e sistemas disponíveis para a API V1fromescavadorimportTribunaltribunais_disponiveis=Tribunal.sistemas_disponiveis()Módulos Disponíveis e Referência da APIV1:MóduloLink APIBuscahttps://api.escavador.com/v1/docs/#buscaProcessohttps://api.escavador.com/v1/docs/#processosCallbackhttps://api.escavador.com/v1/docs/#callbackDiarioOficialhttps://api.escavador.com/v1/docs/#dirios-oficiaisInstituicaohttps://api.escavador.com/v1/docs/#instituiesLegislacaohttps://api.escavador.com/v1/docs/#legislaoJurisprudenciahttps://api.escavador.com/v1/docs/#jurisprudnciasMonitoramentoDiariohttps://api.escavador.com/v1/docs/#monitoramento-de-dirios-oficiaisMonitoramentoTribunalhttps://api.escavador.com/v1/docs/#monitoramento-no-site-do-tribunalMovimentacaohttps://api.escavador.com/v1/docs/#movimentaesPessoahttps://api.escavador.com/v1/docs/#pessoasTribunalhttps://api.escavador.com/v1/docs/#tribunaisSaldohttps://api.escavador.com/v1/docs/#saldo-da-apiV2:MóduloLink APIv2.Processohttps://api.escavador.com/v2/docs/#processosv2.Tribunalhttps://api.escavador.com/v2/docs/#tribunais