Özel alan ekle
POST /v1/custom-domains · izin custom-domains:write
Ortama bir özel giriş alan adı ekler. Ad IDNA2008 A-etiketine çevrilir; genel sonekler, tek etiketli adlar, IP adresleri ve platform alanları reddedilir. Ad platform genelinde tekildir: başka bir ortam kullanıyorsa ya da 30 günden kısa süre önce bırakıldıysa (karantina) istek 409 custom_domain_taken ile reddedilir. Alan pending_dns durumunda başlar; dönen dns_records kayıtlarını (kalıcı TXT sahiplik kaydı ve ortamın kenar host'una CNAME) DNS sağlayıcınızda yayımlayın, sonra :verify çağırın ya da otomatik denetimi bekleyin.
İstek
JSON gövdesi (bilinmeyen alanlar 400 unknown_field ile reddedilir):
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
Idempotency-Key |
başlık | evet | Zorunlu. 16-64 karakter [A-Za-z0-9_-]; aynı anahtar aynı adla yinelenirse aynı alan döner. |
hostname |
string | evet | Eklenecek ad (Unicode olabilir), en çok 253 bayt; örneğin login.example.com. |
Yanıt
201 Created; alan ve ETag başlığı.
{
"id": "cdom_01j9xk3m7q8r2s4t6v8w0y2z4a",
"hostname": "login.example.com",
"is_primary": false,
"status": "pending_dns",
"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": null,
"last_checked_at": null,
"next_check_at": "2026-10-05T09:36:00Z",
"activated_at": null,
"degraded_since": null,
"status_changed_at": "2026-10-05T09:30:00.123456Z",
"created_at": "2026-10-05T09:30:00.123456Z",
"updated_at": "2026-10-05T09:30:00.123456Z"
}
Hatalar
| HTTP | code | Ne zaman |
|---|---|---|
| 400 | malformed_request |
Idempotency-Key yok ya da biçimsiz. |
| 400 | unknown_field |
Gövdede bilinmeyen bir alan var. |
| 403 | quota_exceeded |
Ortamın özel alan kotası dolu ya da ortam bir development ortamı. |
| 409 | custom_domain_taken |
Ad başka bir ortamda kullanılıyor ya da 30 günlük karantinada. |
| 409 | conflict |
Hesap ya da ortam etkin değil. |
| 415 | unsupported_media_type |
İçerik türü application/json değil. |
| 422 | validation_failed |
hostname özel alan için geçerli bir alan adı değil. |
| 422 | idempotency_key_reuse |
Idempotency-Key başka bir gövdeyle zaten kullanıldı. |
| 429 | rate_limited |
Hesap bugün çok fazla özel alan ekleme denemesi yaptı; Retry-After süresinden sonra yeniden deneyin. |
| 503 | service_unavailable |
Platform alan kayıt defteri ya da ortamın hesap bilgisi geçici olarak kullanılamıyor. |
| 401 | unauthenticated |
Kimlik bilgisi yok, geçersiz ya da iptal edilmiş. |
| 403 | insufficient_permissions |
Kimlik bilgisinde gerekli izin yok. |
Örnek
curl -X POST https://api.eu.keenauth.com/v1/custom-domains \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"hostname":"login.example.com"}'