Saltar a contenido

API Keys

Gestión de credenciales de acceso por cliente. Solo accesible con el admin token.

Ciclo de vida

stateDiagram-v2
    [*] --> created: POST /api-keys
    created --> active: Key generada (mk_...)
    active --> revoked: POST /api-keys/revoke
    revoked --> [*]

    note right of active: El cliente usa esta key<br/>en todas sus requests

Endpoints

GET /api-keys

Lista todas las API keys.

curl https://api.example.com/api-keys \
  -H "x-api-token: ADMIN_TOKEN"
{
  "keys": [
    {
      "client": "mi-cliente",
      "description": "Key producción",
      "active": true,
      "created_at": "2025-01-15T10:00:00.000Z",
      "last_used_at": "2025-02-20T15:30:00.000Z"
    }
  ]
}

POST /api-keys

Crea una API key para un cliente. El cliente debe tener un token OAuth activo.

Body:

Campo Tipo Requerido Descripción
client string Nombre del cliente
description string Descripción de la key
curl -X POST https://api.example.com/api-keys \
  -H "Content-Type: application/json" \
  -H "x-api-token: ADMIN_TOKEN" \
  -d '{ "client": "mi-cliente", "description": "Key producción" }'
{
  "message": "API key created successfully",
  "client": "mi-cliente",
  "key": "mk_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2"
}

Guardar la key

La key se muestra una sola vez. No se puede recuperar después.


POST /api-keys/revoke

Revoca la API key de un cliente. La key deja de funcionar inmediatamente.

curl -X POST https://api.example.com/api-keys/revoke \
  -H "Content-Type: application/json" \
  -H "x-api-token: ADMIN_TOKEN" \
  -d '{ "client": "mi-cliente" }'
{ "message": "API key revoked for 'mi-cliente'" }