VPS.org API

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

Счет 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 Если знамение уже истекло, то оно не имеет силы, когда знамение не имеет срока.

Коды состояния ответа

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/