Skip to content

Biblioteca do Python para acessar os dados de gastos do governo brasileiro através do API do Portal da Transparência.

License

Notifications You must be signed in to change notification settings

guizsantos/portaldatransparencia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Interface em Python para o API do Portal da Transparência

O portaldatransparencia é um módulo que faz interface com o API do portal da transparência do governo federal.

Documentação

O portaldatransparencia foi desenvolvido na imagem e semelhança do próprio API do portal, então seguindo as indicações da documentação original já dá uma ideia de como usar esse módulo. Porém o próprio módulo tem a documentação da página. Ainda assim, aqui tem alguns exemplos para ficar mais claro.

Como usar

Primeiro, é necessário cadastrar uma conta gov.br e gerar um token pessoal. Lembrando que para gerar o token é necessário que a conta tenha 2FA configurado. Depois, basta importar o PortalDaTransparencia do portaldatransparencia e criar os objetos que vão solicitar os dados do API:

from portaldatransparencia import PortalDaTransparencia
token = '<seu token>'
portal = PortalDaTransparencia(token)

# Transferências realizadas para Florianópolis em Jan/2021 visando auxiliar no combate contra o COVID-19
result = portal.coronavirus.transferencias(mesAno=202101,codigoIbge='4205407')

# Lista de JSONs com dados sobre as transferências do período consultado
print(result)

O PortalDaTransparencia nada mais é que um aglomerado de outros portais, como o Coronavirus, ou o DespesasPublicas. Também é possível importar somente o portal de interesse:

from portaldatransparencia import DespesasPublicas
token = '<seu token>'
portal = DespesasPublicas(token)

# Primeira página da consulta para os recursos recebidos do governo de pessoas físicas
result = portal.recursos_recebidos(mesAnoInicio='01/2020',mesAnoFim='01/2021')

# Lista de JSONs com dados sobre os recursos recebidos dentro do período consultado
print(result)

Limites

Texto de http://portaldatransparencia.gov.br/api-de-dados/cadastrar-email

A fim de garantir a estabilidade do ambiente, os seguintes limites são definidos:

  • De 00:00 às 06:00: até 700 requisições por minuto
  • Nos demais horários: 400 requisições por minuto
  • APIs restritas: 180 requisições por minuto.

As APIs restritas são:

  • /api-de-dados/despesas/documentos-por-favorecido
  • /api-de-dados/bolsa-familia-disponivel-por-cpf-ou-nis
  • /api-de-dados/bolsa-familia-por-municipio
  • /api-de-dados/bolsa-familia-sacado-por-nis
  • /api-de-dados/auxilio-emergencial-beneficiario-por-municipio
  • /api-de-dados/auxilio-emergencial-por-cpf-ou-nis
  • /api-de-dados/auxilio-emergencial-por-municipio
  • /api-de-dados/seguro-defeso-codigo

Usos acima desses limites terão o token suspenso por 8 hora(s).

Disclaimer

A maior parte do código escrito no portaldatransparencia foi gerado automaticamente através de webscraping da página de documentação (scraping.py)

Alteranativa: gerando cliente através da especificação OpenAPI

Arquivo JSON OpenAPI:

curl https://api.portaldatransparencia.gov.br/v2/api-docs --output portal-openapi.json

Swagger Codegen:

curl https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.34/swagger-codegen-cli-3.0.34.jar --output swagger-cli.jar

Generate:

java -jar swagger-cli.jar -i portal-openapi.jsoon -l python -o codegen-api

Licença

O portaldatransparencia está licensiado sobre a licença do MIT.

About

Biblioteca do Python para acessar os dados de gastos do governo brasileiro através do API do Portal da Transparência.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published