API do IBGE com Python – Criando Link com Query Builder
Hoje eu vou te mostrar como usar a API do IBGE com Python para que você possa obter diversas informações do IBGE!
A API do IBGE é pública e não exige chave nem cadastro: você monta a URL no Query Builder da API de Dados Agregados, escolhe agregado, período e variável e clica em Gerar URL. No Python, basta usar a biblioteca requests com requests.get(link) e ler o resultado com .json().
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
O que você aprende neste vídeo
Resposta rápida: A API do IBGE é pública e não exige chave nem cadastro. Você monta a URL no Query Builder da API de dados agregados, escolhendo agregado, variável, período e localidade, e clica em gerar. No Python é a biblioteca de requisições que faz o pedido, e a resposta vem em JSON, que se navega por etapas: colchete com número é lista, com texto é chave.
Neste vídeo (18 min):
- 1:00 - O que é uma API e o que é um endpoint, com exemplos de serviços conhecidos.
- 2:00 - As divisões da API do IBGE, e a de dados agregados usada na aula.
- 2:40 - Procurar na documentação um editor que monte a URL para você.
- 3:00 - Os métodos de API, e por que aqui só existe o de leitura.
- 4:00 - O link base e os parâmetros que entram dentro dele.
- 5:00 - Montar a consulta: agregado, variável, período e localidade.
- 5:40 - O botão que gera a URL pronta para copiar.
- 6:20 - A biblioteca de requisições, que não vem instalada com o Python.
- 7:20 - Fazer a requisição de leitura no link gerado.
- 8:00 - A resposta em JSON, e o método que a converte em estrutura do Python.
- 8:50 - Usar o print formatado para enxergar a hierarquia da resposta.
- 10:00 - Navegar na estrutura: colchete com número é lista, com texto é chave.
- 11:00 - Como descobrir o formato da resposta quando ele não é óbvio.
- 13:00 - Extrair o campo desejado por etapas, de fora para dentro, testando a cada passo.
Trechos do vídeo:
- O caminho para achar o dado dentro da resposta é sempre de fora para dentro, imprimindo o resultado a cada nível. Tentar acertar o caminho inteiro de uma vez é o que gera erro sem pista.
- Quando a documentação não diz o formato da resposta, o teste barato é pedir a conversão para JSON e ver se funciona. A maioria das APIs responde nesse formato.
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
API do IBGE com Python
Nessa aula eu vou te mostrar como usar API com Python, mais especificamente a API do IBGE, que é uma API pública, ou seja, é uma API sem autenticação.
Isso quer dizer que não vamos precisar de uma chave para poder utilizar essa API, você vai poder utilizá-la diretamente sem precisar de chave ou cadastro no site.
API de Dados Agregados do IBGE
Para que você possa acessar a API do IBGE basta clicar no link abaixo que vai poder ver as diversas informações que pode obter através dessa API.
https://servicodados.ibge.gov.br/api/docs
Para o nosso exemplo vamos utilizar a primeira opção que é de Agregados, ou seja, vamos utilizar a API de dados agregados do IBGE.
Dentro dessa API nós temos o Query Builder, que é uma ferramenta muito útil na hora de utilizar APIs, pois ele permite com que você teste a API antes para visualizar como as informações são alteradas no link.
Isso facilita muito o entendimento da API e consequentemente facilita na hora de utilizá-la, então você pode clicar nele para começar a utilizar essa ferramenta.

Aqui é apenas um exemplo, mas você vai notar que ao finalizar a sua seleção de informações que quer obter e clicar em Gerar URL você vai ter um link.

