API no Python – O que é e Como Criar Sua Própria API?

Aprenda o que é uma API no Python, como usá-la e criar a sua própria com Flask. Veja exemplos práticos e integre dados em tempo real nos seus projetos!

Resposta rápida: API é o contrato que deixa dois sistemas trocarem dados. Em Python, consumir uma API cabe em uma linha com a biblioteca requests: requests.get(url).json() devolve a resposta já como dicionário. Para publicar a sua, o caminho mais curto é o Flask — uma função decorada com @app.route e um jsonify no retorno. A chave de API fica sempre fora do código.

Como Usar API com Python

Se você já se perguntou o que é uma API no Python e como usá-la nos seus projetos, você não está sozinho. Esse tema gera dúvidas em muitos iniciantes, mas a boa notícia é que entender APIs é muito mais simples do que parece.

Neste guia, você vai aprender não só o conceito de API, mas também como usar APIs prontas (como de cotações de moedas e clima) e até criar a sua própria API com Python. Vamos passar da teoria para a prática com exemplos reais e fáceis de aplicar.

Ao final, você vai perceber que APIs não são um “bicho de sete cabeças”, mas sim ferramentas poderosas para integrar dados e automatizar tarefas no seu dia a dia como programador.

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

O Que é uma API?

API significa Application Programming Interface, ou seja, uma Interface de Programação de Aplicativos. Em outras palavras, é um conjunto de regras que permite a comunicação entre sistemas diferentes.

Um exemplo clássico é o login com Facebook ou Google em outros sites. Quando você escolhe essa opção, o site não pede para você preencher todos os dados manualmente, ele usa a API do Facebook/Google para buscar apenas as informações autorizadas e completar seu cadastro.

Então sempre que você faz o login com Facebook já deve ter visto que ele fala que o site precisa da informação x, da informação y e da informação z!

Isso quer dizer que está acontecendo uma obtenção de informações, mas é claro que o site não vai poder obter tudo que ele quiser da sua conta.

Ele só vai ter acesso ao que o Facebook disponibilizou dentro do código de programação dessa API, então eles vão definir as informações que serão obtidas ou trocadas!

Então além da vantagem de fazer essa troca ou disponibilização de informação, a empresa que criou faz com que as pessoas utilizem mais sua plataforma.

Você mesmo já deve ter escolhido fazer o seu cadastro/login com Facebook em algum site só para não ter que passar por todas as etapas, não é mesmo?

Resumindo: uma API funciona como uma ponte de comunicação entre programas.

Tipos de API

De forma geral, temos dois tipos principais:

  • APIs Públicas: abertas para qualquer pessoa usar, como a AwesomeAPI de cotações.
  • APIs Privadas: exigem cadastro, autenticação ou até pagamento, como a API do Twilio para envio de SMS.

Cada API define quais dados podem ser acessados e como.

Exemplo prático: Consumindo uma API no Python

Vamos começar consumindo uma API já pronta: a AwesomeAPI de cotações de moedas.

Essa é uma API pública, que permite com que o usuário consuma informações, ou seja, não vamos enviar informações, só receber.

Python
import requests
import json

# esse link pode mudar se os donos da API mudarem
cotacoes = requests.get("https://economia.awesomeapi.com.br/last/USD-BRL,EUR-BRL,BTC-BRL")
cotacoes_dic = cotacoes.json()
cotacao_dolar = cotacoes_dic['USDBRL']['bid']
print(cotacao_dolar)

Esse código retorna a cotação atual do dólar em tempo real.

OBS: É preciso instalar a biblioteca requests (pip install requests) para obter as informações do site. O json já vem com o Python, não precisa instalar: ele serve para ler os dicionários no formato json que são um formato um pouco diferente do dicionário que temos no Python.

Pronto! Depois disso você já consegue obter a cotação do dólar, euro ou bitcoin. Viu como existem APIs que são simples de serem utilizadas e podem te ajudar bastante?

Criando sua própria API com Python

Agora vamos dar um passo além e criar uma API do zero. Para isso, vamos usar o Flask, um framework do Python para construir aplicações web.

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 em Python se monta com Flask, e o esqueleto é o mesmo de um site: app = Flask(__name__), uma função por rota decorada com @app.route e, no fim, app.run(). A diferença está no que a função devolve: em vez de página, um dicionário convertido em JSON pelo jsonify. Quem consome faz um requests.get no link.

