Qué es una API?

Y por qué debería importarte?

Un recorrido interactivo desde tu primera solicitud hasta construir la tuya. Sin tecnicismos innecesarios, con datos reales y respuestas directas.

Empezar
01 / Concepto

Un contrato entre sistemas

Envías una solicitud estructurada a un servidor. Recibes una respuesta estructurada. Así funciona.

Por qué existen las APIs?

En los primeros años de la computación, los programas operaban de forma aislada. Si necesitabas datos, los almacenabas localmente. Pero a medida que los sistemas crecieron, surgió la necesidad de comúnicación entre ellos. El problema: cada sistema tenía su propio lenguaje, sus propios formatos y su propia arquitectura interna. Las APIs surgieron como protocolo universal: una forma de que el Sistema A solicitara información al Sistema B sin necesidad de conocer su implementación interna.

Un poco de historia

1960s

Las bibliotecas de subrutinas permiten compartir código dentro de una misma máquina.

1990s

Llega la web. Los sistemas necesitan intercambiar datos por la red. Aparecen SOAP y XML-RPC.

2000

Roy Fielding define REST en su tesis doctoral. Simple, sin estado, basado en URLs.

2010s

Las APIs REST se consolidan como el estándar. Twitter, Stripe, Google Maps abren endpoints públicos. JSON reemplaza a XML.

Hoy

Las APIs articulan la infraestructura digital. Tu app del clima, tu banco, tus modelos de ML: todo se comúnica a través de APIs.

Las APIs son funciones, pero en la red

En cualquier lenguaje, una función recibe entradas y devuelve salidas. Llamas get_mortality(age=45) y obtienes 0.00354. Una API es el mismo principio, pero la función reside en otra computadora. En lugar de invocarla directamente en tu código, envías una solicitud HTTP a una URL. El servidor ejecuta la función y devuelve el resultado. Las entradas son tus parámetros; la salida es la respuesta. Si ya entiendes funciones, ya entiendes APIs.

Función local
# Llamada a función local
result = get_mortality(age=45)
print(result)  # 0.00354
Llamada API
# La misma lógica, pero via API
import requests
response = requests.get(
  "https://api.example.com/mortality",
  params={"age": 45}
)
print(response.json())
# {"qx": 0.00354}
Tu Aplicación
Servidor Externo
1Solicitud
2Procesando
3Respuesta
Solicitud

Tu aplicación empaqueta una solicitud: qué datos necesitas, en que formato, con que credenciales.

Procesando

El servidor valida la solicitud, recupera o calcula los datos, y construye una respuesta.

Respuesta

Recibes datos estructurados (JSON, XML o binario) listos para parsear y utilizar en tu análisis.

API keys y por qué importan

La mayoría de las APIs requieren autenticación. El servidor necesita verificar quien realiza la solicitud, con que frecuencia y si cuenta con los permisos necesarios. Para eso existen las API keys.

Qué es una API key?

Una API key es una cadena única que te identifica ante el servidor. Cuando te registras para usar una API (como FRED o Banxico), el proveedor te asigna una llave. La incluyes en cada solicitud, normalmente como header o query param. El servidor verifica la llave antes de responder.

Por qué no dejar las APIs abiertas para todos?

Sin autenticación, cualquier cliente podría saturar un servidor con millones de solicitudes, consumir recursos costosos o extraer datos propietarios. Las API keys permiten al proveedor monitorear el uso por usuario, aplicar rate limits (por ejemplo, 120 solicitudes por minuto) y revocar el acceso si un cliente abusa del sistema.

Qué pasa si tu key se filtra?

Si subes tu API key a un repositorio público en GitHub, la incluyes en JavaScript del frontend, o la compartes en un mensaje, cualquiera que la encuentre puede realizar solicitudes en tu nombre. En APIs de pago, eso implica cargos a tu cuenta. En APIs sensibles, acceso no autorizado a tus datos. Las keys filtradas son uno de los incidentes de seguridad más frecuentes en el desarrollo de software.

Key expuesta
# Nunca hagas esto
response = requests.get(
  "https://api.fred.org/series",
  params={"api_key": "abc123secret"}
)
Key desde variable de entorno
# Haz esto en cambio
import os
api_key = os.environ["FRED_API_KEY"]
response = requests.get(
  "https://api.fred.org/series",
  params={"api_key": api_key}
)

Reglas fundamentales

1Nunca escribas keys directamente en tu código fuente.
2Utiliza variables de entorno (archivos .env) para almacenarlas.
3Nunca expongas keys en código frontend o del lado del cliente.
4Rota las keys periódicamente y revoca las que ya no utilices.
5Implementa un proxy en el backend para que las keys permanezcan siempre del lado del servidor.
Un ejemplo práctico

Cuando buscas un vuelo, ingresas ciudad de origen, destino y fecha. El sistema de la aerolínea te devuelve vuelos disponibles con precios y horarios. No tienes acceso a la base de datos, al motor de precios ni al inventario de asientos. Solo completas los campos y recibes resultados. Ese formulario de búsqueda es una API: entradas estructuradas producen salidas estructuradas, y toda la complejidad permanece en el servidor.

02 / Playground

Pruébalo tu mismo

Selecciona una API, configura los parámetros, envía una solicitud real y examina la respuesta.

Llenado rápido

Parámetros

Series identifier (e.g. DGS10, FEDFUNDS, CPIAUCSL)

Start date (YYYY-MM-DD)

End date (YYYY-MM-DD)

Frequency: daily, weekly, monthly, quarterly, annual

Vista previa de solicitud
GET/api/proxy/fred?path=/series/observations&series_id=DGS10&observation_start=2020-01-01&frequency=m
Real endpoint: https://api.stlouisfed.org/fred
Respuesta

Envia una solicitud para ver la respuesta aquí.

03 / Análisis

De JSON a insight

Las mismas respuestas del playground, transformadas en gráficas, métricas y resultados analíticos.

Tasas de Interés
FRED / FEDFUNDS

From FRED API (Federal Reserve Economic Data)

Tipo de Cambio
Banxico / SF43718

From Banxico API (Banco de Mexico)

Datos de Mortalidad
World Bank / SP.DYN.LE00.IN

From World Bank API (Development Indicators)

Métricas de Riesgo
Combined APIs

Combined from FRED, Banxico, and World Bank APIs

04 / Construir

Construye la tuya

De consumidor a productor. Los conceptos que aprendiste anteriormente, ahora aplicados para crear tu propia API.

Define tus datos

Qué va a exponer tu API? Una tabla de mortalidad, un modelo de pricing, un score de riesgo.

Elige un framework

FastAPI (Python) o Express (TypeScript): ambos te permiten tener endpoints operando en minutos.

Crea los endpoints

Asocia URLs a funciones. GET /api/mortality?age=45 devuelve la tasa de mortalidad.

Agrega autenticación

Protege tu API con API keys o tokens, de la misma forma que lo hacen FRED y Banxico.

Despliega

Push a Vercel, Railway o Cloud Run. Tu API queda disponible.

Listo para profundizar?

Ya tienes los fundamentos. Ahora explora cómo se comportan las APIs bajo presion, cómo fallan y cómo depurarlas.

Entrar al Modo Avanzado