¿Qué es una API Key? Definición, Uso, Mejores Prácticas
Una API key es un string único que identifica la aplicación llamando. Usado para auth, rate limiting, billing, pero más débil que OAuth.
¿Qué es una API key?
Una API key es un string único de caracteres que identifica y autentica la aplicación o usuario haciendo un request a una API. Es la forma más simple de autenticación API: incluir el key en el header request (o a veces query string), y el servidor lo chequea contra una base datos.
Las API keys se usan comúnmente para: identificar qué app/equipo está llamando, aplicar rate limits, trackear uso para billing y autorización básica.
Cómo se ve una API key
API_KEY="sk_live_4eC39HqLyjWDarjtT1zdp7dc"Cómo se envían API keys
| Método | Ejemplo | Notas |
|---|---|---|
| Header Authorization | Authorization: Bearer YOUR_API_KEY | Más común, recomendado |
| Header custom | X-API-Key: YOUR_API_KEY | Pattern común |
| Query string | ?api_key=YOUR_API_KEY | Menos seguro |
| Body request | Campo JSON | Raro para REST |
API key vs otros métodos auth
| Método | Strength | Cuándo usar |
|---|---|---|
| API key | Bajo | Server-to-server, simple |
| OAuth 2.0 | Alto | Apps user-facing |
| JWT | Medio-alto | Microservicios |
| mTLS | Alto | Service-to-service |
| Basic Auth | Bajo | Legacy |
| HMAC signing | Alto | Webhooks |
Ejemplo generación API key
import crypto from 'crypto';
function generateApiKey(prefix = 'sk_live_') {
return prefix + crypto.randomBytes(24).toString('hex');
}
const hash = crypto.createHash('sha256').update(key).digest('hex');
await db.apiKeys.insert({ user_id: userId, key_hash: hash });Mejores prácticas seguridad API key
- Tratar keys como secretos.
- Usar environment variables.
- Rotar regularmente.
- Scopear con permisos.
- IP allowlist.
- Keys diferentes por entorno.
- Hashear, no raw.
- Mostrar key una vez en creación.
- Rate limit per key.
- Loguear uso key.
- Revocar on demand.
Pitfalls API key comunes
- Keys en código client-side.
- Keys en historia git.
- Keys en URLs.
- Single key para todo.
- Sin rotación.
- Sin rate limiting.
- Almacenar keys raw en DB.
- Compartir keys vía Slack/email.
Casos uso API key
| Caso uso | Por qué API key funciona |
|---|---|
| Auth server-to-server | Sin interacción usuario |
| APIs read públicas | Identificar caller |
| Webhooks (sending) | Autenticar sender |
| Integraciones third-party | Más simple que OAuth flow |
| Auth microservicio interno | Si mTLS overkill |
FAQ: API keys
¿Son seguras las API keys?
Menos que OAuth 2.0 o mTLS.
¿API key vs OAuth: cuál usar?
API key para server-to-server. OAuth para apps user-facing.
¿Cómo roto una API key?
Generar nuevo key, ambos válidos durante transición, revocar viejo.
¿Deberían las API keys expirar?
Sí. 90 días típico.
¿Dónde guardo API keys?
Secrets manager.
¿Cómo detecto una API key leaked?
GitHub secret scanning, gitleaks.
¿Puedo usar API keys en apps mobile?
Riesgoso.
Testea endpoints API-key-protegidos con LoadFocus
LoadFocus corre scripts JMeter y k6 que envían API keys a escala. Regístrate en loadfocus.com/signup.
Herramientas LoadFocus relacionadas
Lleva este concepto a la práctica con LoadFocus, la misma plataforma que potencia todo lo que acabas de leer.