WiseCP ve WHMCS modülleri bu API’yi kullanır; kendi entegrasyonlarınızı da yazabilirsiniz.
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
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.
| action | Açıklama |
|---|---|
listOs | Kullanılabilir işletim sistemi şablonlarını listeler. |
listHosts | Kullanılabilir host’ları listeler. |
listLocations | Lokasyonları (datacenter) listeler. |
syncHosts | Altyapı envanterini yeniden senkronize eder. |
getCreate | Yeni VM siparişi oluşturur (aşağıya bakın). |
getAction | Mevcut bir VM üzerinde işlem yapar (vm ve method ile). |
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 |
|---|---|
plan | Plan ID (CPU, RAM, disk ve hedef altyapıyı belirler). |
template | Şablon (panel şablon ID’si). |
ip | IPv4 paket ID’si; boş bir adres seçilir. |
host_id / vcenter / location | Hedef host, altyapı veya lokasyon; verilmezse plandaki host kullanılır. |
hostname | VM hostname’i (harf, rakam, - ve .). |
password | Yönetici parolası; zayıf veya şablon parolası ise yeni bir parola üretilir. |
ssh_key | İsteğe bağlı SSH anahtarı. |
cpu, ram, disk | Planı aşan değerler (ram GB cinsinden). |
extra_cpu, extra_ram, extra_disk, extra_ip | Plana 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 }
}
createserver.php cron işi klonlamayı başlatır. İlerlemeyi getVMProgress ile izleyin.{
"token": "…", "mail": "…",
"action": "getAction",
"vm": 362,
"method": "getVMAction",
"vmaction": "start"
}
vm, panelin VM kayıt numarasıdır. method değerleri:
| method | Açıklama |
|---|---|
getVM | VM durumu ve ayrıntıları. |
getVMAction | vmaction: start, stop, reset, suspend, delete, format (yeniden kurulum). |
getVMProgress, getVMProgressRetry | Kurulum ilerlemesi ve yeniden deneme. |
getVMStats, getVMStatsHistory, getVMTraffic | Anlık/geçmiş kaynak kullanımı ve trafik. |
getConsole | Tarayıcı konsolu için kısa ömürlü bağlantı (console_url, süre ~180 sn) döner. |
getVMResize | CPU/RAM/disk değiştirme (disk küçültme yok). |
getVMResetPassword, getVMSetHostname | Parola sıfırlama, hostname değiştirme. |
getVMAddIp, getVMRemoveIp | Ek IP ekleme/kaldırma. |
getVMRdnsList, getVMRdnsSet, getVMRdnsDelete | rDNS (PTR) kayıtları. |
getVMSnapshotList, …Create, …Revert, …Delete, …Schedule | Snapshot yönetimi ve zamanlama. |
getVMBackupList, …Create, …Delete, …Restore, …Schedule | Yedekleme (vCenter: DR arşiv, Proxmox: vzdump). |
getVMIsoList, getVMIsoMount, getVMIsoUnmount | ISO kütüphanesi. |
getVMRescue, getVMRescueExit | Kurtarma (rescue) modu. |
getVMFirewall | VM güvenlik duvarı kuralları. |
getVMLog | VM olay günlüğü. |
HostVM’in lisans sunucusudur; paneliniz bunu otomatik kullanır. Taban adres: https://hostvm.com.tr/api/v1.
| Uç nokta | Açıklama |
|---|---|
GET /health | Servis durumu: {"ok":true,"service":"HostVM License","time":…} |
GET /public-key | Genel anahtar bilgisi (blob imzası kullanılmaz; tolerans süresiyle çalışılır). |
POST /activate | Lisansı alan adına bağlar ve doğrular. |
POST /heartbeat | Lisansı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:
| state | Anlamı |
|---|---|
not_found | Lisans bulunamadı. |
domain_mismatch | Lisans başka bir alan adına bağlı. |
expired | Lisans süresi dolmuş. |
cancelled | Lisans iptal edilmiş. |
bad_request | license_key veya domain eksik. |
Entegrasyonla ilgili sorularınız için Destek Merkezi’ne başvurabilirsiniz.