Documentación API
Gestiona cada operación VDS desde el panel de forma programática. Ruta base /api/reseller/v1 — todas las solicitudes se firman con HMAC.
Resumen
La Reseller API expone la creación de servidores, gestión de energía, acceso a consola, instalación de SO, formateo, firewall, copias y operaciones de IP extra por REST. Todas las respuestas están en JSON.
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(...)
Autenticación (HMAC)
Cada solicitud se firma con el par api_key y api_secret. La firma se genera en el cliente; el middleware reseller.api del servidor verifica la firma HMAC, la lista blanca de IP y el límite de tasa. La marca de tiempo protege contra ataques de repetición.
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 y todas las llamadas se registran en reseller_api_logs.
Códigos de Error
| Código | Significado |
|---|---|
| 200 / 201 / 202 | Éxito / creado / en cola |
| 400 | Cuerpo de solicitud inválido |
| 401 | Firma inválida o ausente |
| 403 | IP no en lista blanca / sin autorización |
| 409 | Repetición detectada (reuso de timestamp) |
| 429 | Límite de tasa superado |
Cuenta & Productos
Devuelve el saldo activo, el nivel de descuento actual (TIER) y el estado de la cuenta.
{
"balance": 3250.00,
"tier": "Gold",
"discount": 28,
"currency": "USD"
}
Lista los productos VDS listos a la venta y los precios unitarios de configuraciones personalizadas.
[
{ "id": 42, "name": "VDS M", "cpu": 4, "ram": 8, "disk": 100, "price": 14.00 }
]
Ciclo de Vida del Servidor
Lista todas las instancias VDS de la cuenta con su estado.
{ "id": "vm_8f3a21", "status": "running", "ip": "185.x.x.x" }
]
Devuelve los recursos, red, estado y estadísticas de recursos de un servidor.
"id": "vm_8f3a21",
"status": "running",
"cpu": 4, "ram": 8, "disk": 100,
"usage": { "cpu": 12.4, "bw": 820.5 }
}
Aprovisiona un nuevo VDS. Envía product_id para un producto listo, o cpu/ram/disk para una configuración personalizada. El precio se calcula con el descuento por saldo.
{
"cpu": 4, "ram": 8, "disk": 160,
"os": "ubuntu-22.04", "hostname": "web-01"
}
# Yanıt 201
{ "id": "vm_8f3a21", "status": "provisioning" }
Actualiza los recursos de CPU, RAM o disco de un servidor existente.
{ "cpu": 8, "ram": 16 }
# → 202 Accepted
Formatea y reinstala el servidor con el sistema operativo seleccionado.
{ "os": "debian-12" }
# → 202 Accepted
Cancela permanentemente el servidor y libera sus recursos.
{ "id": "vm_8f3a21", "status": "terminated" }
Energía & Acceso
Iniciar, detener, reiniciar o apagar forzado. action: start · stop · reboot · force_stop.
{ "action": "reboot" }
# → 200 OK
Devuelve de forma segura el usuario y la contraseña inicial del servidor.
Restablece la contraseña root/administrador del servidor.
{ "password": "yeni-parola" }
Genera un enlace de consola NoVNC/KVM de un solo uso accesible desde el navegador.
{ "console_url": "https://console.vdshost.com/...", "expires_in": 120 }
Copia & Seguridad
Copias
Lista las copias existentes del servidor.
Toma una copia instantánea.
{ "backup_id": "bk_19c" }
Restaura la copia especificada.
{ "backup_id": "bk_19c" }
# → 202 Accepted
Elimina la copia especificada.
{ "backup_id": "bk_19c" }
# → 200 OK
Firewall
Devuelve las reglas de firewall definidas en el servidor.
Añade una nueva regla de firewall.
{ "port": 443, "proto": "tcp", "action": "allow" }
Elimina la regla de firewall especificada.
Integraciones
Se instala como módulo de servidor. En el panel de administración añades un servidor upstream y defines el mapeo ServerConnection: hostname = dominio de VDS Host, username = api_key (enmascarado), password = api_secret (enmascarado). Tu producto se mapea con upstream_product_id y los sistemas operativos con os_map. Pedido, aprovisionamiento, energía, formateo y cancelación fluyen automáticamente de extremo a extremo.
hostname = api.vdshost.com
username = {api_key} # maskeli
password = {api_secret} # maskeli
module_config = { "upstream_product_id": 42, "os_map": {...} }
El módulo de servidor de WiseCP usa la misma lógica upstream que WHMCS. Con UpstreamServerModule + UpstreamApiClient llama a la ruta base /api/reseller/v1. El mapeo de producto y SO se define en la configuración del módulo; todo el ciclo de vida del VDS se gestiona desde la interfaz de WiseCP.
client.post('vm', body) # oluştur
client.post('vm/{id}/power') # güç
client.post('vm/{id}/reinstall')
client.get('vm/{id}/backups')