VPS.org API

وثائق REST API

نطاقات API

البحث عن أسماء النطاقات المتاحة، وتسجيل النطاقات وتجديدها، وإدارة خواديم أسمائها والتجديد التلقائي لها.

نقاط النهاية 7
المسار الأساسي /api/v1/domains
يحصل /api/v1/domains/

عرض جميع النطاقات

يعيد النطاقات المسجلة في حسابك، 25 لكل صفحة. القائمة لا تحتوي على مرشحات.

الإذن المطلوب: domains:list

مثال على الطلب

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/domains/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
import requests

url = "https://admin.vps.org/api/v1/domains/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.get(url, headers=headers)
for domain in response.json()["results"]:
    print(domain["domain_name"], domain["status"], domain["expiration_date"])
const response = await fetch('https://admin.vps.org/api/v1/domains/', {
  headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});

const data = await response.json();
console.log(data.results);

مثال على الاستجابة

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
      "domain_name": "example.com",
      "status": "active",
      "registrar": "dynadot",
      "registration_date": "2026-01-15T10:30:00Z",
      "expiration_date": "2027-01-15T10:30:00Z",
      "days_until_expiration": 122,
      "is_expired": false,
      "needs_renewal_soon": false,
      "auto_renew": true,
      "renewal_period_years": 1,
      "registration_price": "12.64",
      "renewal_price": "12.64",
      "whois_privacy": true,
      "nameserver1": "ns1.vps.org",
      "nameserver2": "ns2.vps.org",
      "nameserver3": "ns3.vps.org",
      "nameserver4": null,
      "transfer_lock": true,
      "created_at": "2026-01-15T10:30:00Z",
      "updated_at": "2026-09-01T08:12:40Z"
    }
  ]
}

حقول الاستجابة

الميدان يكتب وصف المشروع
uuid string هوية النطاق المستخدمة في نقاط النهاية الأخرى للنطاق
status string active, pending, expired, cancelled, transferred
registrar string المسجل الذي يحتفظ بالنطاق
registration_date, expiration_date datetime عندما تم تسجيل النطاق وعندما ينتهي. expiration_date يمكن أن يكون عديمة.
days_until_expiration integer | null عدد الأيام الكاملة حتى تاريخ انتهاء الصلاحية، سالب عند انتهاء الصلاحية
is_expired, needs_renewal_soon boolean ما إذا كان النطاق قد انتهت صلاحيته، وما إذا كان سينتهي خلال الـ 30 يوماً القادمة
auto_renew, renewal_period_years boolean, integer ما إذا كان النطاق يجدد تلقائيا، ولعدد السنوات
registration_price, renewal_price string الأسعار بدولارات الولايات المتحدة كسلسلة عشرية
whois_privacy, transfer_lock boolean إعدادات خصوصية WHOIS وقفل نقل التسجيل
nameserver1 to nameserver4 string | null خادم أسماء النطاق
created_at, updated_at datetime تاريخ إنشاء السجل وآخر تغيير له (ISO 8601، UTC)
يحصل /api/v1/domains/{uuid}/

احصل على تفاصيل النطاق

يعيد كائن مجال واحد مع الحقول أعلاه.

الإذن المطلوب: domains:list

curl -X GET "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

رموز حالة الاستجابة

200 النجاح
404 لم يُعثر عليها، أو أنها تنتمي إلى حساب آخر
الوظائف /api/v1/domains/search/

البحث عن النطاق

يتحقق من مدى توافر الاسم عبر حوالي 20 امتداد شائع (com, net, org, io, dev, co, app, ai وأكثر)، بالإضافة إلى الامتداد الذي قمت بكتابته إذا لم يكن من بينهم. تبدأ النتائج بالمطابقة الدقيقة، ثم الأسماء المتاحة، ثم الأسماء المأخوذة.

الإذن المطلوب: domains:search

معلمات نص الطلب

البارامترات يكتب مطلوب وصف المشروع
domain string نعم اسم مع أو بدون امتداد، مثل موقعي أو موقعي.كوم (من 2 إلى 63 حرفاً)

مثال على الطلب

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/domains/search/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "mysite.com"}'
import requests

url = "https://admin.vps.org/api/v1/domains/search/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.post(url, headers=headers, json={"domain": "mysite.com"})
for result in response.json()["results"]:
    if result["available"]:
        print(result["domain"], result["registration_price"], result["renewal_price"])

مثال على الاستجابة

{
  "results": [
    {
      "domain": "mysite.com",
      "available": false,
      "price": null,
      "registration_price": null,
      "renewal_price": null,
      "tld": "com",
      "is_exact_match": true
    },
    {
      "domain": "mysite.dev",
      "available": true,
      "price": 17.24,
      "registration_price": 17.24,
      "renewal_price": 17.24,
      "tld": "dev",
      "is_exact_match": false
    }
  ],
  "base_domain": "mysite",
  "search_count": 20
}

والأسعار هي أرقام بدولارات الولايات المتحدة لسنة واحدة، وتكون صفرية بالنسبة للأسماء غير المتاحة، والأسعار المبينة هي أسعار توضيحية.

