# Clave de API

> Un texto secreto que identifica a tu app cuando llama a la API de otro.

- Nivel: Intermedio
- Temas: Seguridad, Software
- URL: https://tidbit.legios.com.ar/es/api-key/
- En inglés: [API key](https://tidbit.legios.com.ar/api-key/)

Una **clave de API** (API key) es un texto largo, con pinta de aleatorio, algo como `sk_live_4f9a…`, que un servicio te da para que tu programa use su API. Cada pedido que manda tu código incluye la clave, casi siempre en un encabezado, y el servicio la usa para saber quién llama: a qué cuenta facturar, qué límites aplican y qué puede hacer ese llamador.

Como quien tiene la clave puede actuar como vos, funciona igual que una contraseña. Si se filtra, un desconocido puede inflarte la factura de una API paga de IA o de mapas, leer tus datos o mandar mensajes en tu nombre. La filtración más común es una clave escrita directamente en el código y subida a un repositorio público de GitHub; hay bots que buscan exactamente eso y la encuentran en minutos.

De ahí salen los buenos hábitos. Guardá las claves fuera del código, en variables de entorno o en un gestor de secretos como AWS Secrets Manager. Nunca pongas una clave secreta en el código de un sitio web o de una app móvil, porque cualquiera puede leerla ahí; llamá a la API desde tu servidor. Dale a cada clave solo los permisos que necesita, usá claves distintas para pruebas y producción, y **rotalas**: creás una nueva, cambiás a esa y revocás la vieja. Las claves identifican a un programa; para actuar en nombre de una persona, los servicios usan tokens de OAuth.

## Una analogía

Como la credencial que recibe un proveedor en un edificio de oficinas. Abre las puertas que necesita y registra cada entrada a nombre de su empresa; si la pierde, la das de baja e imprimís una nueva.

## Para quedarse

- Identifica a la app que llama y a su cuenta, muchas veces para facturar y poner límites.
- Tratala como una contraseña: cualquiera que la tenga puede usarla.
- Guardala en variables de entorno o en un gestor de secretos, nunca en el código.
- Si se filtra, revocala y creá una nueva enseguida.

## Para seguir leyendo

- [¿Qué es una clave de API? (AWS)](https://aws.amazon.com/es/what-is/api-key/)
- [Administrar claves de API (documentación de Google Cloud)](https://cloud.google.com/docs/authentication/api-keys?hl=es-419)
- [Secrets Management Cheat Sheet (OWASP, en inglés)](https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html)

## Términos relacionados

- [API](https://tidbit.legios.com.ar/es/api/): El menú de cosas que un programa le deja pedir a otro programa.
- [Inteligencia artificial](https://tidbit.legios.com.ar/es/artificial-intelligence/): Lograr que las computadoras hagan cosas que hasta hace poco solo hacía la gente.
- [GitHub](https://tidbit.legios.com.ar/es/github/): Un sitio donde los equipos guardan su código con Git y trabajan juntos en él.
- [Variables de entorno](https://tidbit.legios.com.ar/es/environment-variables/): Ajustes con nombre que un programa lee desde fuera de su código, como dónde está su base.
- [AWS Secrets Manager](https://tidbit.legios.com.ar/es/aws-secrets-manager/): Una caja fuerte para contraseñas y claves de API, para que nunca vivan en tu código.
- [Servidor](https://tidbit.legios.com.ar/es/server/): Una computadora cuyo trabajo es responder pedidos de otras computadoras, todo el día.
- [Token](https://tidbit.legios.com.ar/es/token/): El pedacito de texto que un modelo de lenguaje realmente lee.
- [OAuth y SSO](https://tidbit.legios.com.ar/es/oauth-and-sso/): Iniciar sesión una vez con una cuenta confiable y que ella responda por vos en otras apps.
