Autenticación

Claves API, scopes y gestión desde el panel.

Claves API

Toda solicitud a una categoría de IA se autentica con una clave API en la cabecera Authorization:

http
Authorization: Bearer emk_live_xxxxxxxxxxxxxxxxxxxx

Una clave siempre está vinculada a un entorno (p. ej. "development", "production"), a su vez vinculado a un proyecto y luego a una organización. El prefijo distingue el tipo de clave:

  • emk_live_... — clave de producción, llamadas realmente facturadas
  • emk_test_... — clave de prueba, creada automáticamente para cualquier entorno distinto de "production"
El valor en bruto de una clave solo se muestra una vez, en el momento de su creación (POST /v1/environments/{environment_id}/api-keys). Solo se conserva su hash en el servidor — si la pierdes, revócala y crea una nueva.

Scopes

Al crearla, una clave puede restringirse a una lista de categorías (scopes: chat, images, vision, audio, video, embeddings, translation, agents). Una clave sin scope explícito (scopes: [], valor por defecto) tiene acceso a todas las categorías — restringir el acceso es siempre una elección explícita.

bash
curl -X POST https://api.ileai.io/v1/environments/{environment_id}/api-keys \
  -H "Authorization: Bearer <jeton de session>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Cle chat uniquement",
    "scopes": ["chat"]
  }'

Una solicitud a una categoría no autorizada por los scopes de la clave devuelve 403 insufficient_scope.

Gestionar las claves

Desde el panel (Claves API) o mediante la API:

bash
# Lister les cles d'un environnement
GET /v1/environments/{environment_id}/api-keys

# Revoquer une cle
DELETE /v1/api-keys/{api_key_id}

Cuentas y equipos

La autenticación por clave API se usa para llamadas programáticas (SDK, HTTP directo). El propio panel usa una sesión de cuenta (email/contraseña, cookies httpOnly) — los endpoints /v1/account, /v1/auth/login, /v1/orgs/{id}/invitations, etc. no aceptan una clave API y no están pensados para uso programático.