رموز حالة الاستجابة

200 النجاح
400 النطاق غير موجود، أو يحتوي على حروف غير الحروف والأرقام والشروط
500 فشل البحث في السجل. حاول مرة أخرى لاحقاً.
الوظائف /api/v1/domains/register/

تسجيل نطاق جديد

يسجل نطاقاً ويقوم بتسديد رسوم طريقة الدفع التي قمت بحفظها. يتم التحقق من توفر النطاق والسعر مع المسجل مرة أخرى قبل تسديد الرسوم مباشرة. يتم أخذ تفاصيل الاتصال بالمسجل من بيانات حسابك. إذا رفض المسجل التسجيل بعد تسديد الرسوم، يتم رد الدفع.

الإذن المطلوب: domains:register (ممنوح من قبل المجالات:*)

معلمات نص الطلب

البارامترات يكتب مطلوب وصف المشروع
domain string نعم اسم النطاق الكامل بما في ذلك امتداده، مثل example.com
years integer لا مدة التسجيل، من 1 إلى 10 (الافتراضي 1). السعر هو السعر السنوي مضروباً في عدد السنوات. يتطلب .ai 2 سنة على الأقل؛ أي قيمة أصغر تُرجع 400.
curl -X POST "https://admin.vps.org/api/v1/domains/register/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "mysite.dev", "years": 1}'

مثال على الاستجابة

{
  "success": true,
  "domain_uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
  "domain_name": "mysite.dev",
  "message": "mysite.dev registered successfully!"
}

رموز حالة الاستجابة

201 النطاق المسجل
400 نطاق غير صحيح، أو نطاق لم يعد متاحا، أو السعر الذي لم يمكن التحقق منه، أو طريقة الدفع القديمة، أو فشل الدفع
402 عدم وجود طريقة دفع في الملف، أو فواتير غير مدفوعة
500 ولم يتسن تجهيز السداد، أو رفض المسجل التسجيل بعد السداد، وفي الحالة الثانية تبين رسالة الخطأ ما إذا كان رد المبلغ قد تم.
الوظائف /api/v1/domains/{uuid}/renew/

تجديد النطاق

تجديد النطاق وتحميل تكلفة تجديده لكل سنة على طريقة الدفع التي قمت بحفظها.

الإذن المطلوب: domains:renew

معلمات نص الطلب

البارامترات يكتب مطلوب وصف المشروع
years integer لا السنوات التي تضاف، 1 إلى 10 (1 افتراضياً)
curl -X POST "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/renew/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"years": 1}'
{
  "success": true,
  "domain_uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
  "new_expiration": "2028-01-15T10:30:00+00:00",
  "message": "example.com renewed successfully for 1 year(s)!"
}

رموز حالة الاستجابة

200 تم تجديد النطاق
400 سنوات غير صحيحة، لا سعر تجديد للنطاق، لا طريقة دفع قابلة للاستخدام، أو فشل الدفع
404 لم يُعثر عليها، أو أنها تنتمي إلى حساب آخر
500 لم يكن من الممكن معالجة الدفع، أو تم الدفع ولكن فشل تجديد المسجل، اتصل بالدعم في هذه الحالة.
PUT /api/v1/domains/{uuid}/nameservers/

تحديث خواديم الأسماء

يحدد خادم أسماء المجال في المسجل ويعيد كائن المجال المحدث. لإدارة DNS مع API DNS، استخدم ns1.vps.org، ns2.vps.org و ns3.vps.org وإنشاء منطقة للنطاق.

الإذن المطلوب: domains:update

معلمات نص الطلب

البارامترات يكتب مطلوب وصف المشروع
nameserver1 string نعم اسم مضيف خادم الأسماء الأولي
nameserver2, nameserver3, nameserver4 string لا أسماء مضيفة إضافية لخواديم الأسماء
curl -X PUT "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/nameservers/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"nameserver1": "ns1.vps.org", "nameserver2": "ns2.vps.org", "nameserver3": "ns3.vps.org"}'

رموز حالة الاستجابة

200 تحديث خواديم الأسماء؛ والجسم هو كائن النطاق
400 خدمة خدمة الاسم 1 مفقودة
404 لم يُعثر عليها، أو أنها تنتمي إلى حساب آخر
500 فشل التحديث؛ لدى الجسم حقول خطأ ورسالة
PUT /api/v1/domains/{uuid}/auto-renew/

تشغيل أو إيقاف التجديد التلقائي

يحدد auto_renew ويعيد كائن النطاق المحدث. إرسال مفعول كJSON بوليان: أي سلسلة غير فارغة، بما في ذلك سلسلة false، يشغل التجديد الآلي.

الإذن المطلوب: domains:update

curl -X PUT "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/auto-renew/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled": false}'

رموز حالة الاستجابة

200 حفظ الإعداد؛ الجسم هو كائن المجال
400 المفقودون
404 لم يُعثر عليها، أو أنها تنتمي إلى حساب آخر

حواشي