Autenticación
Una sola API key, con su presupuesto y sus límites, que se rota desde el panel cuando haga falta.
La key
Al contratar un plan se emite una API key con el prefijo sk-. Lleva asociados el presupuesto del mes y los límites de velocidad del plan, así que no hay nada más que configurar: la key ES la configuración.
Se envía como Bearer token, que es lo que hace el SDK de OpenAI por vos cuando le pasás api_key. Si llamás por HTTP directo, va en la cabecera Authorization.
curl https://ai.truo.cloud/v1/chat/completions \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-flash",
"messages": [{"role": "user", "content": "Hola"}]
}'Rotarla
Desde el panel se revoca la key actual y se emite una nueva del mismo plan al instante. El presupuesto y el consumo del ciclo siguen siendo los mismos: lo que cambia es el secreto, no la cuenta.
Conviene rotar cuando la key pudo quedar expuesta — un repositorio público, un log, un colaborador que se va. La anterior deja de funcionar en el momento.
Dónde guardarla
En una variable de entorno del servidor, nunca en el código del navegador. Una key en un bundle de frontend es una key pública: cualquiera que abra las herramientas de desarrollo la copia, y el presupuesto que consuma sale del tuyo.
Si necesitás llamar desde el navegador, el patrón es un endpoint propio en tu backend que reciba la petición del usuario y hable con el gateway del lado del servidor.