VDS Host
الوكالة خوادم VPS مُكوّن VPS خوادم مخصّصة واجهة API من نحن المدونة اتصل بنا تسجيل الدخول
codeReseller API v1

وثائق API

أدِر كل عمليات VDS من اللوحة برمجياً. المسار الأساسي /api/reseller/v1 — جميع الطلبات موقّعة بـ HMAC.

نظرة عامة

توفّر Reseller API إنشاء الخوادم وإدارة الطاقة والوصول للطرفية وتثبيت النظام والتهيئة والجدار الناري والنسخ الاحتياطي وعمليات IP الإضافي عبر REST. وجميع الاستجابات بصيغة JSON.

# 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(...)

المصادقة (HMAC)

يُوقَّع كل طلب بزوج api_key وapi_secret. ويُولَّد التوقيع من جهة العميل؛ بينما تتحقّق طبقة reseller.api في الخادم من توقيع HMAC والقائمة البيضاء للـ IP وحد المعدّل. وتحمي الطابع الزمني من هجمات إعادة التشغيل.

# İ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: لا يقبل مفتاح API الخاص بك سوى الطلبات من عناوين IP التي تحدّدها في اللوحة. وتُدار المفاتيح في جدول reseller_api_keys، وتُسجَّل كل الطلبات في reseller_api_logs.

رموز الأخطاء

الرمزالمعنى
200 / 201 / 202نجاح / أُنشئ / في الطابور
400جسم الطلب غير صالح
401التوقيع غير صالح أو مفقود
403الـ IP ليس في القائمة البيضاء / لا صلاحية
409اكتُشفت إعادة تشغيل (تكرار الطابع الزمني)
429تجاوز حد المعدّل

الحساب والمنتجات

GET/api/reseller/v1/account

يُرجِع الرصيد النشط ومستوى الخصم الحالي (TIER) وحالة الحساب.

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

يسرد منتجات VDS الجاهزة للبيع وأسعار الوحدة للتكوينات المخصّصة.

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

دورة حياة الخادم

GET/api/reseller/v1/vm

يسرد جميع نُسخ VDS المرتبطة بالحساب مع حالاتها.

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

يُرجِع موارد خادم واحد وشبكته وحالته وإحصاءات موارده.

{
  "id": "vm_8f3a21",
  "status": "running",
  "cpu": 4, "ram": 8, "disk": 100,
  "usage": { "cpu": 12.4, "bw": 820.5 }
}
POST/api/reseller/v1/vm

يجهّز VDS جديداً. أرسِل product_id لمنتج جاهز، أو cpu/ram/disk لتكوين مخصّص. ويُحسَب السعر بالخصم وفق الرصيد.

# İ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

يحدّث موارد CPU أو RAM أو القرص لخادم قائم.

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

يهيّئ الخادم ويعيد تثبيته بنظام التشغيل المختار.

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

يُنهي الخادم نهائياً ويحرّر موارده.

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

الطاقة والوصول

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

تشغيل أو إيقاف أو إعادة تشغيل أو إيقاف قسري. action: start · stop · reboot · force_stop.

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

يُرجِع اسم المستخدم وكلمة المرور الأولية للخادم بأمان.

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

يعيد تعيين كلمة مرور root/المسؤول للخادم.

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

يُنشئ رابط طرفية NoVNC/KVM لمرة واحدة يمكن الوصول إليه من المتصفّح.

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

النسخ والأمان

النسخ الاحتياطية

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

يسرد النسخ الاحتياطية الموجودة للخادم.

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

يأخذ نسخة فورية.

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

يستعيد النسخة المحدّدة.

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

يحذف النسخة المحدّدة.

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

الجدار الناري

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

يُرجِع قواعد الجدار الناري المعرّفة على الخادم.

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

يضيف قاعدة جدار ناري جديدة.

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

يزيل قاعدة الجدار الناري المحدّدة.

# → 200 OK

التكاملات

extensionWHMCS Modülüمجاني

يُثبَّت كوحدة خادم. في لوحة الإدارة تضيف خادماً أساسياً (upstream) وتحدّد تعيين ServerConnection: hostname = نطاق VDS Host، username = api_key (مُقنّع)، password = api_secret (مُقنّع). ويُربَط منتجك عبر upstream_product_id وأنظمة التشغيل عبر os_map. ويتدفّق الطلب والتجهيز والطاقة والتهيئة والإنهاء تلقائياً من البداية إلى النهاية.

# 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 المنطق الأساسي نفسه المستخدم في WHMCS. وبواسطة UpstreamServerModule + UpstreamApiClient تستدعي المسار الأساسي /api/reseller/v1. ويُحدَّد تعيين المنتج والنظام من إعدادات الوحدة؛ وتُدار دورة حياة VDS بالكامل من واجهة WiseCP.

# 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')