VPS.org API

وثائق REST API

الحساب

استرجاع بيانات الحساب ومعلومات عﻻمة API. مفيد لتحديد أي حساب واﻹذن مرتبط برموز API.

نقاط النهاية نقطة نهاية واحدة
المسار الأساسي /api/v1/account
يحصل /api/v1/account/me/

احصل على معلومات الحساب والرمز

يعيد البيانات الوصفية للحساب ونطاق الرموز/الإذن لرموز API المستخدمة في الطلب. وهذا مفيد عندما تدير رموز API متعددة وتحتاج إلى تحديد أي حساب ينتمي إليه الرموز وما هي الإذن التي لديها.

المصادقة

يتطلب رمز API صالح. أي رمز نشط يمكن الوصول إلى هذه النقطة النهائية بغض النظر عن نطاق الإذن.

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

cURL
Python
JavaScript
PHP
curl -X GET "https://admin.vps.org/api/v1/account/me/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
import requests

url = "https://admin.vps.org/api/v1/account/me/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}

response = requests.get(url, headers=headers)
data = response.json()

print(f"Account: {data['account']['email']}")
print(f"Token: {data['token']['name']}")
print(f"Permissions: {data['token']['permissions']}")
const response = await fetch('https://admin.vps.org/api/v1/account/me/', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(`Account: ${data.account.email}`);
console.log(`Token: ${data.token.name}`);
console.log(`Permissions:`, data.token.permissions);
$ch = curl_init('https://admin.vps.org/api/v1/account/me/');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer YOUR_API_TOKEN',
    'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

echo "Account: " . $data['account']['email'] . "\n";
echo "Token: " . $data['token']['name'] . "\n";
echo "Permissions: " . implode(', ', $data['token']['permissions']) . "\n";

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

{
  "account": {
    "email": "john@example.com",
    "first_name": "John",
    "last_name": "Doe",
    "company_name": "Acme Inc.",
    "created_at": "2024-06-15"
  },
  "token": {
    "name": "Production Deploy Key",
    "permissions": [
      "servers:list",
      "servers:create",
      "servers:power",
      "dns:*"
    ],
    "created_at": "2025-01-10T14:30:00Z",
    "last_used_at": "2025-02-11T08:45:12Z",
    "expires_at": null,
    "is_expired": false
  }
}

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

account object
الميدان يكتب وصف المشروع
email string Account email address
first_name string | null Account holder's first name
last_name string | null Account holder's last name
company_name string | null Company name (if set)
created_at date Account creation date (YYYY-MM-DD)
token object
الميدان يكتب وصف المشروع
name string Name assigned to this API token
permissions array List of permission strings (e.g. servers:list, dns:*). See Authentication docs for permission format.
created_at datetime When the token was created (ISO 8601)
last_used_at datetime | null Last time the token was used for authentication
expires_at datetime | null Token expiration date (null if no expiration)
is_expired boolean Whether the token has expired

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

200 Successfully retrieved account and token information
401 Unauthorized - Invalid, expired, or missing API token

حالات الاستخدام الشائع

تحديد مالك الرموز

عند إدارة رموز متعددة لواجهة برمجة التطبيقات عبر تطبيقات مختلفة، استخدم هذه النقطة النهائية للتحقق من الحساب الذي تنتمي إليه الرموز:

# Check which account this token is associated with
response = requests.get(
    "https://admin.vps.org/api/v1/account/me/",
    headers={"Authorization": f"Bearer {api_token}"}
)
account = response.json()["account"]
print(f"This token belongs to: {account['email']}")

التحقق من أذونات الرموز

قبل إجراء استدعاءات API، تحقق من ما هي الإذن التي تملكها الرموز الحالية:

# Check token permissions before performing an action
response = requests.get(
    "https://admin.vps.org/api/v1/account/me/",
    headers={"Authorization": f"Bearer {api_token}"}
)
permissions = response.json()["token"]["permissions"]

if "servers:create" in permissions or "servers:*" in permissions:
    # Token has permission to create servers
    create_server()
else:
    print("Token does not have servers:create permission")

رصد انتهاء صلاحية الرموز

تحقق إذا كان رمزك على وشك الانتهاء:

from datetime import datetime

response = requests.get(
    "https://admin.vps.org/api/v1/account/me/",
    headers={"Authorization": f"Bearer {api_token}"}
)
token_info = response.json()["token"]

if token_info["expires_at"]:
    expires = datetime.fromisoformat(token_info["expires_at"])
    days_left = (expires - datetime.now()).days
    if days_left < 7:
        print(f"Warning: Token expires in {days_left} days")
else:
    print("Token has no expiration date")

الإذن المرجع

التصاريح تتبع الشكل resource:action. الاستخدام resource:* :: الوصول الكامل إلى مورد ما، أو *:* للوصول الكامل إلى واجهة البرمجة.

الموارد الإجراءات المتاحة
servers list, create, update, delete, power, backup, snapshot, resize, *
domains list, search, update, renew, *
dns list, create, update, delete, *
snapshots list, delete, *
backups list, *
ssh-keys list, create, delete, *
plans list, *
locations list, *
deployments list, create, delete, *
billing list, *
Manage your tokens: Create, edit, and revoke API tokens at admin.vps.org/account/developers/