VPS.org API

REST API dokumentacija

Račun

Dohvati informacije o profilu računa i API tokenu. Korisno za identifikaciju računa i dozvola povezanih sa API tokenom.

Krajnje tačke 1 krajnja tačka
Osnovni put /api/v1/account
DOBITI /api/v1/account/me/

Primi podatke o računu i tokenu

Vraća metapodatke profila računa i opseg/dozvole za API token korišten u zahtjevu. Ovo je korisno kada upravljate višestrukim API tokenima i trebate identificirati kojem računu pripada token i koje dozvole ima.

Autentifikacija

Zahtijeva valjani API token. Svaki aktivni token može pristupiti ovoj krajnjoj tački bez obzira na opseg dozvola.

Primjer zahtjeva

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

Primjer odgovora

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

Polja za odgovor

account object
Polje Tip Opis
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
Polje Tip Opis
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 Da li je token istekao. null kada token nema datum isteka.

Kodovi stanja odgovora

200 Successfully retrieved account and token information
403 Nevažeći, istekli ili nedostajući API token. API odgovara 403, ne 401, kada autentifikacija ne uspije.

Uobičajeni slučajevi upotrebe

Identificiraj vlasnika token-a

Kada upravljate višestrukim API tokenima u različitim aplikacijama, koristite ovu krajnju tačku da provjerite kojem računu pripada token:

# 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']}")

Provjeri dozvole za token

Prije pozivanja API-ja, provjerite koja prava ima trenutni token:

# 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")

Nadziraj istek token-a

Provjeri da li će tvoj token isteći:

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

Referentne dozvole

Dozvole prate format resource:action. Korištenje resource:* za potpuni pristup resursu, ili *:* za potpuni API pristup.

Resursi Dostupne akcije
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/