Bayi API dokümanı
Kendi sisteminizden (WHMCS, kendi panel'iniz) müşteri domainlerini ekleyip yönetmek için REST API. Bayi panelindeki her işlem API ile de yapılabilir.
Kimlik doğrulama
Bayi panelinden (Ayarlar → API erişimi) bir anahtar oluşturun. Anahtar yalnızca oluşturulduğu anda gösterilir, kaybederseniz yenisini oluşturmanız gerekir (eskisi geçersiz olur). Her isteğe şu header'ı ekleyin:
Authorization: Bearer sb_live_<anahtarınız>
https://spambil.com — aşağıdaki tüm yollar bu adresin altındadır.Hesap bilgisi
GET/api/reseller/me
Şirket bilgisi, kayıt ücreti durumu ve tüm domainlerinizin listesi.
curl https://spambil.com/api/reseller/me \ -H "Authorization: Bearer sb_live_..."
Domain yönetimi
POST/api/reseller/domains
Yeni bir müşteri domaini ekler (ödeme tamamlanana kadar pending_payment durumunda kalır).
curl -X POST https://spambil.com/api/reseller/domains \
-H "Authorization: Bearer sb_live_..." \
-H "Content-Type: application/json" \
-d '{"domain":"musteriniz.com","mailHost":"mail.musteriniz.com"}'
→ { "resellerDomainId": "...", "priceKurus": 10000 }
POST/api/reseller/domains/bulk
Tek istekte en fazla 200 domain ekler. Her satır ayrı değerlendirilir, biri başarısız olsa diğerleri eklenmeye devam eder. Ödeme adımı hâlâ her domain için ayrı yapılır.
curl -X POST https://spambil.com/api/reseller/domains/bulk \
-H "Authorization: Bearer sb_live_..." \
-H "Content-Type: application/json" \
-d '{"rows":[{"domain":"musteriniz1.com","mailHost":"mail.musteriniz1.com"},{"domain":"musteriniz2.com","mailHost":"185.10.20.30"}]}'
→ { "added": 2, "failed": 0, "results": [{"domain":"musteriniz1.com","ok":true,"resellerDomainId":"..."}, ...] }
POST/api/reseller/domains/:id/cancel
Domaini iptal eder, koruma hemen PMG'den kaldırılır.
GET/api/reseller/domains/:id/mx-check
Domainin MX kaydının Spambil'e yönlendirilip yönlendirilmediğini kontrol eder.
→ { "verified": true, "records": ["spam1.jusbil.com", "mx1.spambil.com"], "expected": "spam1.jusbil.com" }
GET/api/reseller/domains/:id/host-check
Kayıtlı mail sunucusunun (mailHost) hâlâ bir IP'ye çözüldüğünü doğrular.
GET/api/reseller/domains/:id/stats?days=30
Son days gündeki tarama/spam/virüs sayıları (varsayılan 30, maksimum 90).
Karantina
GET/api/reseller/domains/:id/quarantine?days=7
Son days gündeki karantinaya alınan mailler (varsayılan 7, maksimum 30).
GET/api/reseller/domains/:id/quarantine/:itemId
Tek bir mailin tam önizlemesi (başlıklar, spam skoru detayı, içerik).
POST/api/reseller/domains/:id/quarantine/action
curl -X POST https://spambil.com/api/reseller/domains/:id/quarantine/action \
-H "Authorization: Bearer sb_live_..." \
-H "Content-Type: application/json" \
-d '{"itemId":"C1R2T3","action":"welcomelist"}'
| action | Anlamı |
|---|---|
welcomelist | Maili teslim eder ve göndereni güvenilir listesine ekler |
deliver | Yalnızca teslim eder, güven listesine eklemez |
delete | Kalıcı olarak siler |
Güvenilir / engelli listeler
GET/api/reseller/domains/:id/lists?pmail=kutu@domain.com&type=welcomelist
type: welcomelist veya blocklist.
POST / DELETE/api/reseller/domains/:id/lists
-d '{"pmail":"kutu@domain.com","type":"welcomelist","address":"gonderen@disaridan.com"}'
Ekip erişimi
Yalnızca hesap sahibi (/api/reseller/me yanıtındaki isOwner: true olan e-posta) ekip yönetebilir ve API anahtarı oluşturabilir. Ekip üyeleri aynı domainlere/karantinaya erişebilir ama bu iki şeyi yapamaz.
GET/api/reseller/team
POST/api/reseller/team
-d '{"email":"ekip@sirketiniz.com"}'
DELETE/api/reseller/team/:id
Fiyatlandırma
/api/reseller/me yanıtındaki priceTiers ve nextDomainPriceKurus alanları, aktif (ödemesi yapılmış) domain sayınıza göre kademeli fiyatı gösterir: 1-9 domain 100₺, 10-49 domain 85₺, 50+ domain 70₺ (yıllık, domain başına). Yeni eklenen bir domainin fiyatı eklendiği andaki kademeye göre belirlenir ve yenilemelerde sabit kalır.
Raporlama
GET/api/reseller/export
Tüm domainlerinizi ve son 30 günlük tarama/spam/virüs sayılarını text/csv olarak döner (kendi fatura/iç raporlama sistemlerinize aktarmak için). Tarayıcıdan çağrıldığında doğrudan indirilir.
Ödeme
POST/api/reseller/checkout/start
Bir ödeme token'ı döner; kart bilgisi yalnızca PayTR'ın kendi sayfasında girilir, bu API kart verisi görmez/işlemez. Dönen token'ı aşağıdaki gibi bir ödeme linkine çevirip bayi yöneticinizi yönlendirebilirsiniz.
-d '{"kind":"domain","resellerDomainId":"..."}'
→ { "token": "..." }
Ödeme linki: https://www.paytr.com/odeme/guvenli/<token>
{"kind":"signup_fee"} gönderin.Hata formatı
Hatalı istekler {"error": "kod"} gövdesiyle döner. Yaygın kodlar: unauthenticated (401, anahtar eksik/geçersiz), forbidden (403), not_found (404, domain size ait değil), domain_taken (409).