VPS.org API

REST API Documentation

حساب

بازیابی مشخصات حساب و اطلاعات نشانه 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": null
  }
}

فیلدهای پاسخ

account object
میدان نوع Description
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
میدان نوع Description
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 | null این که آیا نشانه منقضی شده است. null اگر نشانه تاریخ انقضا نداشته باشد.

کدهای وضعیت پاسخ

200 Successfully retrieved account and token information
403 نشانه API نامعتبر، از دست رفته یا مفقود. API پاسخ 403 را می‌دهد، نه 401، هنگامی که احراز هویت شکست می‌خورد.

موارد استفاده معمول

شناسایی مالک نشانه

هنگام مدیریت نشانه‌های API چند گانه در برنامه‌های کاربردی مختلف، از این نقطه پایانی برای تأیید اینکه کدام حساب نشانه متعلق به آن است، استفاده کنید:

# 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:* براي دسترسي کامل به يک منبع، يا *:* براي دسترسی کامل به API

منبع کنشهای موجود
servers list, create, update, delete, power, backup, snapshot, resize, exec, *
domains list, search, register, update, renew, *
dns list, create, update, delete, *
snapshots list, delete, *
backups list, restore, *
ssh-keys list, create, delete, *
plans list, *
locations list, *
operating-systems list, *
deployments list, create, delete, *
Manage your tokens: Create, edit, and revoke API tokens at admin.vps.org/account/developers/