Blesyum Core

domains

40 uç · /api/v1/domains

İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 40 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.

GET/api/v1/domains

List the active tenant's domains (DOM-18).

Oturum
İstek
curl -X GET "https://api.blesyum.com/api/v1/domains" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains

plus the DNS records the customer must add.

Oturum
İstek
curl -X POST "https://api.blesyum.com/api/v1/domains" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/v1/domains/{id}

Remove a domain binding (DOM-08). NS-delegasyonlu alan adında platform

OturumYol parametresi: id

Cloudflare zone'u da silinir (best-effort): kiracının alan adı hesabımızda "rehin" kalmaz, kiracı NS'ini registrar'ından eski sağlayıcısına döndürür.

İstek
curl -X DELETE "https://api.blesyum.com/api/v1/domains/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/{id}/auth-code

**EPP/auth kodunu göster** (DOM-30). Alan adını başka bir sağlayıcıya taşımak

OturumYol parametresi: id

isteyen müşterinin yasal hakkıdır — vermemek müşteriyi kilitlemektir. 🔴 Kod HİÇBİR YERE YAZILMAZ: ne kolona, ne loga, ne bildirim gövdesine. Alan adının tamamını devreden tek-kullanımlık bir sırdır ve saklanan sır er geç sızar. (Aynı ders "personel parolası in-app bildirime yazılmaz"da alınmıştı.) Kod GÖRÜNTÜLENDİĞİ AN yöneticilere duyurulur: gerçek sahibi bunu görmezse alan adının taşındığını ancak alan adı gittiğinde öğrenir.

İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/<id>/auth-code" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/{id}/auto-renew

Otomatik-yenileme aç/kapat (yerel toggle; canlı tahsilat=Faz4). core.settings.manage.

OturumYol parametresi: id
İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/<id>/auto-renew" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/{id}/challenge

Hassas işlem için e-posta kodu iste (DOM-30). Sıra ÖNEMLİ: önce parola, sonra kod.

OturumYol parametresi: id

🔴 Sırayı TERS KURMA. Kod önce gönderilseydi bu uç ücretsiz bir **posta bombası** olurdu: saldırgan kurbanın kutusuna istediği kadar "alan adı kodu" yağdırırdı.

İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/<id>/challenge" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/v1/domains/{id}/dns

Zone kayıtlarını listele (DNS yönetim ekranı).

OturumYol parametresi: id
İstek
curl -X GET "https://api.blesyum.com/api/v1/domains/<id>/dns" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/{id}/dns

Zone'a kayıt ekle.

OturumYol parametresi: id
İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/<id>/dns" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PUT/api/v1/domains/{id}/dns/{record_id}

Kaydı güncelle.

OturumYol parametresi: idrecord_id
İstek
curl -X PUT "https://api.blesyum.com/api/v1/domains/<id>/dns/<record_id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/v1/domains/{id}/dns/{record_id}

Kaydı sil. Sistem kayıtları da silinebilir (zone kiracınındır) — UI uyarır;

OturumYol parametresi: idrecord_id

yönlendirme kırılırsa domains.recheck durumu errora düşürür.

İstek
curl -X DELETE "https://api.blesyum.com/api/v1/domains/<id>/dns/<record_id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/{id}/lock

Transfer kilidi (theft-protection) aç/kapat (registrar'a it). core.settings.manage.

OturumYol parametresi: id

🔴 Kapı ASİMETRİKTİR ve bu bilinçlidir: **açmak** (korumayı kaldırmak) parola + e-posta kodu ister, **kapatmak** (korumayı geri koymak) hiçbir şey istemez. Güvenliği artıran eylemi zorlaştırmak onu yapılmaz kılar — kullanıcı kilidi açık bırakır ve tam da korumak istediğimiz şeyi kaybederiz.

İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/<id>/lock" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PUT/api/v1/domains/{id}/nameservers

Nameserver'ları güncelle (registrar'a it). Doğrulama fail-fast. core.settings.manage.

OturumYol parametresi: id
İstek
curl -X PUT "https://api.blesyum.com/api/v1/domains/<id>/nameservers" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/{id}/ns/check