Neste vídeo (28 min):

  • 0:00 - O que a aula constrói: a primeira API em Python, do zero
  • 1:00 - Por que JSON: o formato em que quase toda API devolve dado hoje
  • 2:30 - O ambiente usado na aula, que já deixa o código online sem deploy
  • 4:40 - As duas bibliotecas necessárias: Flask para servir e pandas para ler a base
  • 6:00 - Instalando os pacotes e subindo o arquivo de dados
  • 7:00 - Lendo o CSV com pandas e somando a coluna de vendas
  • 8:40 - Por que existe API: expor um número sem entregar a base inteira
  • 10:00 - Importando o Flask e inicializando o app
  • 11:40 - A primeira rota, com o decorador que define em qual link a função responde
  • 13:20 - O parâmetro host que deixa o servidor acessível de fora
  • 15:40 - A segunda rota: o endpoint que devolve o total de vendas
  • 17:30 - Do dicionário para JSON com o jsonify, e por que a conversão é obrigatória
  • 20:00 - O outro lado: consumindo a API com requests em outro computador
  • 23:00 - O código 200 da resposta, e o json que devolve o dicionário para o seu código

Trechos do vídeo:

  • A forma de construir uma API com Flask é a mesma coisa que você faz para construir um site com Flask.
  • Cada link desse que dá uma resposta para o usuário é o que a gente chama de endpoint da API.
  • O 200 é o código que diz que a requisição que você fez deu certo.

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Ícone PythonPython Impressionador

Você vai aprender a linguagem de Programação que mais cresce no Mundo para fazer automações incríveis, desenvolver sites, fazer análises de dados, trabalhar com Ciência de Dados, Inteligência Artificial, mesmo que você nunca tenha tido nenhum contato com Programação na vida.

Começar agoraSeta para a direita
Fundo PythonTelas Python
Luz Python

Como Criar API no Python - Usando Replit

Para essa aula nós vamos utilizar o Replit que é uma plataforma para criar e testar suas APIs.

Depois de criar sua conta gratuita no site já vamos poder começar com a criação de API no Python.

Criando a API no Replit

Dentro da sua conta, você vai poder clicar em + Create Repl, em seguida vai poder selecionar a linguagem que no nosso caso será Python e por fim dar um nome para a criação.

Editor de Python do Replit

Depois de criar, você vai notar que já tem um editor de Python e não vai precisar fazer o deploy do seu código para que outras pessoas possam utilizar.

Isso quer dizer que não vai precisar colocar em um servidor, mas caso precise do código rodando 24 horas por dia durante 7 dias da semana você terá que buscar um servidor para isso.

Para demonstrar o nosso exemplo, vamos utilizar a biblioteca pandas e a biblioteca flask (que é um framework para construção de sites).

OBS: Nós até temos uma aula sobre criação de sites com flask caso você tenha interesse!

Para instalar essas bibliotecas dentro desse ambiente é muito fácil, basta ir em Packages e depois escrever o nome da biblioteca que deseja instalar.

Instalando as bibliotecas que serão utilizadas no código

Feito isso basta clicar no + que a biblioteca será instalada. Agora podemos fazer a construção do código.

Vai ser um código simples, mas é para te mostrar como você pode criar a sua própria API no Python.

Python
import pandas as pd

tabela = pd.read_csv('advertising.csv')
total_vendas = tabela['Vendas'].sum()
print(total_vendas)

Como você deve saber, em uma API nós não vamos passar informações críticas aos usuários, ou seja, nesse caso não vamos disponibilizar a nossa base de dados completa.

Vamos apenas informar qual é o total de vendas da nossa base de dados, até porque assim não mostraremos nenhuma informação crítica ou que possa oferecer algum risco.

Python
import pandas as pd
from flask import Flask, jsonify

app = Flask(__name__)

# Construir as funcionalidades
@app.route('/')
def homepage():
	return 'A API está no ar'

@app.route('/pegarvendas')
def pegarvendas():
	tabela = pd.read_csv('advertising.csv')
	total_vendas = tabela['Vendas'].sum()
	resposta = {'total_vendas': total_vendas}
	return jsonify(resposta)

# Roda a nossa API
app.run(host='0.0.0.0')

Aqui já temos a nossa API mais completa já utilizando o flask que é para a criação de páginas no Python.

Então aqui vamos ter a nossa API que vai retornar o total de vendas apenas, sem trazer informações da base de dados ou qualquer outra informação crítica.

OBS: O comando jsonify é para que o Python consiga transformar essa resposta em json que é como se fosse um dicionário.

