API REFERANSI

Panel ve lisans API’si

WiseCP ve WHMCS modülleri bu API’yi kullanır; kendi entegrasyonlarınızı da yazabilirsiniz.

1. Panel API’si

Kendi sunucunuzda çalışan HostVM paneline gönderilir. Tek uç nokta vardır; işlem action alanıyla seçilir.

POST https://panel.ornek.com/api/hstvm
Content-Type: application/json

Kimlik doğrulama

Her istekte panel kullanıcısının API token’ı ve e-postası gönderilir (token: Admin → Kullanıcı Yönetimi). Geçersiz token denemeleri IP başına sayılır ve fazlası 429 ile geçici olarak engellenir.

{
  "token": "PANEL_API_TOKEN",
  "mail": "kullanici@ornek.com",
  "action": "..."
}

Yanıtlar JSON’dur: başarıda "result": "success", hatada "result": "error" ve "message" alanı gelir.

Üst düzey eylemler

actionAçıklama
listOsKullanılabilir işletim sistemi şablonlarını listeler.
listHostsKullanılabilir host’ları listeler.
listLocationsLokasyonları (datacenter) listeler.
syncHostsAltyapı envanterini yeniden senkronize eder.
getCreateYeni VM siparişi oluşturur (aşağıya bakın).
getActionMevcut bir VM üzerinde işlem yapar (vm ve method ile).

getCreate — VM oluşturma

curl -X POST https://panel.ornek.com/api/hstvm \
  -H "Content-Type: application/json" \
  -d '{
    "token": "PANEL_API_TOKEN",
    "mail": "kullanici@ornek.com",
    "action": "getCreate",
    "data": {
      "plan": 3,
      "template": 12,
      "ip": 4,
      "host_id": 6,
      "hostname": "musteri-vps-1",
      "password": "GucluBirParola-9x!"
    }
  }'
data alanıAçıklama
planPlan ID (CPU, RAM, disk ve hedef altyapıyı belirler).
templateŞablon (panel şablon ID’si).
ipIPv4 paket ID’si; boş bir adres seçilir.
host_id / vcenter / locationHedef host, altyapı veya lokasyon; verilmezse plandaki host kullanılır.
hostnameVM hostname’i (harf, rakam, - ve .).
passwordYönetici parolası; zayıf veya şablon parolası ise yeni bir parola üretilir.
ssh_keyİsteğe bağlı SSH anahtarı.
cpu, ram, diskPlanı aşan değerler (ram GB cinsinden).
extra_cpu, extra_ram, extra_disk, extra_ipPlana eklenecek ek kaynaklar.

Başarılı yanıt:

{
  "result": "success",
  "vm_id": "362",
  "host_id": 6,
  "host_moid": "host-54028",
  "password": "…",
  "ip": "185.254.31.47",
  "extra_ips": [],
  "config": { "core": 2, "ram_gb": 2, "disk": 30 }
}
VM hemen hazır olmaz: kayıt oluşur, createserver.php cron işi klonlamayı başlatır. İlerlemeyi getVMProgress ile izleyin.

getAction — VM işlemleri

{
  "token": "…", "mail": "…",
  "action": "getAction",
  "vm": 362,
  "method": "getVMAction",
  "vmaction": "start"
}

vm, panelin VM kayıt numarasıdır. method değerleri:

methodAçıklama
getVMVM durumu ve ayrıntıları.
getVMActionvmaction: start, stop, reset, suspend, delete, format (yeniden kurulum).
getVMProgress, getVMProgressRetryKurulum ilerlemesi ve yeniden deneme.
getVMStats, getVMStatsHistory, getVMTrafficAnlık/geçmiş kaynak kullanımı ve trafik.
getConsoleTarayıcı konsolu için kısa ömürlü bağlantı (console_url, süre ~180 sn) döner.
getVMResizeCPU/RAM/disk değiştirme (disk küçültme yok).
getVMResetPassword, getVMSetHostnameParola sıfırlama, hostname değiştirme.
getVMAddIp, getVMRemoveIpEk IP ekleme/kaldırma.
getVMRdnsList, getVMRdnsSet, getVMRdnsDeleterDNS (PTR) kayıtları.
getVMSnapshotList, …Create, …Revert, …Delete, …ScheduleSnapshot yönetimi ve zamanlama.
getVMBackupList, …Create, …Delete, …Restore, …ScheduleYedekleme (vCenter: DR arşiv, Proxmox: vzdump).
getVMIsoList, getVMIsoMount, getVMIsoUnmountISO kütüphanesi.
getVMRescue, getVMRescueExitKurtarma (rescue) modu.
getVMFirewallVM güvenlik duvarı kuralları.
getVMLogVM olay günlüğü.
Yöntemlerin tam parametreleri panel sürümüne göre değişebilir. Entegrasyon yazarken hazır WiseCP ve WHMCS modüllerini referans alın.

2. Lisans API’si

HostVM’in lisans sunucusudur; paneliniz bunu otomatik kullanır. Taban adres: https://hostvm.com.tr/api/v1.

Uç noktaAçıklama
GET /healthServis durumu: {"ok":true,"service":"HostVM License","time":…}
GET /public-keyGenel anahtar bilgisi (blob imzası kullanılmaz; tolerans süresiyle çalışılır).
POST /activateLisansı alan adına bağlar ve doğrular.
POST /heartbeatLisansın güncel durumunu doğrular.

activate ve heartbeat gövdesi:

{
  "license_key": "HV-XXXX-XXXX-XXXX-XXXX",
  "domain": "panel.ornek.com",
  "panel_version": "1.0.3"
}

Hatalı durumlarda ok: false ve bir state döner:

stateAnlamı
not_foundLisans bulunamadı.
domain_mismatchLisans başka bir alan adına bağlı.
expiredLisans süresi dolmuş.
cancelledLisans iptal edilmiş.
bad_requestlicense_key veya domain eksik.

Entegrasyonla ilgili sorularınız için Destek Merkezi’ne başvurabilirsiniz.