VPS.org API

Ҳуҷҷатгузории REST API

Ҳисоб

Гирифтани профили ҳисоби истифодакунанда ва иттилооти API- и рамзи. Барои муайян кардани он ки кадом ҳисоб ва иҷозатномаҳо бо рамзи API алоқаманд аст, фоиданок аст.

Нуқтаҳои ниҳоӣ 1 нуқтаи охирин
Роҳи асосӣ /api/v1/account
ГИРЕД /api/v1/account/me/

Гирифтани иттилооти ҳисобот ва нишона

Метаданаҳои профили ҳисоби корбар ва доираи иҷозатнома/иҷозатномаҳои иҷозатнома барои иҷозатномаи 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

Истифодаи умумӣ

Муайян кардани соҳибони нишонаҳо

Ҳангоми идоракунии якчанд 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/