Esse repositório inclui os cralwers dos seguintes sistemas do MPSP:
- Arpenp
- Cadesp
- Caged
- Censec
- Detran
- Infocrim
- Jucesp
- Siel
- Sivec
Sistemas Adicionais:
- Bolsa família
- Escavador
- Jusbrasil
Python >= 3.6
pip >= 19.0.0
Para instalação, basta realizar o download desse repositório, e com o gerenciador de pacotes pip, executar o seguinte comando para a instalação de todas as dependências:
pip install -r requirements.txt
Para iniciar o serviço, basta executar o seguinte comando na pasta root do projeto:
python app.py
Após isso, o serviço já estará funcionando na porta 5000
Obs: Para o funcionamento correto do comando acima, o python deve estar configurado nas variáveis de ambiente de seu sistema
Para cada site do MPSP, existe um endpoint já configurado:
- Arpenp ->
shell localhost:5000/arpenp
- Cadesp ->
shell localhost:5000/cadesp
- Caged ->
shell localhost:5000/caged
E assim para os demais enpoints...
Cada endpoint do projeto, possui seus próprios parâmetros que deverão ser passados, assim como cada enpoint possui seu próprio json de retorno
Método aceito: POST
Endpoint: /api/arisp
Headers: Content-Type:aplication/json
Parâmetros: cpf
Retorno:
{
"link_para_pdf":"[URL para página da escritura]"
}
Método aceito: POST
Endpoint: /api/arpenp
Headers: Content-Type:aplication/json
Parâmetros: cnpj
Retorno:
{
"cartorio_id": "[IDENTIFICADOR DO CARTORIO]",
"busca_juiz_id": "[IDENTIFICADOR DO JUÍZ]",
"tipo_registro": "[IDENTIFICADOR TIPO DO REGISTRO]",
"nome_registrado_1": "[NOME DO PRIMEIRO REGISTRADO]",
"nome_registrado_2": "[NOME DO SEGUNDO REGISTRADO]",
"data_ocorrido": "[DATA DO PROCESSO OCORRIDO]",
"data_registro": "[DATA DO REGISTRO DO PROCESSO]",
"num_livro": "[NÚMERO DO LIVRO]",
"num_folha": "[NÚMERO DA FOLHA]",
"num_registro": "[NÚMERO DE REGISTRO]",
"matricula": "[NUMERO DE MATRICULA]",
"nome_requerente": "[NOME DO REQUERENTE]",
"documento_requerente": "[DOCUMENTO DO REQUERENTE]",
"telefone_requerente": "[TELEFONE DO REQUERENTE]",
}
Método aceito: POST
Endpoint: /api/bolsa-familia
Headers: Content-Type:aplication/json
Parâmetros: nis
, ano_mes_referencia
, ano_mes_competencia
Retorno:
{
"id": [IDENTIFICADOR],
"dataMesCompetencia": "[DIA/MÊS/ANO]",
"dataMesReferencia": "[DIA/MÊS/ANO]",
"titularBolsaFamilia": {
"nis": "[NÚMERO NIS]",
"nome": "[NOME COMPLETO]",
"multiploCadastro": [BOOLEANO INDICANDO MULTIPLOS CADASTROS],
"cpfFormatado": "***.[TRECHO DO CPF]-**"
},
"municipio": {
"codigoIBGE": "[CÓDIGO DO IBGE]",
"nomeIBGE": "[NOME DA UNIDADE DO IBGE]",
"pais": "[PAÍS]",
"uf": {
"sigla": "[SIGLA DO ESTADO]",
"nome": "[NOME DO ESTADO]"
}
},
"valor": [VALOR RECEBIDO],
"quantidadeDependentes": [QUANTIDADE DE DEPENDENTES CADASTRADOS]
}
Método aceito: POST
Endpoint: /api/caged
Headers: Content-Type:aplication/json
Parâmetros: cpf
ou cnpj
,
Retorno:
{
"autorizado_responsavel": {
"identificacao": {
"cnpj": "[CNPJ DA EMPRESA]",
"razao_social": "[RAZÃO SOCIAL DA EMPRESA]"
},
"dados_cadastrais_atualizados": {
"logradouro": "[LOGRADOURO]",
"bairo_distrito": "[BAIRRO CONCATENADO COM DISTRITO]",
"municipio": "[MUNICIPIO CADASTRADO]",
"uf": "[ESTADO CADASTRADO]",
"cep": "[NÚMERO DO CEP DO ENDEREÇO CADASTRADO"]
},
"contato": {
"nome": "[NOME DO CONTATO]",
"cpf": "[CPF DO CONTATO]",
"telefone": "TELEFONE DO CONTATO",
"email": "[EMAIL DO CONTATO]"
}
},
"dados_da_empresa": {
"cnae": "[NUMERO CNAE DA EMPRESA]"
},
"totais": {
"num_admissoes": "[NÚMERO DE ADMISSOES DA EMPRESA]",
"variacao_absoluta": "[DIFERENÇA NO DNÚMERO DE FUNCIONÁRIOS DA EMPRESA, DO ÚLTIMO DIA COM O PRIMEIRO DIA]",
"total_vinculos": "[NÚMERO TOTAL DE VÍNVULOS DA EMPRESA]",
"desligamentos": "[NÚMERO DE FUNCIONÁRIOS DESLIGADOS DA EMPRESA]",
"num_primeiro_dia": "[QUANTIDADE DE FUNCIONÁRIOS NO PRIMEIRO DIA DE EMPRESA]",
"num_ultimo_dia": "[QUANTIDADE DE FUNCIONÁRIOS NO ÚLTIMO DIA DE EMPRESA]"
},
"ultima_atualizacao": "[DATA DA ÚLTIMA ATUALIZAÇÃO]",
"identificacao": {
"nome": "[NOME COMPLETO DO TRABALHADOR]",
"pis": "[NÚMERO DO PIS]"
},
"dados_cadastrais": {
"cpf": "[CPF DO TRABALHADOR]",
"data_nascimento": "[DATA DE NASCIMENTO DO TRABALHADOR]",
"ctps": "[CATEGORIA DO CTPS]",
"situacao_pis": "[SITUAÇÃO ATUAL DO PIS DO TRABALHADOR]",
"nacionalidade": "[NACIONALIDADE DO TRABALHADOR]",
"escolaridade": "[GRAU DE ESCOLARIDADE DO TRABALHADOR]"
},
"tempo_trabalho": {
"caged": "[NÚMERO DE MESES CADASTRADO NO CAGED]",
"rais": "[NÚMERO DE MESES DE TRABALHO]"
},
"historico_trabalho": {
"[INDICE]": {
"fonte": "[FONTE DO HISTÓRICO]",
"razao social": "[RAZAO SOCIAL DA EMPRESA RESPONSÁVEL PELO HISTÓRICO]",
"cnpj": "[CNPJ SOCIAL DA EMPRESA RESPONSÁVEL PELO HISTÓRICO]",
"cei": "[CEI SOCIAL DA EMPRESA RESPONSÁVEL PELO HISTÓRICO]",
"entrada": "[DATA DE ENTRADA DO TRABALHADOR]",
"saida": "[DATA DE SAÍDA DO TRABALHADOR]",
"situacao": "[SITUAÇÃO DO HISTÓRICO]"
}
}
}
Método aceito: POST
Endpoint: /api/caged
Headers: Content-Type:aplication/json
Parâmetros: cnpj
Retorno:
{
"IE": "[NÚMERO IE DA EMPRESA]",
"CNPJ": "[NÚMERO CNPJ DA EMPRESA]",
"Nome Empresarial": "[RAZÃO SOCIAL DA EMPRESA]",
"DRT": "[CATEGORIA DRT]",
"Situação": "[SITUAÇÃO DA EMPRESA]",
"Data da Inscrição no Estado": "[DATA DA INSCRIÇÃO NO ESTADO]",
"Regime Estadual": "[SIGLA DO REGIME ESTADUAL]",
"Posto Fiscal": "[POSTO FISCAL DA EMPRESA]",
"Data Início da IE": "[DATA DE INICIO DO IE DA EMPRESA]",
"NIRE": "[NÚMERO NIRE]",
"Situação Cadastral": "[SITUAÇÃO CADASTRAL DA EMPRESA]",
"Data Início da Situação": "[DATA DE INICIO DA SITUAÇÃO CADASTRAL]",
"Ocorrência Fiscal": "[OCORRÊNCIA FISCAL DA EMPRESA]",
"Tipo de Unidade": "[TIPO DA UNIDADE DA EMPRESA]",
"Formas de Atuação": "[FORMA DE ATUAÇÃO DA EMPRESA]"
}
Método aceito: POST
Endpoint: /api/censec
Headers: Content-Type:aplication/json
Parâmetros: cnpj
Retorno:
{
"dados_cartorio": {
"ato": {
"tipo": "[TIPO DO REGISTRO ENCONTRADO]",
"data": "[DATA DO REGISTRO]"
},
"contato": {
"info": {
"[INDICE]": {
"Telefone": "[TELEFONE DO CONTATO]",
"Tipo": "[TIPO DO TELEFONE DO CONTATO]",
"Ramal": "[RAMAL DO CONTATO]",
"Contato": "[LOCAL DO TELEFONE]",
"Status": "[STATUS DO CONTATO]"
}
},
"UF": "[ESTADO DO CONTATO]",
"municipio": "[MUNICÍPIO DO CONTATO]",
"nome_cartorio": "[NOME DO CARTÓRIO DO CONTATO]"
}
}
}
Método aceito: POST
Endpoint: /api/detran
Headers: Content-Type:aplication/json
Parâmetros: cnpj
Retorno:
{
"condutor_nome": "[NOME DO CONDUTOR]",
"condutor_data_nascimento": "[DATA DE NASCIMENTO DO CONDUTOR]",
"condutor_nascionalidade": "[NASCIONALIDADE DO CONDUTOR]",
"condutor_cidade_natal": "[CIDADE NATAL DO CONDUTOR]",
"condutor_rg": "[RG DO CONDUTOR]",
"condutor_uf": "[SIGLA DO ESTADO DO CONDUTOR]",
"cnh_registro": "[NÚMERO DE REGISTRO DA CNH DO CONDUTOR]",
"cnh_local": "[LOCALIDADE DA CNH]",
"cnh_espelho_pid": "[PID DA CNH]",
"cnh_data_emissao": "[DATA DE EMISSAO DA CNH]",
"cnh_status": "[STATUS DA CNH]",
"cnh_data_primeira_hab": "[DATA DA PRIMEIRA HABILITAÇÃO]",
"cnh_renach": "[NÚMERO RENACH DO CONDUTOR]",
"cnh_validade": "[VALIDADE DA CNH]",
"url_cnh_avatar": "[URL DA IMAGEM DA CNH DO CONDUTOR]",
"url_cnh_assinatura": "[URL DA IMAGEM DA ASSINATURA DO CONDUTOR]",
"condutor_nome_pai": "[NOME DO PAI DO CONDUTOR]",
"condutor_nome_mae": "[NOME DA MÃE DO CONDUTOR]",
"condutor_cpf": "[CPF DO CONDUTOR]"
}
Método aceito: POST
Endpoint: /api/escavador
Headers: Content-Type:aplication/json
Parâmetros: term
Retorno:
[
{
"tipo_resultado": "[TIPO DO RESULTADO ENCONTRADO]",
"diario_id": [IDENTIFICADOR DO DIÁRIO],
"numero_pagina": [NÚMERO DE PÁGINAS RETORNADAS],
"diario_sigla": "[SIGLA DO DIÁRIO]",
"diario_nome": "[NOME DO DIÁRIO]",
"diario_data": "[DATA DO DIÁRIO]",
"caderno": "[CADERNO EM QUE O DIÁRIO SE ENCONTRA]",
"caderno_url": "[URL DO CADERNO]",
"texto": "[TEXTO DE AMOSTRA]",
"link": "[URL PARA O DIÁRIO]",
"link_api": "[URL PARA CONSULTAR DIÁRIO NA API]"
},
{
"tipo_resultado": "[TIPO DO RESULTADO]",
"numero_pagina": [NUMERO DE PÁGINAS RETORNADAS],
"envolvidos_patente": [
{
"tipo": "[TIPO DA PATENTE]",
"nome": "[NOME]",
"url_id": [ID_URL],
"slug": "[TIPO SLUG]"
},
],
"patente_id": [IDENTIFICADOR DA PATENTE]
}
]
Método aceito: POST
Endpoint: /api/infocrim
Headers: Content-Type:aplication/json
Parâmetros: cpf
Retorno:
{
"crime": {
"natureza": "[TIPO DO CRIME]",
"local": "[LOCALIZAÇÃO DO CRIME OCORRIDO]",
"complemento": "[COMPLEMENTO SOBRE O CRIME]",
"tipo_local": "[LOCAL DO CRIME]",
"data_ocorrencia": "[DATA DA OCORRÊNCIA DO CRIME]",
"data_comunicacao": "[DATA DA COMUNICAÇÃO DO CRIME]"
}
}
Método aceito: POST
Endpoint: /api/jusbrasil
Headers: Content-Type:aplication/json
Parâmetros: cpf
Retorno:
{
"citacoes_encontrados": {
"[INDICE]": {
"Diário": "[NOME DO DIÁRIO]",
"url": "[URL DO DIÁRIO]"
}
}
}
Método aceito: POST
Endpoint: /api/juscesp
Headers: Content-Type:aplication/json
Parâmetros: cpf
Retorno:
Método aceito: POST
Endpoint: /api/siel
Headers: Content-Type:aplication/json
Parâmetros: nome_completo
Retorno:
{
"Nome": "[NOME DO ELEITOR]",
"Título": "[TITULO DO ELEITOR]",
"Data Nasc.": "[DATA NASCIMENTO DO ELEITOR]",
"Zona": "[ZONA DO ELEITOR]",
"Endereço": "[ENDEREÇO DO ELEITOR]",
"Município": "[CIDADE DO ELEITOR]",
"UF": "[UF DO LOCAL DE VOTAÇÃO]",
"Data Domicílio": "[DATA DO DOMICÍLIO]",
"Nome Pai": "[NOME DO PAI DO ELEITOR]",
"Nome Mãe": "[NOME DA MÃE DO ELEITOR]",
"Naturalidade": "[NATURALIDADE DO ELEITOR]",
"Cód. Validação": "[CÓDIGO DE VALIDAÇÃO DO ELEITOR]"
}
Método aceito: POST
Endpoint: /api/sivec
Headers: Content-Type:aplication/json
Parâmetros: nome_completo
Retorno:
{
"Nome:": "[NOME CADASTRADO NA CERTIDÃO]",
"Sexo:": "[SEXO]",
"Data Nascimento:": "DATA DE NASCIMENTO",
"RG:": "[NÚMERO DO RG]",
"Nº controle VEC:": "[NÚMERO DE CONTROLE]",
"Tipo de RG:": "[TIPO DO RG]",
"Data Emissão RG:": "[DATA DA EMISSÃO DO RG]",
"Estado Civil:": "[ESTADO CIVIL]",
"Naturalidade:": "[NATURALIDADE]",
"Naturalizado(s/n):": "[SIM OU NÃO CASO SEJA NATURALIZADO]",
"Posto de Identificação:": "[POSTO DE IDENTIFICAÇÃO]",
"Grau de Instrução:": "[GRAU DE INSTRUÇÃO]",
"Nome do Pai:": "[NOME DO PAI]",
"Cor dos Olhos:": "[COR DOS OLHOS]",
"Nome da Mãe:": "[NOME DA MÃE]",
"Cabelo:": "[COR DOS CABELOS]",
"Cor da Pele:": "[COR DA PELE]",
"Profissão:": "[PROFISSÃO]"
}