VPS.org API

REST API ҳужжатлаштириш

Ҳисоб API

Ҳисоб профили ва API токен маълумотларини олиш. Қайси ҳисоб ва рухсатларни API токен билан боғлаш кераклигини аниқлаш учун фойдали.

Tugash nuqtalari 1-охири
Asosiy yo'l /api/v1/account
OLING /api/v1/account/me/

Ҳисоб ва теги маълумотни олиш

Талабда фойдаланилган API токен учун ҳисоб профили метамаълумотларини ва токен доирасини/рухсатларини қайтаради. Бу кўплаб API токенларни бошқараётганда ва токен қайси ҳисобга тегишли ва унинг қандай рухсатлари борлигини аниқлаш керак бўлганда фойдали.

Autentifikatsiya

Юқоридагилар учун тегишли API токен талаб этилади. Бу ниҳоя нуқтасига рухсат доирасидан қатъи назар, ҳар қандай фаол токен кириши мумкин.

Namunaviy so'rov

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";

Javob namunasi

{
  "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
  }
}

Javob maydonlari

account object
Асосий Turi Тасвирлаш
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
Асосий Turi Тасвирлаш
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

Кўп қўлланиладиган ҳолатлар

Токен эгасини аниқлаш

Бир неча 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, *
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/