Créer une identifiante d'application

POST /v1/applications/{application_id}/credentials · permission applications:write · Idempotency-Key optionnel

Ajoute une identifiante à une application : un secret client généré par la plateforme (type: client_secret) ou une clé publique enregistrée pour private_key_jwt (type: public_key).

Demande

Paramètre Emplacement Description
application_id yol Application id (app_…).

Body:

Champ Type Description
type string Required. client_secret or public_key.
expires_at string (date-time) Optional, client_secret only; must be in the future.
jwk object Required for public_key; a public JWK, at most 16 KiB.

Réponse

201 Created with Cache-Control: no-store. The credential object as in the list response; for client_secret it also has client_secret.

{
  "id": "cred_0000000000000000000000001z",
  "type": "client_secret",
  "secret_last4": "abcd",
  "client_secret": "<shown once>",
  "expires_at": null
}

Erreurs

HTTP code Quand
401 unauthenticated The key is missing, invalid or revoked.
403 insufficient_permissions The key lacks the required permission.
404 not_found The application does not exist in this environment.
409 credential_limit_reached The application already has the maximum number of active secrets (2) or keys (5).
409 conflict The same public key is already registered for the application.
422 validation_failed The body is invalid: unknown type, missing jwk, private JWK members, JWK too large, expires_at in the past or sent with public_key, or a credential type the application type does not allow (/type: not_allowed: client_secret only for web and m2m; public_key for web, m2m, device and management; spa and native are public clients and take no credentials).
503 service_unavailable The credential registry is temporarily unavailable; retry after the Retry-After delay.

Exemple

curl -X POST https://api.eu.keenauth.com/v1/applications/app_6f8d0cjgbmf0gtn2rg6pscp3cg/credentials \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"type":"client_secret"}'