Puedes ejecutar cualquier ejemplo de esta guía directamente en nuestra consola interactiva: Abrir consola de Python →
API Requests en Python: cómo consumir APIs paso a paso
El módulo requests permite enviar peticiones HTTP de forma sencilla. Es la herramienta más usada para consumir APIs REST en Python. En esta guía aprenderás a hacer peticiones GET, POST, enviar datos, manejar errores y procesar respuestas JSON.
Tabla de contenidos
1. Instalar requests
pip install requests
2. Peticiones GET
import requests
respuesta = requests.get("https://jsonplaceholder.typicode.com/posts/1")
print(respuesta.status_code)
print(respuesta.text)
3. Procesar JSON
import requests
r = requests.get("https://jsonplaceholder.typicode.com/posts/1")
datos = r.json()
print(datos["title"])
4. Peticiones POST
import requests
payload = {"title": "Nuevo post", "body": "Contenido", "userId": 1}
r = requests.post("https://jsonplaceholder.typicode.com/posts", json=payload)
print(r.status_code)
print(r.json())
5. Headers y autenticación
import requests
headers = {"Authorization": "Bearer TOKEN123"}
r = requests.get("https://api.ejemplo.com/datos", headers=headers)
print(r.status_code)
6. Manejo de errores
import requests
try:
r = requests.get("https://api.ejemplo.com/datos", timeout=5)
r.raise_for_status()
except requests.exceptions.RequestException as e:
print("Error:", e)
7. Ejercicios
- Hacer una petición GET a una API pública.
- Procesar JSON de una respuesta.
- Enviar datos con POST.
- Usar headers personalizados.
- Manejar errores de conexión.
requests.get("https://jsonplaceholder.typicode.com/posts")
requests.get("https://jsonplaceholder.typicode.com/posts/1").json()
requests.post("https://jsonplaceholder.typicode.com/posts", json={"a":1})
requests.get("https://api.ejemplo.com", headers={"X-Test":"123"})
try:
requests.get("https://api.ejemplo.com", timeout=1)
except Exception as e:
print(e)
8. Mini‑proyecto: Cliente API de usuarios
import requests
def obtener_usuarios():
r = requests.get("https://jsonplaceholder.typicode.com/users")
return r.json()
usuarios = obtener_usuarios()
for u in usuarios:
print(u["name"], "-", u["email"])
9. Preguntas frecuentes
¿requests viene instalado por defecto?
No, debes instalarlo con pip.
¿Es mejor usar urllib?
requests es más simple y legible.