Rendre un domaine personnalisé principal
POST /v1/custom-domains/{custom_domain_id}:make-primary · permission custom-domains:write
Fait du domaine le domaine personnalisé principal de l'environnement (les liens de connexion hébergée l'utilisent) ; l'ancien domaine principal perd ce rôle dans la même opération. Le domaine doit être active ; rendre principal le domaine déjà principal ne change rien. Lorsque l'émetteur (issuer) de l'environnement est sur un domaine personnalisé, changer le domaine principal change l'émetteur et doit être planifié comme une migration d'émetteur.
Requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
custom_domain_id |
string | oui | Identifiant du domaine personnalisé (cdom_…). |
Idempotency-Key |
header | non | Clé facultative (16-64 caractères) qui rend une requête réessayée sûre. |
If-Match |
header | non | Facultatif. S'il est fourni, il doit correspondre à l'ETag du domaine (sinon 412). |
Pas de corps de requête.
Réponse
200 OK avec le domaine et un en-tête ETag.
{
"id": "cdom_01j9xk3m7q8r2s4t6v8w0y2z4a",
"hostname": "login.example.com",
"is_primary": true,
"status": "active",
"failure_reason": null,
"dns_records": [
{
"type": "TXT",
"name": "_akp-verify.login.example.com",
"value": "idp-verify=3q2-7wEXAMPLEtokenQ9"
},
{
"type": "CNAME",
"name": "login.example.com",
"value": "acme.eu.edge.keenauth.app"
}
],
"certificate_expires_at": "2027-01-04T09:31:12Z",
"last_checked_at": "2026-10-05T09:31:00Z",
"next_check_at": null,
"activated_at": "2026-10-05T09:31:12Z",
"degraded_since": null,
"status_changed_at": "2026-10-05T09:31:12Z",
"created_at": "2026-10-05T09:30:00.123456Z",
"updated_at": "2026-10-05T09:31:12Z"
}
Erreurs
| HTTP | code | Quand |
|---|---|---|
| 404 | not_found |
Le domaine personnalisé n'existe pas ou appartient à un autre environnement. |
| 409 | custom_domain_state_conflict |
Le domaine n'est pas active. |
| 409 | issuer_change_requires_schedule |
L'émetteur de l'environnement est sur un domaine personnalisé ; le changement doit être planifié comme une migration d'émetteur. |
| 412 | precondition_failed |
If-Match ne correspond pas à la version actuelle du domaine. |
| 503 | service_unavailable |
Les informations d'émetteur de l'environnement sont temporairement indisponibles. |
| 401 | unauthenticated |
L'identifiant est absent, invalide ou révoqué. |
| 403 | insufficient_permissions |
L'identifiant n'a pas la permission requise. |
| 429 | rate_limited |
La limite de débit a été dépassée ; réessayez après le délai Retry-After. |
Exemple
curl -X POST https://api.eu.keenauth.com/v1/custom-domains/cdom_01j9xk3m7q8r2s4t6v8w0y2z4a:make-primary \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H 'If-Match: "4"'