Crea una chiave API

POST /v1/api-keys · autorizzazione api-keys:write · Idempotency-Key obbligatoria

Crea una chiave API di gestione per l'ambiente. Una chiave secret accede a tutta la API di gestione; una chiave restricted ha solo le autorizzazioni elencate (<resource>:<action>).

Richiesta

Corpo:

Campo Tipo Descrizione
name string Obbligatorio. Da 1 a 100 caratteri.
type string Obbligatorio. secret o restricted.
permissions string[] Obbligatorio e non vuoto per restricted (al massimo 200); assente o vuoto per secret. Non può superare le autorizzazioni del chiamante.
expires_at string (date-time) Obbligatorio, nel futuro, al massimo 730 giorni avanti.
allowed_cidrs string[] Facoltativo, al massimo 20 blocchi CIDR.

Risposta

201 Created con Cache-Control: no-store. L'oggetto chiave come nella risposta della lista, più key.

{
  "id": "key_0000000000000000000000001z",
  "name": "ci",
  "type": "restricted",
  "permissions": ["users:read"],
  "allowed_cidrs": [],
  "last4": "xxxx",
  "created_by": "key_…",
  "created_at": "2026-10-01T10:00:00Z",
  "expires_at": "2027-10-01T10:00:00Z",
  "last_used_at": null,
  "last_used_ip": null,
  "rotated_from": null,
  "revoked_at": null,
  "revoke_reason": null,
  "key": "<shown once>"
}

Errori

HTTP code Quando
401 unauthenticated La chiave manca, non è valida o è revocata.
403 insufficient_permissions La chiave non ha l'autorizzazione richiesta.
403 permission_escalation La richiesta darebbe a una chiave più autorizzazioni, un intervallo di rete più ampio o una scadenza più lontana di quelle della chiave chiamante; una chiave restricted tenta di creare, ruotare o revocare oltre le proprie autorizzazioni; oppure un'altra chiave tenta di ruotare o revocare una chiave creata dalla dashboard.
409 api_key_limit_reached L'ambiente ha già il massimo di 50 chiavi attive.
422 validation_failed Il corpo non è valido: name mancante o troppo lungo, type sconosciuto, restricted senza permissions, secret con permissions, autorizzazione o CIDR malformati, expires_at nel passato o oltre 730 giorni.

Esempio

curl -X POST https://api.eu.keenauth.com/v1/api-keys \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name":"ci","type":"restricted","permissions":["users:read"],"expires_at":"2027-10-01T10:00:00Z"}'