Tokens de API

Ver en Markdown

Crea, lista y revoca los tokens owf_ que autentican las peticiones a la API, la CLI y el servidor MCP.

En esta página

Los tokens de API (owf_…) autentican la API, los SDK, la CLI y el servidor MCP. Un token actúa con el rol de su miembro, limitado al rol del propio token y, si se quiere, a una zona o a un cliente. Consulta Autenticación.

OperaciónRuta
Listar tokensGET /v1/orgs/{org}/tokens
Crear un tokenPOST /v1/orgs/{org}/tokens
Revocar un tokenDELETE /v1/orgs/{org}/tokens/{id}

Listar tokens

GET /v1/orgs/{org}/tokens

Lista los tokens de API activos de la organización, nunca sus secretos. prefix ayuda a reconocer cada uno y last_used_at dice cuándo se usó por última vez.

Rol necesario: admin o superior. De toda la organización.

Parámetros

NombreEnTipoObligatorioDescripción
orgrutastring (uuid)SíId de la organización. Cada ruta comprueba que es la del token (si no, 404).

Respuesta

  • 200: Devuelve items, un array de APIToken.
CampoTipoDescripción
items[].idstring (uuid)Id.
items[].org_idstring (uuid)Id de la organización.
items[].zone_idstring (uuid)Id de la zona.
items[].user_idstring (uuid)Id de usuario del miembro.
items[].namestringNombre.
items[].rolestringRol. Uno de owner, admin, tech, readonly.
items[].prefixstringPrimeros caracteres del secreto, para reconocerlo.
items[].purge_onlybooleanSolo puede purgar la caché de su zona.
items[].created_bystringQuién lo creó (actor).
items[].created_atstring (date-time)Fecha de creación.
items[].expires_atstring (date-time)Fecha de caducidad.
items[].last_used_atstring (date-time)Último uso.
items[].client_idstring (uuid) o nullCliente al que se limita el token (solo roles tech y readonly); null = toda la organización.

Ejemplo

curl "https://dash.openwaf.dev/v1/orgs/$OPENWAF_ORG/tokens" \
  -H "Authorization: Bearer $OPENWAF_TOKEN"
200
{
  "items": [
    {
      "id": "11111111-2222-4333-8444-555555555555",
      "org_id": "1e7c9a3b-5d2f-4b8a-9c6e-0f2a4b6c8d1e",
      "zone_id": "6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d",
      "user_id": "5b8e2a1c-7d3f-4a9e-b6c2-1e4d7f0a3b9c",
      "name": "ci-deploy",
      "role": "tech",
      "prefix": "owf_8Jx2",
      "purge_only": false,
      "created_by": "user:5b8e2a1c-7d3f-4a9e-b6c2-1e4d7f0a3b9c",
      "created_at": "2026-10-27T09:30:00Z",
      "expires_at": "2027-01-25T09:30:00Z",
      "client_id": null
    }
  ]
}

Crear un token

POST /v1/orgs/{org}/tokens

Crea un token de API para el propio miembro de quien llama. Sin role, el token recibe el rol de quien lo crea. Se puede limitar a una zona (zone_id), a un cliente (client_id) o a purgar la caché de su zona (purge_only). Consulta Limitar un token.

El secret (owf_…) solo se devuelve en esta respuesta: guárdalo enseguida.

Rol necesario: readonly o superior. El rol del nuevo token no puede ser mayor que el de quien lo crea. No disponible para tokens limitados a una zona.

Parámetros

NombreEnTipoObligatorioDescripción
orgrutastring (uuid)SíId de la organización. Cada ruta comprueba que es la del token (si no, 404).

Cuerpo de la petición

Tipo de contenido application/json.

CampoTipoObligatorioDescripción
namestringSíNombre. Como mucho 200 caracteres.
rolestringNoRol del token; por defecto, el de quien lo crea (tech con purge_only). Uno de owner, admin, tech, readonly.
zone_idstring (uuid)NoLimita el token a esa zona.
expires_in_daysintegerNoPor defecto 90. De 1 a 365.
purge_onlybooleanNoToken que solo puede purgar la caché de su zona (POST cache/purge y GET cache/purges; cualquier otra ruta, MCP incluido, responde 403 token_scope). Exige zone_id, sin cliente; rol tech (por defecto). Por defecto false.
client_idstring (uuid)NoLimita el token a las zonas de un cliente (solo roles tech y readonly). Una credencial limitada a un cliente solo emite tokens de su cliente.

Respuesta

  • 201: Creado; secret se muestra una sola vez. Devuelve IssuedToken.
CampoTipoDescripción
idstring (uuid)Id.
org_idstring (uuid)Id de la organización.
zone_idstring (uuid)Id de la zona.
user_idstring (uuid)Id de usuario del miembro.
namestringNombre.
rolestringRol. Uno de owner, admin, tech, readonly.
prefixstringPrimeros caracteres del secreto, para reconocerlo.
purge_onlybooleanSolo puede purgar la caché de su zona.
created_bystringQuién lo creó (actor).
created_atstring (date-time)Fecha de creación.
expires_atstring (date-time)Fecha de caducidad.
last_used_atstring (date-time)Último uso.
client_idstring (uuid) o nullCliente al que se limita el token (solo roles tech y readonly); null = toda la organización.
secretstringSe muestra una sola vez; solo se guarda su SHA-256.

Errores

EstadoDescripción
403El rol o los límites del token no lo permiten (forbidden).
404No existe o el token no lo ve (not_found).

Ejemplo

curl -X POST "https://dash.openwaf.dev/v1/orgs/$OPENWAF_ORG/tokens" \
  -H "Authorization: Bearer $OPENWAF_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{
    "name": "ci-deploy",
    "role": "tech",
    "zone_id": "6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d",
    "expires_in_days": 90
  }'
201
{
  "id": "11111111-2222-4333-8444-555555555555",
  "org_id": "1e7c9a3b-5d2f-4b8a-9c6e-0f2a4b6c8d1e",
  "zone_id": "6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d",
  "user_id": "5b8e2a1c-7d3f-4a9e-b6c2-1e4d7f0a3b9c",
  "name": "ci-deploy",
  "role": "tech",
  "prefix": "owf_8Jx2",
  "purge_only": false,
  "created_by": "user:5b8e2a1c-7d3f-4a9e-b6c2-1e4d7f0a3b9c",
  "created_at": "2026-10-27T09:30:00Z",
  "expires_at": "2027-01-25T09:30:00Z",
  "client_id": null,
  "secret": "owf_8Jx2…"
}

Revocar un token

DELETE /v1/orgs/{org}/tokens/{id}

Revoca un token; deja de valer al momento.

Rol necesario: admin o superior. De toda la organización, o cualquier rol para revocar el propio token de la petición.

Parámetros

NombreEnTipoObligatorioDescripción
orgrutastring (uuid)SíId de la organización. Cada ruta comprueba que es la del token (si no, 404).
idrutastring (uuid)SíId del recurso.

Respuesta

  • 204: Revocado. Sin cuerpo.

Errores

EstadoDescripción
404No existe o el token no lo ve (not_found).

Ejemplo

curl -X DELETE "https://dash.openwaf.dev/v1/orgs/$OPENWAF_ORG/tokens/11111111-2222-4333-8444-555555555555" \
  -H "Authorization: Bearer $OPENWAF_TOKEN"

Última actualización:

↑↓ para moverte↵ para abriresc para cerrar