OBS 2: Dentro do comando app.run (que é para rodar o nosso código) nós vamos inserir o host='0.0.0.0' para que o Replit nos dê um link de fato onde está o nosso site ao invés de ter apenas aqueles números quando criamos o site no flask.

Dessa forma vamos poder utilizar o seu editor de Python por exemplo (do seu computador) para testar se essa API já está funcionando e se conseguimos fazer a requisição do total de vendas.

Python
import requests

# copie o endereço que o próprio Replit mostra no painel do projeto
link = 'https://SEU-ENDERECO-DO-REPLIT/pegarvendas'

requisicao = requests.get(link)

print(requisicao)
print(requisicao.json())

dicionario = requisicao.json()

print(dicionario['total_vendas'])
Criação de API com Python

Atenção: o endereço da sua API é o que o próprio Replit mostra no painel do projeto — os antigos endereços terminados em .repl.co foram descontinuados. Copie o link de lá e cole no lugar do SEU-ENDERECO-DO-REPLIT.

Aqui nós já temos a nossa requisição sendo trazida diretamente da nossa API, dessa forma o usuário não vai ter acesso as informações da base de dados, somente o que for disponibilizado para ele.

IMPORTANTE: Como estamos utilizando um ambiente gratuito para criar a nossa API você terá que deixar o código rodando dentro dele para que consiga fazer suas requisições, mas de tempos em tempos ele vai parar por conta da própria plataforma. Você pode pagar para utilizar esse servidor ou fazer o deploy do seu código em um servidor oficial, isso nós mostramos na aula de criação de sites com flask.

Exemplo avançado: Acessando uma API de Clima com Python

Agora que você já entende o que é uma API e como criar uma com Python, vamos explorar outro exemplo prático: como usar uma API de clima para obter informações em tempo real, como temperatura e descrição do tempo, de qualquer cidade do mundo!

Vamos usar a Weather API (disponível em weatherapi.com), que é gratuita para uso básico e perfeita para aprender como APIs funcionam na prática.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

O que você vai aprender nesta seção

  • Como criar uma conta e obter uma chave de API;
  • Como fazer requisições HTTP com a biblioteca requests;
  • Como tratar respostas no formato JSON;
  • Como extrair informações úteis, como temperatura e descrição do clima.

Passo 1: Criando uma conta e obtendo a chave de API

Para usar a Weather API, você precisa criar uma conta gratuita no site weatherapi.com. Após o cadastro, você receberá uma chave de API (API Key), que funciona como uma credencial para autenticar suas requisições. Essa chave é única e deve ser mantida em segredo, pois identifica você no sistema da API.

Dica de segurança: Nunca compartilhe sua chave de API em fóruns ou repositórios públicos, como o GitHub. Se for compartilhar seu código, use variáveis de ambiente.

Passo 2: Instalando a biblioteca necessária

Para fazer requisições à API, usaremos a biblioteca requests do Python. Caso ainda não a tenha instalada, abra o terminal e execute:

Codigo
pip install requests

Essa biblioteca permite enviar requisições HTTP e receber respostas da API de forma simples.

Passo 3: Fazendo a requisição à API

A Weather API fornece um link base para requisições: https://api.weatherapi.com/v1.

Para obter o clima atual, usaremos o endpoint /current.json. A requisição exige dois parâmetros obrigatórios:

  • key: sua chave de API;
  • q: o local desejado (pode ser o nome de uma cidade, como "Rio de Janeiro", ou coordenadas).

Aqui está um exemplo de código que faz uma requisição para obter o clima do Rio de Janeiro:

Python
import requests

# Defina sua chave de API e o link da requisição
api_key = "SUA_CHAVE_DE_API_AQUI"  # Substitua pela sua chave
cidade = "Rio de Janeiro"
url = "https://api.weatherapi.com/v1/current.json"

# Parâmetros da requisição
parametros = {
    "key": api_key,
    "q": cidade,
    "lang": "pt"  # Define a língua da resposta como português
}

# Faz a requisição
resposta = requests.get(url, params=parametros)

# Verifica se a requisição foi bem-sucedida (status code 200)
if resposta.status_code == 200:
    dados = resposta.json()  # Converte a resposta JSON em um dicionário Python
    temperatura = dados["current"]["temp_c"]
    descricao = dados["current"]["condition"]["text"]
    print(f"Temperatura em {cidade}: {temperatura}°C")
    print(f"Descrição: {descricao}")
