Alan Adi Bayilik API Referansi
Alan adlarini bayi seviyenizin fiyatiyla kaydetmek, yenilemek ve yonetmek icin bir HTTP arayuzu — kendi faturalama sisteminizden otomatik cagrilmak uzere tasarlandi.
https://servernet.cloud/tr/developers · 2026/08/25
1Baslangic
- Hesabinizin alan adi bayisi olarak etkinlestirilmesi gerekir; aksi halde uc noktalar yetki hatasi doner.
- Musteri panelinde Guvenlik bolumunden bir API token uretin ve kapsamini entegrasyonunuzun asgari ihtiyacina daraltin.
- Kendi sunucunuzun cikis IP sini o tokenin izin listesine ekleyin. IP kisiti olmayan bir token her yerden kullanilabilir.
- Hesabi fonlayin. Kayit ve yenileme cagri aninda kredinizden tahsil edilir; sonradan odemeli faturalama yoktur.
- Saglik uc noktasina bir test cagrisi yapin ve donen kademe ile bakiyeyi panelle karsilastirin.
2Kimlik dogrulama ve kapsam
Kimlik dogrulama Authorization basligindaki bearer token ile yapilir. Oturum, cerez veya CSRF katmani yoktur; her istek bagimsiz ve durumsuzdur. Token asla URL de veya tarayici kodunda yer almamalidir.
curl -H "Authorization: Bearer sn_xxxxxxxx" \
https://servernet.cloud/api/v1/ping
Kapsamlar
read | hesap profili, hizmetler, faturalar ve kredi bakiyesini okuma |
domains:read | alan adi portfoyu, uygunluk ve kademe fiyatlarini okuma |
domains:write | alan adi kaydi ve yenileme — hesap kredisinden tahsil edilir |
domains:manage | mevcut alan adlarinda ad sunucu ve otomatik yenileme degisikligi |
tunnel:read | cikis sunucunuzun WireGuard-over-TCP hesaplarini okuma |
tunnel:write | tunel hesabi olusturma ve silme — ozel anahtar yalnizca bir kez doner |
Yazma kapsami okuma kapsamini icerir; tersi asla gecerli degildir. Her ortam icin ayri token uretmenizi oneririz.
3Yanit sozlesmesi
Her yanit sabit bicimli bir JSON zarfidir. Istemci mantigi mesaj metnine degil, makine tarafindan okunabilen error tanimlayicisina gore dallanmalidir.
{"ok": true, "data": { ... }}
{"ok": false, "error": "insufficient_credit", "message": "..."}
4Uc noktalar
/api/v1/ping
baglanti testi, kademe ve kredi
read
/api/v1/tlds
uzanti fiyatlari
domains:read
/api/v1/domains/check
uygunluk ve fiyat
domains:read
/api/v1/domains
alan adlariniz
domains:read
/api/v1/domains/{domain}
ayrinti, bitis, durum
domains:read
/api/v1/domains
kayit — krediden dusulur
domains:write
/api/v1/domains/{domain}/renew
yenileme — krediden dusulur
domains:write
/api/v1/domains/{domain}/nameservers
ad sunucu ayarla
domains:manage
/api/v1/domains/{domain}/lock
transfer kilidini ac
domains:manage
/api/v1/domains/{domain}/auto-renew
otomatik yenileme
domains:manage
Uygunluk ve fiyatlandirma
POST https://servernet.cloud/api/v1/domains/check
{"domain": "example.com", "tlds": ["com", "net"]}
{"ok": true, "data": [{
"domain": "example.com", "state": "free", "available": true,
"currency": "IRT",
"price": {"register": 1150000, "renew": 1250000, "retail": 1320000},
"discount_pct": 12.88, "price_floored": false
}]}
Istemci mantigi available booleanina degil state alanina gore dallanmalidir. unchecked degeri sorgunun sonuclanmadigi anlamina gelir ve gecici bir durum olarak ele alinmalidir.
free kaydedilebilir
premium kaydedilebilir, registry premium fiyatiyla
taken zaten kayitli
unchecked sorgu sonuclanmadi — tekrar denenebilir
unsupported uzanti satis katalogumuzda degil
no_price kaydedilebilir, ancak guvenilir fiyat yok
price_floored degeri true ise, kademe indiriminiz o uzantida tam uygulanmamistir cunku fiyat marj tabanimiza ulasmistir.
Kayit
POST https://servernet.cloud/api/v1/domains
Idempotency-Key: your-order-12345
{"domain": "example.com", "years": 1,
"nameservers": ["ns1.you.com", "ns2.you.com"]}
{"ok": true, "data": {
"domain": "example.com", "status": "pending",
"order_state": "registered", "registrant": "reseller",
"charged": 1265000, "currency": "IRT"
}}
order_state | ||
|---|---|---|
registered | nihai — alan adi registry de kayitli | baska islem gerekmez |
pending | nihai degil — siparis kabul edildi ve kuyrukta | artan araliklarla sorgulayin; yeniden siparis vermeyin |
manual | nihai degil — tarafimizda insan incelemesinde | tutar tutulur ve sonuc bildirilir |
failed | nihai — kayit tamamlanmadi | tutar tamamen kredinize iade edilir |
5Idempotency ve yeniden deneme
Sunucu Idempotency-Key basligi olmayan istekleri de kabul eder, ancak bu durumda hicbir tekrar korumasi uygulanmaz; bu nedenle her ucretli islemde gonderilmesi her entegrasyonun dogruluk sartidir. Anahtar en fazla 80 karakterdir ve is yapilmadan once benzersiz bir veritabani indeksinde talep edilir.
Anahtar yalnizca alan adindan turetilirse, bir sonraki donem yenilemesi ayni anahtari uretir ve onceki yanit tekrar oynatilir: sisteminiz basari kaydeder, musteri odeme yapar ve registry de hicbir yenileme gerceklesmez.
sha256("renew|example.com|2027-01-01|1")
Ayni anahtari koruyarak ussel geri cekilme ve jitter ile yeniden deneyin; yeniden denemede yeni anahtar uretmek tum garantiyi bozar.
6Hata tanimlayicilari
missing_token | Authorization basligi gonderilmedi |
invalid_token | token taninmadi |
token_expired | token suresi doldu — yenisini uretin |
token_revoked | token iptal edilmis |
ip_not_allowed | kaynak IP bu tokenin izin listesinde degil |
insufficient_scope | token gerekli kapsama sahip degil |
panel_only | bu islem API uzerinden sunulmuyor |
insufficient_credit | kredi yetersiz — gereken ve mevcut tutarlar data alaninda |
daily_cap_reached | hesabin gunluk harcama limiti tukendi |
already_registered | alan adi aktif portfoyumuzde mevcut |
renewal_in_progress | bu alan adi icin yenileme zaten calisiyor |
request_in_progress | bu idempotency anahtarli istek hala isleniyor |
tld_blocked | bu uzantida kayit gecici olarak askida; ucret alinmadi |
tld_not_sold | uzanti satis katalogunda degil |
registrant_incomplete | hesabinizdaki kayit sahibi bilgileri eksik |
no_price | guvenilir fiyat yok |
lookup_failed | kayit sirketi sorgusu sonuclanmadi — tekrar denenebilir |
registrar_rejected | kayit sirketi istenen degisikligi reddetti |
validation_failed | istek govdesi gecersiz — alan bazli ayrinti data icinde |
bad_idempotency_key | idempotency anahtari 80 karakteri asiyor |
conflict | bu idempotency anahtari baska bir istek tarafindan kullanilmis |
invalid_domain | alan adi sozdizimsel olarak gecersiz |
not_found | alan adi hesabinizda degil |
not_registered | alan adi kayit sirketinde henuz kayitli degil — yonetim islemleri kullanilamaz |
not_active | yalnizca aktif bir alan adi yenilenebilir |
already_yours | alan adi zaten kendi hesabinizda |
account_inactive | bayi hesabi kullanilamiyor |
order_failed | siparis tamamlanmadi — ucret alinmadi |
7Fiyatlandirma ve kademeler
API nin dondurdugu fiyat alis fiyatinizdir: perakende eksi kademe indirimi. Kademe, son on iki aylik hacim ve aktif portfoy buyuklugunden ayni anda turetilir.
- Yukseltmeler aninda uygulanir.
- Dususler kademelidir: once ek sure, sonra en fazla bir basamak. Bu asimetri kasitlidir.
- Mevcut kademeniz ve bir sonraki esige uzakliginiz bayi panelinde ve saglik uc noktasi yanitinda mevcuttur.
Marj tabani
Marjimiz uzantiya gore degisir ve ilgili registry nin maliyet yapisini izler. Dusuk marjli uzantilarda indirim yalnizca maliyetimizin ustunde kalan bir tabana kadar uygulanir.
Bu kisitin acikca belirtilmesi bilincli bir tercihtir. Beyan edilmemis bir taban, istemcinin mutabakat yapamayacagi bir fark uretir.
8Kotalar ve limitler
| okuma istekleri | 120 / 1 dakika |
| uygunluk ve fiyat sorgulari | 60 / 1 dakika |
| yazma islemleri | 20 / 1 dakika |
| siparis basina azami sure (yil) | 10 |
| azami es zamanli aktif token | 20 |
Hiz limitinin asilmasi 429 doner ve daha fazla es zamanlilikla degil geri cekilmeyle yonetilmelidir. Ayrica her hesabin gunluk harcama limiti vardir.
9Bilerek kapsam disi
Asagidakiler eksik degil, token yuzeyinden bilerek cikarilmistir. Olcut acik: ele gecirilmis bir tokenla son musteri alan adinin kontrolunu devreden her islem yalnizca panelde insan dogrulamasiyla yapilir.
auth_code | transfer yetki (EPP) kodu alan adi sahipliginin hamiline kimlik bilgisidir; API den donerse kayitlarda kalici olur. |
transfer_unlock | transfer kilidini kaldirmak alan adini baska bir kayit sirketine tasimanin ilk adimidir. |
registrant_change | kayit sahibini degistirmek yasal sahiplik devridir, iletisim bilgisi guncellemesi degil. |
dns | DNS kayit yonetimi bu arayuzun kapsami disindadir; kendi ad sunucularinizi delege edin. |
10Resmi moduller
Bu arayuze karsi iki referans uygulama surdurulmektedir; ikisi de bayi panelinden indirilebilir. Yiginiz bunlardan biriyse el yazimi entegrasyon yerine modulu tercih edin.
modules/registrars/servernet/
Standart bir registrar modulu. WHMCS registrar dizinine kurulur ve yalnizca token gerektirir. Sorgu, kayit, yenileme, ad sunucu, transfer kilidi ve fiyat aktarimini kapsar.
wp-content/plugins/servernet-domains/
Istege bagli WooCommerce entegrasyonlu bir WordPress eklentisi. Kisa kod arama arayuzunu olusturur; odeme onaylandiginda kayit otomatik calisir.
- Fiyat asla tarayicidan kabul edilmez; sepete ekleme aninda bu arayuzden yeniden sorgulanir ve degistirilir.
- Kayit yurutulmeden once alis fiyati siparis anindaki tutarla karsilastirilir; artis tanimli tolerani asarsa otomatik kayit atlanir ve siparis insan karari icin bekletilir.
- Idempotency anahtari siparis kimliginden degil siparis satiri kimliginden turetilir; bir siparis birden fazla alan adi icerebilir ve WooCommerce bir siparisi birden fazla bagimsiz yoldan odenmis isaretler.
11Yol haritasi
Asagidakiler planlanmistir ancak v1 arayuzunde henuz yayinlanmamistir. Yayina kadar ilgili uc nokta 404 doner. Uc nokta eklemek geriye donuk uyumlu bir degisikliktir.
transfer | gelen alan adi transferi — yetki kodunun gonderilmesi, istek durumunun izlenmesi ve eklenen yilin tahsili. Gelistirme asamasinda. TLD listeleme uc noktasi transfer fiyatini simdiden dondurur; ancak transfer islemi henuz cagrilabilir degildir. |
ir | Iran ulusal uzantilarinin uluslararasi kayit sirketi yerine dogrudan baglantiyla saglanmasi. |
webhook | kendi uc noktaniza olay iletimi; nihai olmayan siparisler icin surekli sorgulama gereksinimini kaldirir. |
contact | son musteri bazinda kayit sahibi veri yolu, ilgili riza ve silme mekanizmalariyla. |