Esse é exatamente o link que você vai utilizar na sua requisição para obter exatamente as informações que você marcou nos campos.
Então você já consegue dar uma olhada nos campos do link o que tem que colocar e onde vai colocar cada um deles, assim fica muito mais fácil de entender a API e na hora de colocar no seu código fica muito mais tranquilo de automatizar.
import requests
link = "https://servicodados.ibge.gov.br/api/v3/agregados/7392/periodos/2014/variaveis/10484?localidades=N1[all]"
requisicao = requests.get(link)
informacoes = requisicao.json()
# import pprint
# pprint.pprint(informacoes[0]['resultados'][0]['series'])
item_busca = informacoes[0]['variavel'] # variavel
resultados = informacoes[0]['resultados'][0]['series'] # seriesAqui nós temos o código que vamos utilizar para poder utilizar a API do IBGE. Como você já deve saber para utilizar APIs nós precisamos da biblioteca requests.
Pois é ela que permite ao usuário fazer uma requisição, então você precisa dela instalada (pode utilizar o comando pip install requests no anaconda prompt).
Nesse primeiro código temos o link da API, que foi gerado pelo Query Builder. Então cada seleção que você fez vai notar que ela foi inserida em uma parte específica do link URL.
Depois temos 2 linhas de código para fazer a requisição desse link, pegar informações, e depois transformar essas informações, pois geralmente elas estão no formato json.
OBS: As duas linhas que estão com #, são linhas comentadas, mas elas servem para que você visualize as informações no formato de dicionário mais organizado, então com a biblioteca pprint a visualização fica mais fácil.
Depois nós vamos mostrar na tela qual informação estamos buscando, que é a nossa variável, e depois quais são os resultados, que são resultados e series.

É claro que esse foi apenas um exemplo, então estamos pegando uma informação de um determinado setor, mas agora que já sabe como utilizar essa API do IBGE você pode buscar as informações que você de fato precisa.
Inclusive pode utilizar uma estrutura de repetição para rodar o código mais de uma vez com diferentes buscas, lembrando apenas de alterar as informações do link que vai fazer a requisição.
Assim você consegue não só obter as informações que precisa, mas consegue automatizar todo esse processo.
Lembrando que não precisa utilizar o Python só pra pegar esses dados, já pode pegar, automatizar, fazer o tratamento de dados, fazer sua análise de dados, criar gráficos…
Isso quer dizer que já pode fazer uma análise completa, então pode ir pegando tudo o que já ensinamos aqui no blog para ir complementando o seu código e criando algo mais completo.
Perguntas frequentes
1. O que é o Query Builder da API do IBGE?
É a ferramenta da própria API que monta o link da requisição para você. Nela, você seleciona o agregado, o período, a variável e as localidades e clica em Gerar URL. O link resultante é o mesmo que vai no seu código Python, o que evita erros ao escrever os parâmetros à mão.
2. Preciso de chave para usar a API do IBGE?
Não. A API do IBGE é pública e funciona sem autenticação, ou seja, sem chave nem cadastro no site. Você só precisa do link gerado e da biblioteca requests instalada, com pip install requests. Isso torna essa API um ótimo primeiro exercício de consumo de dados com Python.
3. Como ler os dados retornados pela API do IBGE no Python?
A resposta vem em JSON. Depois de requisicao = requests.get(link), use informacoes = requisicao.json() para transformar tudo em listas e dicionários do Python. Daí você navega pelas chaves, como variavel e resultados, até chegar às séries. A biblioteca pprint ajuda a visualizar essa estrutura de forma organizada.
4. Como buscar vários indicadores do IBGE de uma vez?
Monte o link de cada consulta no Query Builder e guarde os que interessam. Depois, percorra essa lista com uma estrutura de repetição, trocando apenas a parte do link que muda a cada busca. Assim o mesmo código coleta vários indicadores e você automatiza todo o processo de análise.
Conclusão
Nessa aula eu te mostrei como usar a API do IBGE para obter diversas informações úteis.
O mais interessante é que essa API tem um Query Builder, ou seja, tem uma área onde você testa o que vai buscar e a própria API retorna o link.
Com isso você consegue entender de forma mais rápida como essa API funciona e ainda facilita o seu processo, pois não precisa ficar quebrando a cabeça para construir o seu link de requisição.
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!