else:
    print(f"Erro na requisição: {resposta.status_code}")
    print(resposta.content)  # Exibe detalhes do erro

Explicação do código

  • Definindo a URL e parâmetros: A URL base é combinada com o endpoint /current.json. Os parâmetros são passados como um dicionário, incluindo a chave de API, a cidade e a língua (lang="pt" para respostas em português).
  • Fazendo a requisição: Usamos requests.get() para enviar a requisição HTTP.
  • Verificando o status: O código verifica se o status_code é 200 (sucesso). Se não for, exibe o erro (por exemplo, 401 indica uma chave de API inválida).
  • Tratando a resposta: A resposta JSON é convertida em um dicionário Python com resposta.json(). A temperatura e a descrição do clima são extraídas navegando pelo dicionário.

Possíveis erros e como resolvê-los

  • Erro 401 (Unauthorized): Verifique se a chave de API está correta.
  • Erro 400 (Bad Request): Confirme se os parâmetros (como o nome da cidade) estão corretos.
  • Erro 500 (Server Error): O servidor da API pode estar fora do ar. Tente novamente mais tarde.

Passo 4: Visualizando a resposta de forma legível

As respostas JSON podem ser difíceis de ler diretamente. Para facilitar, use a biblioteca pprint (já incluída no Python) para exibir o dicionário de forma organizada:

Python
from pprint import pprint

# Após obter os dados
pprint(dados)

Isso ajuda a entender a estrutura do dicionário e encontrar outras informações, como umidade ou pressão.

Passo 5: Testando com outra cidade

Para obter o clima de outra cidade, basta alterar o valor do parâmetro q. Por exemplo, para Paris:

Codigo
parametros["q"] = "Paris"
resposta = requests.get(url, params=parametros)
if resposta.status_code == 200:
    dados = resposta.json()
    temperatura = dados["current"]["temp_c"]
    descricao = dados["current"]["condition"]["text"]
    print(f"Temperatura em Paris: {temperatura}°C")
    print(f"Descrição: {descricao}")

Por que isso é útil?

APIs como a Weather API permitem integrar dados em tempo real nos seus projetos.

Por exemplo:

  • Adicionar previsões do tempo ao seu site;
  • Criar um aplicativo que alerta sobre mudanças climáticas;
  • Automatizar relatórios com dados meteorológicos.

O que aprendemos?

Nesta seção, você aprendeu como usar uma API de clima com Python, desde a obtenção de uma chave de API até o tratamento de respostas JSON.

O processo é semelhante para a maioria das APIs (como Spotify, PayPal ou Mercado Pago), mudando apenas o link, os parâmetros e a estrutura da resposta.

Experimente criar um projeto simples, como exibir o clima de várias cidades, e explore a documentação da Weather API para descobrir outras funcionalidades, como previsões ou histórico climático!

Continue praticando, e logo você estará integrando APIs em seus projetos como um profissional!

Boas práticas ao trabalhar com APIs

  • Nunca exponha sua chave de API em códigos públicos.
  • Use variáveis de ambiente para proteger informações sensíveis.
  • Sempre verifique o status da resposta antes de processar os dados.
  • Leia a documentação da API para entender os endpoints e limitações.

Conclusão - Como Usar API com Python

Neste artigo, você aprendeu o que é uma API, como consumir dados de APIs já existentes e até como criar a sua própria API com Flask.

APIs são um dos recursos mais poderosos que você pode dominar em Python, pois permitem integrar informações externas e disponibilizar seus próprios dados de forma segura.

Se você quer dar o próximo passo e aprender Python de verdade, incluindo automações, análise de dados e muito mais, conheça nosso curso Python Impressionador.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

FAQ sobre API no Python

1. O que é uma API no Python?

É uma interface que permite comunicação entre sistemas, usada para acessar ou disponibilizar dados de forma estruturada.

2. Qual biblioteca do Python é mais usada para APIs?

A principal é o requests para consumir APIs, e o Flask para criar APIs próprias.

3. É preciso pagar para usar APIs?

Nem sempre. Muitas APIs são públicas e gratuitas, mas algumas exigem cadastro ou assinatura.

4. Posso criar uma API mesmo sendo iniciante em Python?

Sim! Com o Flask, você consegue criar APIs simples mesmo com pouca experiência.

5. Onde posso encontrar APIs para praticar?

Existem vários catálogos de APIs públicas, como o RapidAPI e a própria AwesomeAPI.

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Posts mais recentes de Python

Posts mais recentes da Hashtag Treinamentos