NS bağlantı durumunu canlı kontrol et: şu anki NS'ler + Cloudflare zone durumu.

OturumYol parametresi: id

Zone 28 günde silinmişse yeniden yaratır (NS çifti değişebilir → köprü tazelenir); pending ise aktivasyon kontrolünü dürter; active ise kayıtları garanti edip doğrulamayı kuyruğa alır.

İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/<id>/ns/check" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/{id}/primary

Make a domain the tenant's primary/default (DOM-06).

OturumYol parametresi: id
İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/<id>/primary" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/{id}/privacy

WHOIS gizlilik korumasını aç/kapat (registrar'a it). core.settings.manage.

OturumYol parametresi: id
İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/<id>/privacy" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/{id}/reach-check

DOM-42 — "Şimdi kontrol et": adresin ve AİLESİNİN (kök + alt adresler) Blesyum'a

OturumYol parametresi: id

ulaşıp ulaşmadığını BU İSTEKTE ölç ve yaz. core.settings.manage. Müşteri alan adını yeniledikten ya da NS'i geri çevirdikten sonra buna basar; cevap BU yanıtta döner (2026-08-16 dersi: "şimdi" diyen düğme kuyruğa iş atıp eski durumu göstermemeli). NS yöntemiyle bağlı kökün zone'u silinmişse ve NS bize dönmüşse zone yedekten yeniden kurulur. Bildirim kararı işçidedir (domains.reach_notify) — "düzeldi"/"koptu" cümlesinin ikinci bir kopyası yok.

İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/<id>/reach-check" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/v1/domains/{id}/registrar

Registrar'daki CANLI durum (NS/kilit/gizlilik/bitiş) — yönetim yüzeyini besler.

OturumYol parametresi: id

NS/kilit/gizlilik yerelde tutulmaz (kolon yok) → her açılışta get_info ile okunur. core.settings.view.

İstek
curl -X GET "https://api.blesyum.com/api/v1/domains/<id>/registrar" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/{id}/renew

Alan adını yenile (DOM-12 Faz 3). Idempotent sipariş → registrar.renew → yeni

OturumYol parametresi: id

expires_at geri-yazılır. Ödeme STUB (canlı tahsilat=Faz4). core.settings.manage.

İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/<id>/renew" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/{id}/ssl

POST /api/v1/domains/{id}/ssl — adresin kapsamı için Blesyum SSL satın al.

OturumYol parametresi: id
İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/<id>/ssl" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/{id}/ssl/auto-renew

POST /api/v1/domains/{id}/ssl/auto-renew — otomatik yenilemeyi aç/kapa.

OturumYol parametresi: id
İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/<id>/ssl/auto-renew" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/{id}/subdomains

Bağlı bir alan adının ALT ADRESİNİ aç (DOM-22). core.settings.manage.

OturumYol parametresi: id

🔴 Neden ayrı bir uç (2026-08-16 kullanıcı vakası: *"pdfdonustur.com bağlanmış ama erp.pdfdonustur.com ERP olsun istiyorum, ayarlayamıyorum"*): kök alan adı NS yöntemiyle bağlandığında **zone'u ARTIK BİZ yönetiyoruz**. Bu durumda müşteriden ikinci kez DNS kaydı istemek anlamsız — etiketi yazması yeter, kaydı biz açar, sahipliği kökten devralır ve adresi ANINDA yayına veririz. Zone bizde DEĞİLSE (elle/Cloudflare-anahtarı ile bağlanmış kök) uç yine çalışır ama kayıt pending doğar ve müşteriye eklemesi gereken DNS kayıtları döner — yani "normal" özel alan adı akışı.

İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/<id>/subdomains" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PATCH/api/v1/domains/{id}/target

Bir adresin hedefini değiştir (DOM-21). core.settings.manage.

OturumYol parametresi: id

İkisi de boş gelirse hedef VARSAYILANA döner — "yönlendirmeyi kaldır" ayrı bir uç istemesin diye. Doğrulama parse_domain_target ile ekleme ucuyla AYNI: modül lisanslı mı, yönlendirme şeması güvenli mi.

İstek
curl -X PATCH "https://api.blesyum.com/api/v1/domains/<id>/target" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/{id}/verify

Trigger verification of a pending domain (DOM-02) — enqueues the background

OturumYol parametresi: id

HTTP-challenge check.

İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/<id>/verify" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PUT/api/v1/domains/{id}/whois

**WHOIS künyesini (registrant) güncelle** — DOM-31.

OturumYol parametresi: id

Alan adının kayıt sahibi bilgisi budur: adı, adresi, e-postası. ICANN bu bilgilerin GÜNCEL tutulmasını zorunlu kılar ve geçersiz e-posta alan adının askıya alınmasına yol açabilir — yani bu ekran bir konfor değil, bir yükümlülüktür. 🔴 Registrar'a **dört rolün DÖRDÜ de** yazılır (ContactSet::uniform). Yalnız registrant'ı yazmak, yönetim/fatura/teknik rollerini eski (belki artık şirkette olmayan) kişide bırakır ve transfer onayı o adrese gider. ⚠ Bu uç save_contactsi çağırır ve o, sağlayıcıda bir DOĞRULAMA e-postası tetikleyebilir (ICANN kuralı: registrant e-postası değişirse onay istenir). Kullanıcıya bunu SÖYLEMEK gerekir — sessizce bekleyen bir onay, "değiştirdim ama olmadı" diye geri döner.

İstek
curl -X PUT "https://api.blesyum.com/api/v1/domains/<id>/whois" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/cloudflare/check

Cloudflare "otomatik" bağlama ÖN-KONTROLÜ: kiracının verdiği API anahtarını

Oturum

**doğrula** + alan adının **zone'unu bul** (hiçbir kayıt oluşturmaz). Anahtar SAKLANMAZ — yalnız bu istekte kullanılır. UX: kullanıcı bağlanmadan önce anahtarın geçerliliğini + zone erişimini görür.

İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/cloudflare/check" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/cloudflare/connect

Cloudflare "otomatik" bağlama: anahtarı **doğrula** → zone'u **bul** → alan adını

Oturum

ekle → kiracının Cloudflare zone'unda **proxied CNAME + sahiplik TXT**'yi otomatik oluştur → doğrulamayı kuyruğa al. Anahtar SAKLANMAZ. Yaygın hatalar (geçersiz token / erişilemeyen zone) alan adı EKLENMEDEN önce yakalanır. Kayıt oluşturma adımı (nadir CNAME çakışması vb.) başarısızsa alan adı pending KALIR — rollback YOK (remove_domain soft-delete + unique(domain) yeniden denemeyi bloklardı); kullanıcı manage görünümünden kayıtları elle tamamlayıp doğrular.

İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/cloudflare/connect" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/v1/domains/contacts

Tenant'ın WHOIS iletişim profilleri (kayıt formunda seçilebilir). core.settings.view.

Oturum
İstek
curl -X GET "https://api.blesyum.com/api/v1/domains/contacts" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/contacts

Yeni WHOIS iletişim profili. core.settings.manage.

Oturum
İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/contacts" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PUT/api/v1/domains/contacts/{id}

WHOIS iletişim profilini güncelle. core.settings.manage.

OturumYol parametresi: id
İstek
curl -X PUT "https://api.blesyum.com/api/v1/domains/contacts/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/v1/domains/contacts/{id}

WHOIS iletişim profilini sil. core.settings.manage.

OturumYol parametresi: id
İstek
curl -X DELETE "https://api.blesyum.com/api/v1/domains/contacts/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/contacts/{id}/default

Bu profili varsayılan yap. core.settings.manage.

OturumYol parametresi: id
İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/contacts/<id>/default" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/ns/connect

NS-delegasyonla bağla: zone'u platform hesabında yarat/bul, yaşayan kayıtları

Oturum

hasat edip taşı, yönlendirme kayıtlarını garanti et, kiracıya gireceği NS çiftini döndür. Idempotent: aynı alan adıyla tekrar çağrılırsa mevcut zone bilgisi döner.

İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/ns/connect" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/v1/domains/orders

Alan adı sipariş geçmişi (satın alma/yenile). core.settings.view.

Oturum
İstek
curl -X GET "https://api.blesyum.com/api/v1/domains/orders" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/register

Alan adı satın al (DOM-12 Faz 2). core.settings.manage + aktif abonelik +

Oturum

domains_registered limiti. Idempotent sipariş → registrar.register → satın alınan alan adı galeriye düşer (custom_domains, auto-NS→edge, status active). Ödeme STUB (canlı tahsilat=Faz4). OT&E'de gerçek para OLUŞMAZ.

İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/register" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/search

Alan adı uygunluk + retail fiyat araması (DOM-12). Salt-okunur registrar çağrısı.

Oturum

Fiyatlar RETAIL (reseller cost + config markup); reseller cost asla sızmaz. Kök HER ZAMAN bir uzantı KÜMESİ boyunca aranır: kullanıcı "ornek" de yazsa "ornek.com" da yazsa 20 popüler uzantının tamamı döner (yazdığı uzantı BAŞA alınır). Eskiden "ornek.com" YALNIZ o tek alan adını sorguluyordu; sağlayıcı o uzantıyı yanıtlayamayınca liste boş kalıp kullanıcı "Sonuç bulunamadı" görüyordu. Sağlayıcı, sorgulayamadığı uzantıları yanıttan SESSİZCE düşürür (HTTP 200 + success:true, kalem yok — OT&E'de .com/.net böyle). Sorulan-ama-dönmeyen her uzantı bu yüzden yanıtta state:"unchecked" ile DÜRÜSTÇE görünür; yok sayılmaz.

İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/search" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/v1/domains/ssl

GET /api/v1/domains/ssl — fiyat kırılımı + kiracının abonelikleri + kayıtlı kart.

Oturum
İstek
curl -X GET "https://api.blesyum.com/api/v1/domains/ssl" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/v1/domains/tlds

Registrar TLD fiyat kataloğu (retail) — "alan adı satın al" yüzeyi için (DOM-12).

Oturum

domain_pricing global tablosundan (worker pricing_sync doldurur); app SELECT.

İstek
curl -X GET "https://api.blesyum.com/api/v1/domains/tlds" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/v1/domains/transfer

Alan adını Blesyum'a **transfer et** (DOM-12 Faz 3). Asenkron: sipariş processing

Oturum

kalır, registrar.transfer_poll tamamlanınca galeriye düşürür. Entitlement gate (alan adı edinme). Ödeme STUB (canlı=Faz4). core.settings.manage.

İstek
curl -X POST "https://api.blesyum.com/api/v1/domains/transfer" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/v1/domains/whois

Alınmış alan adı için ÜCRETSİZ sahiplik/kayıt sorgusu (arama sonuçlarındaki

Oturum

"Kim almış?"). Registrar-BAĞIMSIZ — DNA reseller API'sinde böyle bir uç yok; kaynak registry RDAP'ı (IANA bootstrap) veya yetkili port-43 whois (.tr = TRABIS, diğerleri IANA referral). Sonuç 6 saat Redis'te paylaşılır (single- flight; whois verisi yavaş değişir) + tenant başına 10/dk limit — hem kötüye kullanım hem registry'lerin IP kotası (429) için. gTLD'lerde registrant GDPR/KVKK gereği çoğunlukla gizlidir (privacy:true) — dürüstçe döneriz.

İstek
curl -X GET "https://api.blesyum.com/api/v1/domains/whois" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/v1/domains/whois/detail

DETAYLI whois sorgusu (/domains/whois/[domain] sayfası): özet + registry HAM

Oturum

çıktısı + kayıt şirketinin whois sunucusuna İKİNCİ sorgu ile Kayıtlı/İdari/ Teknik iletişim blokları. whois_domain_h ile aynı guard'lar (izin + charset validasyonu + AYNI "whois" rate-limit kovası — iki uç toplamda 10/dk/tenant); daha ağır olduğundan kendi cache anahtarı (6h, single-flight).

İstek
curl -X GET "https://api.blesyum.com/api/v1/domains/whois/detail" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
Bu sayfa işine yaradı mı?