VPS.org API

Документация

Акча которуулар

Профиль учетной записи и API-токен информацию. Это полезно для определения, какие учетные записи и права связаны с API-токеном.

Аяктоо чекиттери 1 аяктоо пункту
Базалык жол /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
Поле Түрү Сүрөт
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 | null Токендин мөөнөтү бүтүп калганбы же жокпу. Эгерде токендин мөөнөтү бүтпөсө, анда null.

Жауап статус кодтары

200 Successfully retrieved account and token information
403 API token жараксыз, мөөнөтү өткөн же жок. Аутентификация ийгиликсиз болгондо API 401 эмес, 403 жооп берет.

Көбүнчө колдонулган учурлар

Токендин ээсин аныктоо

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