¿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.