API Dokümanları
Panelden yapılan tüm VDS işlemlerini programatik olarak yönetin. Taban yol /api/reseller/v1 — tüm istekler HMAC ile imzalanır.
Genel Bakış
Reseller API; sunucu oluşturma, güç yönetimi, konsol erişimi, işletim sistemi kurulumu, format, firewall, yedekleme ve ek IP işlemlerinin tamamını REST üzerinden sunar. Tüm yanıtlar JSON formatındadır.
BASE https://api.vdshost.com/api/reseller/v1
# Tüm istekler şu başlıkları taşır
X-Api-Key: rk_live_xxxxxxxx
X-Timestamp: 1719230400
X-Signature: hmac_sha256(...)
Kimlik Doğrulama (HMAC)
Her istek api_key ve api_secret çiftiyle imzalanır. İmza istemci tarafında üretilir; sunucu tarafındaki reseller.api ara katmanı HMAC imzasını, IP beyaz listesini ve hız limitini doğrular. Zaman damgası replay saldırılarına karşı korur.
payload = method + "\n" + path + "\n" + timestamp + "\n" + body
signature = hmac_sha256(api_secret, payload)
# Örnek (curl)
curl -X POST https://api.vdshost.com/api/reseller/v1/vm \
-H "X-Api-Key: KEY" \
-H "X-Timestamp: TS" \
-H "X-Signature: SIG" \
-d '{"product_id":42,"os":"ubuntu-22.04"}'
reseller_api_keys tablosunda yönetilir, tüm çağrılar reseller_api_logs içinde loglanır.
Hata Kodları
| Kod | Anlamı |
|---|---|
| 200 / 201 / 202 | Başarılı / oluşturuldu / kuyruğa alındı |
| 400 | Geçersiz istek gövdesi |
| 401 | İmza geçersiz veya eksik |
| 403 | IP beyaz listede değil / yetki yok |
| 409 | Replay tespit edildi (timestamp tekrarı) |
| 429 | Hız limiti aşıldı |
Hesap & Ürünler
Aktif bakiye, mevcut indirim seviyesi (TIER) ve hesap durumunu döner.
{
"balance": 3250.00,
"tier": "Gold",
"discount": 28,
"currency": "USD"
}
Satışa açık hazır VDS ürünlerini ve özel yapılandırma birim fiyatlarını listeler.
[
{ "id": 42, "name": "VDS M", "cpu": 4, "ram": 8, "disk": 100, "price": 14.00 }
]
Sunucu Yaşam Döngüsü
Hesaba bağlı tüm VDS örneklerini durumlarıyla listeler.
{ "id": "vm_8f3a21", "status": "running", "ip": "185.x.x.x" }
]
Tek bir sunucunun kaynak, ağ, durum ve kaynak istatistiklerini döner.
"id": "vm_8f3a21",
"status": "running",
"cpu": 4, "ram": 8, "disk": 100,
"usage": { "cpu": 12.4, "bw": 820.5 }
}
Yeni bir VDS sağlar. Hazır ürün için product_id, özel yapılandırma için cpu/ram/disk gönderin. Fiyat bakiyeye göre indirimli hesaplanır.
{
"cpu": 4, "ram": 8, "disk": 160,
"os": "ubuntu-22.04", "hostname": "web-01"
}
# Yanıt 201
{ "id": "vm_8f3a21", "status": "provisioning" }
Mevcut bir sunucunun CPU, RAM veya disk kaynaklarını günceller.
{ "cpu": 8, "ram": 16 }
# → 202 Accepted
Sunucuyu seçilen işletim sistemiyle formatlayıp yeniden kurar.
{ "os": "debian-12" }
# → 202 Accepted
Sunucuyu kalıcı olarak sonlandırır ve kaynakları serbest bırakır.
{ "id": "vm_8f3a21", "status": "terminated" }
Güç & Erişim
Başlat, durdur, yeniden başlat veya zorla kapat. action: start · stop · reboot · force_stop.
{ "action": "reboot" }
# → 200 OK
Sunucunun kullanıcı adı ve ilk parolasını güvenli biçimde döner.
Sunucunun root/yönetici parolasını sıfırlar.
{ "password": "yeni-parola" }
Tarayıcıdan erişilebilen tek kullanımlık NoVNC/KVM konsol bağlantısı üretir.
{ "console_url": "https://console.vdshost.com/...", "expires_in": 120 }
Yedek & Güvenlik
Yedekler
Sunucunun mevcut yedeklerini listeler.
Anlık yedek alır.
{ "backup_id": "bk_19c" }
Belirtilen yedeği geri yükler.
{ "backup_id": "bk_19c" }
# → 202 Accepted
Belirtilen yedeği siler.
{ "backup_id": "bk_19c" }
# → 200 OK
Firewall
Sunucuya tanımlı firewall kurallarını döner.
Yeni bir firewall kuralı ekler.
{ "port": 443, "proto": "tcp", "action": "allow" }
Belirtilen firewall kuralını kaldırır.
Entegrasyonlar
Sunucu modülü olarak kurulur. Admin panelinde bir Upstream sunucu ekleyip ServerConnection eşlemesini tanımlarsınız: hostname = VDS Host alan adı, username = api_key (maskelenir), password = api_secret (maskelenir). Ürününüz upstream_product_id, işletim sistemleri os_map ile eşlenir. Sipariş, sağlama, güç, format ve sonlandırma uçtan uca otomatik akar.
hostname = api.vdshost.com
username = {api_key} # maskeli
password = {api_secret} # maskeli
module_config = { "upstream_product_id": 42, "os_map": {...} }
WiseCP sunucu modülü; WHMCS ile aynı upstream mantığını kullanır. UpstreamServerModule + UpstreamApiClient ile taban yol /api/reseller/v1 üzerinden çağrı yapar. Ürün ve OS eşlemesi modül yapılandırmasından tanımlanır; tüm VDS yaşam döngüsü WiseCP arayüzünden yönetilir.
client.post('vm', body) # oluştur
client.post('vm/{id}/power') # güç
client.post('vm/{id}/reinstall')
client.get('vm/{id}/backups')