VDS Host
Bayilik VDS Sunucular VDS Yapılandırıcı Dedike Sunucular API Hakkımızda Blog İletişim Giriş Yap
codeReseller API v1

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.

# Taban yol
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.

# İmza şeması (istemci tarafı)
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"}'
info IP Beyaz Listesi: API anahtarınız yalnızca panelde tanımladığınız IP adreslerinden çağrı kabul eder. Anahtarlar reseller_api_keys tablosunda yönetilir, tüm çağrılar reseller_api_logs içinde loglanır.

Hata Kodları

KodAnlamı
200 / 201 / 202Başarılı / oluşturuldu / kuyruğa alındı
400Geçersiz istek gövdesi
401İmza geçersiz veya eksik
403IP beyaz listede değil / yetki yok
409Replay tespit edildi (timestamp tekrarı)
429Hız limiti aşıldı

Hesap & Ürünler

GET/api/reseller/v1/account

Aktif bakiye, mevcut indirim seviyesi (TIER) ve hesap durumunu döner.

# Yanıt
{
  "balance": 3250.00,
  "tier": "Gold",
  "discount": 28,
  "currency": "USD"
}
GET/api/reseller/v1/products

Satışa açık hazır VDS ürünlerini ve özel yapılandırma birim fiyatlarını listeler.

# Yanıt
[
  { "id": 42, "name": "VDS M", "cpu": 4, "ram": 8, "disk": 100, "price": 14.00 }
]

Sunucu Yaşam Döngüsü

GET/api/reseller/v1/vm

Hesaba bağlı tüm VDS örneklerini durumlarıyla listeler.

[
  { "id": "vm_8f3a21", "status": "running", "ip": "185.x.x.x" }
]
GET/api/reseller/v1/vm/{id}

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 }
}
POST/api/reseller/v1/vm

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.

# İstek
{
  "cpu": 4, "ram": 8, "disk": 160,
  "os": "ubuntu-22.04", "hostname": "web-01"
}

# Yanıt 201
{ "id": "vm_8f3a21", "status": "provisioning" }
POST/api/reseller/v1/vm/{id}/resize

Mevcut bir sunucunun CPU, RAM veya disk kaynaklarını günceller.

# İstek
{ "cpu": 8, "ram": 16 }
# → 202 Accepted
POST/api/reseller/v1/vm/{id}/reinstall

Sunucuyu seçilen işletim sistemiyle formatlayıp yeniden kurar.

# İstek
{ "os": "debian-12" }
# → 202 Accepted
POST/api/reseller/v1/vm/{id}/terminate

Sunucuyu kalıcı olarak sonlandırır ve kaynakları serbest bırakır.

# → 200 OK
{ "id": "vm_8f3a21", "status": "terminated" }

Güç & Erişim

POST/api/reseller/v1/vm/{id}/power

Başlat, durdur, yeniden başlat veya zorla kapat. action: start · stop · reboot · force_stop.

# İstek
{ "action": "reboot" }
# → 200 OK
GET/api/reseller/v1/vm/{id}/credentials

Sunucunun kullanıcı adı ve ilk parolasını güvenli biçimde döner.

{ "username": "root", "password": "••••••••" }
POST/api/reseller/v1/vm/{id}/password

Sunucunun root/yönetici parolasını sıfırlar.

# → 200 OK
{ "password": "yeni-parola" }
POST/api/reseller/v1/vm/{id}/console

Tarayıcıdan erişilebilen tek kullanımlık NoVNC/KVM konsol bağlantısı üretir.

# → 200 OK
{ "console_url": "https://console.vdshost.com/...", "expires_in": 120 }

Yedek & Güvenlik

Yedekler

GET/api/reseller/v1/vm/{id}/backups

Sunucunun mevcut yedeklerini listeler.

[ { "backup_id": "bk_19c", "created_at": "2026-06-24T10:00:00Z" } ]
POST/api/reseller/v1/vm/{id}/backups

Anlık yedek alır.

# → 201 Created
{ "backup_id": "bk_19c" }
POST/api/reseller/v1/vm/{id}/backups/restore

Belirtilen yedeği geri yükler.

# İstek
{ "backup_id": "bk_19c" }
# → 202 Accepted
DELETE/api/reseller/v1/vm/{id}/backups

Belirtilen yedeği siler.

# İstek
{ "backup_id": "bk_19c" }
# → 200 OK

Firewall

GET/api/reseller/v1/vm/{id}/firewall

Sunucuya tanımlı firewall kurallarını döner.

[ { "id": 1, "port": 22, "proto": "tcp", "action": "allow" } ]
POST/api/reseller/v1/vm/{id}/firewall

Yeni bir firewall kuralı ekler.

# İstek
{ "port": 443, "proto": "tcp", "action": "allow" }
DELETE/api/reseller/v1/vm/{id}/firewall/{rule}

Belirtilen firewall kuralını kaldırır.

# → 200 OK

Entegrasyonlar

extensionWHMCS ModülüÜcretsiz

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.

# ServerConnection eşlemesi
hostname = api.vdshost.com
username = {api_key}  # maskeli
password = {api_secret} # maskeli
module_config = { "upstream_product_id": 42, "os_map": {...} }
extensionWiseCP ModülüÜcretsiz

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.

# UpstreamApiClient çağrıları
client.post('vm', body)     # oluştur
client.post('vm/{id}/power'# güç
client.post('vm/{id}/reinstall')
client.get('vm/{id}/backups')