Creați, inspectați, puteri, redimensionați și ștergeți serverele VPS. Servetorii sunt identificați de uuid.
Returnează serverele din contul dvs., mai nou, 25 pe pagină. Serverii care sunt șterse nu sunt incluse.
Permisul necesar: servers:list
| Parametrul | Tip | Necesar | Descriere |
|---|---|---|---|
page |
integer | Nu. | Numărul de pagină, începând cu 1 |
page_size |
integer | Nu. | Results per page (default 25, maximum 100) |
curl -X GET "https://admin.vps.org/api/v1/servers/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
import requests
url = "https://admin.vps.org/api/v1/servers/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
response = requests.get(url, headers=headers)
for server in response.json()["results"]:
print(server["uuid"], server["hostname"], server["status"])
const response = await fetch('https://admin.vps.org/api/v1/servers/', {
headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});
const data = await response.json();
console.log(data.results);
$ch = curl_init('https://admin.vps.org/api/v1/servers/');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_API_TOKEN']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
foreach ($data['results'] as $server) {
echo $server['hostname'] . ' ' . $server['status'] . "\n";
}
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"uuid": "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b",
"hostname": "web-01",
"status": "on",
"error_description": null,
"location_name": "New Jersey",
"plan_name": "1 vCPU / 2 GB RAM / 10 GB",
"os_name": "Ubuntu",
"ipv4_addresses": ["203.0.113.10"],
"ipv6_addresses": ["2001:db8:2:dd::f9:6b"],
"created_at": "2026-07-30T03:54:14.914364Z",
"deployed": true
},
{
"uuid": "2d7e9b40-6c1a-4f3e-8b5d-9a0c1e2f3b4d",
"hostname": "db-01",
"status": "queue",
"error_description": null,
"location_name": "New Jersey",
"os_name": "Debian",
"ipv4_addresses": [],
"ipv6_addresses": [],
"created_at": "2026-09-14T19:33:49.426508Z",
"deployed": false
}
]
}
| Câmp | Tip | Descriere |
|---|---|---|
uuid |
string | Identificator server folosit în fiecare alt punct de end server |
hostname |
string | Numele de nume ales al serverului |
status |
string | Starea actuală. A se vedea valorile statutului serverului de mai jos. |
error_description |
string | null | Detalii ale ultimei eșecuri atunci când starea este eroare, altfel nu |
location_name |
string | Numele locației în care se execută serverul |
os_name |
string | Denumirea sistemului de funcționare, fără versiune |
plan_name |
string | Rezumatul planului legibil, de exemplu 1 vCPU / 2 GB RAM / 10 GB |
ipv4_addresses |
array | Adrese IPv4 ca string. Egotism până la implementarea serverului, și pe planuri fără IPv4. |
ipv6_addresses |
array | Adrese IPv6 ca string. Egotism până la implementarea serverului. |
created_at |
datetime | Ora de creare (ISO 8601, UTC) |
deployed |
boolean | Adevărat după ce a fost terminată dispunerea |
| 200 | Lista de servere a fost recuperată cu succes |
| 403 | Token API lipsă sau nu este valid, sau tokenul nu este permisul necesar |
Încuie un nou server pentru implementare și returnează imediat cu coada de stare. Proporționarea continuă în fundal: sondajul de stare punctul final până la implementare este adevărat. Când serverul este gata, detaliile de login sunt trimise prin email proprietarului contului.
Contul dvs. are nevoie de o metodă de plată salvată. În funcție de istoricul contului dvs., un deținut temporar de pre-autorizare de aproximativ o săptămână de prețul plan (cel puțin 1 USD) poate fi plasat pe cardul dumneavoastră înainte de a fi creat server.
Permisul necesar: servers:create
| Parametrul | Tip | Necesar | Descriere |
|---|---|---|---|
hostname |
string | Da | Cel puţin 3 caractere. Litere, cifre, judecători şi perioade. |
location_id |
integer | Da | Id. o locație activă de la API Locații |
plan_uuid |
string | Da | Uuidul unui plan activ din API Plans |
operating_system_version_uuid |
string | Da | Uuidul unei intrări active în lista versiunilor unui sistem de operare |
ssh_key_uuids |
array | Nu. | UUID de chei SSH de la API SSH de instalat pe server |
ssh_key_ids |
array | Nu. | Identificatori întregi ai cheilor SSH, ca alternativă la ssh_key_uuids. Dacă ambele sunt trimise, ssh_key_ids este utilizat. |
ssh_key_uuid, ssh_key_id |
string, integer | Nu. | Shortman pentru o singură cheie SSH |
auth_method |
string | Nu. | parola, ssh_ key sau ambele. Valoare implicite pentru parola, sau pentru ambele când SSH sunt furnizate chei. |
curl -X POST "https://admin.vps.org/api/v1/servers/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"hostname": "web-01",
"location_id": 1,
"plan_uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
"operating_system_version_uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"ssh_key_uuids": ["YOUR_SSH_KEY_UUID"]
}'
import requests
url = "https://admin.vps.org/api/v1/servers/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
data = {
"hostname": "web-01",
"location_id": 1,
"plan_uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
"operating_system_version_uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"ssh_key_uuids": ["YOUR_SSH_KEY_UUID"],
}
response = requests.post(url, headers=headers, json=data)
server = response.json()
print(response.status_code, server["uuid"], server["status"])
const response = await fetch('https://admin.vps.org/api/v1/servers/', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
hostname: 'web-01',
location_id: 1,
plan_uuid: '3bc2faf6-8f8b-4978-b62d-b52ed3f858e9',
operating_system_version_uuid: 'c3418f90-80a0-4e00-a7e1-d0ab1822b941',
ssh_key_uuids: ['YOUR_SSH_KEY_UUID']
})
});
const server = await response.json();
console.log(server.uuid, server.status);
$data = [
'hostname' => 'web-01',
'location_id' => 1,
'plan_uuid' => '3bc2faf6-8f8b-4978-b62d-b52ed3f858e9',
'operating_system_version_uuid' => 'c3418f90-80a0-4e00-a7e1-d0ab1822b941',
'ssh_key_uuids' => ['YOUR_SSH_KEY_UUID']
];
$ch = curl_init('https://admin.vps.org/api/v1/servers/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_TOKEN',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server = json_decode(curl_exec($ch), true);
curl_close($ch);
201 Creat cu obiectul complet server descris în Detalii de la server. Adresele și vmid sunt umplute în odată ce implementarea finalizează.
{
"uuid": "5f0c8e2a-6b1d-4c3e-9a7f-2d4b6c8e0a1f",
"hostname": "web-01",
"vmid": null,
"status": "queue",
"error_description": null,
"location": {
"id": 1,
"name": "New Jersey",
"country_name": "United States",
"is_active": true
},
"plan": {
"uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
"cpu": 1,
"ram": 2,
"ram_unit": "GB",
"disk_space": 10,
"disk_space_total": 10240,
"transfer": 500,
"price": "3.50",
"cpu_type_name": "Shared",
"is_active": true,
"hourly_price": "0.005",
"monthly_price": "3.50",
"is_gpu": false,
"gpu_count": 0,
"gpu_model": ""
},
"operating_system": {
"id": 1,
"name": "Ubuntu",
"svg_icon": "<svg ...>",
"versions": [ ... ]
},
"operating_system_version": {
"uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"name": "24.04 LTS x64",
"os_name": "Ubuntu",
"os_svg_icon": "<svg ...>",
"is_active": true
},
"ipv4_addresses": [],
"ipv6_addresses": [],
"deployed": false,
"created_at": "2026-09-14T21:02:11.402113Z",
"recent_actions": []
}
| 201 | Server creat și în coada pentru implementare |
| 400 | Eroare de validare, de exemplu o locație inactivă, o versiune a sistemului de operare sau de planificare |
| 402 | Nu s-a refuzat nici o metodă de plată pe dosar, facturi nerambursate sau preautorizarea cardului |
| 403 | Token API lipsă sau nu este valid, sau tokenul nu este permisul necesar |
| 429 | Contul dvs. a atins limita de creare a serverului |
Returnează un server cu locația, planul, sistemul de operare, adresele IP și cele cinci acțiuni cele mai recente.
Permisul necesar: servers:list
curl -X GET "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"uuid": "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b",
"hostname": "web-01",
"vmid": 1042,
"status": "on",
"error_description": null,
"location": {
"id": 1,
"name": "New Jersey",
"country_name": "United States",
"is_active": true
},
"plan": {
"uuid": "14186969-fbaf-43e1-9ab2-b1f1aeb66674",
"cpu": 1,
"ram": 2,
"ram_unit": "GB",
"disk_space": 25,
"disk_space_total": 25600,
"transfer": 1,
"price": "5.00",
"cpu_type_name": "Shared",
"is_active": true,
"hourly_price": "0.007",
"monthly_price": "5.00",
"is_gpu": false,
"gpu_count": 0,
"gpu_model": ""
},
"operating_system": {
"id": 1,
"name": "Ubuntu",
"svg_icon": "<svg ...>",
"versions": [ ... ]
},
"operating_system_version": {
"uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"name": "24.04 LTS x64",
"os_name": "Ubuntu",
"os_svg_icon": "<svg ...>",
"is_active": true
},
"ipv4_addresses": [
{
"ip": "203.0.113.10",
"gateway": "203.0.113.1",
"subnet": "203.0.113.0",
"rdns": "web-01.example.com"
}
],
"ipv6_addresses": [
{
"ip": "2001:db8:2:dd::f9:6b",
"gateway": "2001:db8:2:dd::f9:1",
"subnet": "2001:db8:2:dd::f9:0",
"rdns": "web-01.example.com"
}
],
"deployed": true,
"created_at": "2026-07-30T03:54:14.914364Z",
"recent_actions": [
{
"id": 17028,
"action": "create",
"action_display": "Create",
"description": "Server deployed with VMID 1042",
"user_email": "you@example.com",
"created_at": "2026-07-30T03:54:32.860854Z"
}
]
}
Marca de icoane SVG și lista versiunilor sunt scurtate aici.
| Câmp | Tip | Descriere |
|---|---|---|
vmid |
integer | null | Numărul mașinii virtuale, setat în timpul deplasării |
location |
object | Obiectul locație, după cum a revenit de API Locații |
plan |
object | Obiectul plan, după cum a revenit API Plans |
operating_system, operating_system_version |
object | Sistemul de operare și versiunea instalată, astfel cum a fost restituit de API Sistemele de Operare |
ipv4_addresses, ipv6_addresses |
array | Un obiect pe adresă cu ip, gateway, subnet și rdns (loginul DNS invers) |
recent_actions |
array | Până la cinci ultime acțiuni: id, acțiune, action_display, descriere, user_email, create_at |
| 200 | Detaliile serverului au fost preluate cu succes |
| 404 | Nu a fost găsit, sau aparţine unui alt cont |
Un apel uşor pentru sondaj după crearea, puterea sau redimensionarea unui server.
curl -X GET "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/status/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"status": "on",
"deployed": true,
"resizing": false
}
| Valoare | Descriere |
|---|---|
queue |
O acțiune (deploapă, putere, redimensionare, restabilire) este în coada sau în curs de desfășurare |
deploying |
Fiind provizionat. Serverii creați din panoul de control folosesc acest stat; serverele create prin API stau în coada până când sunt gata. |
on |
Fugire |
off |
Se dezactiva |
error |
Ultima acțiune a eșuat. A se vedea description_ error. |
suspended_payment |
Suspensată din cauza facturilor nerambursate |
Coada o acțiune de putere. Starea serverului se schimbă în coada până când acțiune se completează.
Permisul necesar: servers:power
| Parametrul | Tip | Necesar | Descriere |
|---|---|---|---|
action |
string | Da |
start: curent de energieshutdown: închidere graţioasă, forţată dacă invitatul nu se opreşterestart: ciclu de putere dur (oprește, apoi începe)stop: În prezent efectuează același ciclu de putere ca reîncepe. Utilizați oprirea pentru a lăsa un server oprit.
|
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/power/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action": "restart"}'
import requests
server_uuid = "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b"
url = f"https://admin.vps.org/api/v1/servers/{server_uuid}/power/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
response = requests.post(url, headers=headers, json={"action": "restart"})
print(response.json())
{
"message": "Server restart queued"
}
| 200 | Acţiunea a fost în coada |
| 400 | Acțiunea lipsă sau nesuportată |
| 402 | începerea refuzată deoarece contul are facturi nejustificate |
| 404 | Nu a fost găsit, sau aparţine unui alt cont |
Mută serverul la un alt plan activ. Planul nou nu poate avea mai puțin spațiu pe disc decât cel curent, iar corpul de cerere trebuie să includă acțiune set pentru a redimensiona. Capacitatea Hypervisor pentru noul plan este verificată înainte de a fi în coada, astfel încât o cerere refuzată lasă serverul neschimbat.
Serverul este închis în timp ce este redimensionat și a început din nou după. Dacă redimensionarea eșuează, serverul este pus înapoi pe planul său precedent și a început din nou dacă a fost rulat. Creșterea discului nu poate fi anulată.
Permisul necesar: servers:resize
| Parametrul | Tip | Necesar | Descriere |
|---|---|---|---|
action |
string | Da | Trebuie să fie redimensionat |
new_plan_uuid |
string | Da | Uuidul planului de mutare la |
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/resize/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action": "resize", "new_plan_uuid": "5e26a4a6-bd0c-467c-abca-da036c811c3f"}'
{
"message": "Resize queued successfully"
}
Exemplu de redimensionare refuzată (409):
{
"error": "Not enough hypervisor capacity for the selected plan; the server was not changed"
}
| 200 | Acţiunea a fost în coada |
| 400 | Acțiunea lipsă sau planul nou_plan_uuid, plan inactiv sau nu, un plan cu mai puțin spațiu pe disc sau un plan GPU (planurile GPU nu pot fi redimensionate prin API) |
| 404 | Nu a fost găsit, sau aparţine unui alt cont |
| 409 | O schimbare de redimensionare sau stocare este deja în curs, sau nu există suficientă capacitate de hipervisor pentru noul plan |
| 503 | Capacitatea nu a putut fi verificată acum. Serverul nu a fost schimbat; incearca mai târziu. |
Genera o nouă parolă de rădăcină, îl returnează în răspunsul și coada schimbarea pe server. Noul parolă este trimis și la e-mail. Serverul trebuie implementat. Nu este nevoie de corp de cerere.
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/reset-password/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"message": "Password reset queued. New password will also be emailed to you.",
"password": "generated-password",
"job_id": "b6f1c7e2-3a4d-4f5e-8b9c-0d1e2f3a4b5c"
}
| 200 | Acţiunea a fost în coada |
| 400 | Serverul nu este încă desfășurat |
| 404 | Nu a fost găsit, sau aparţine unui alt cont |
GET listează hostelul DNS invers al fiecărei adrese IPv4 și IPv6 de pe server. POST îl stabilește pentru o adresă. Trimiterea unui host gol resetează adresa la numele DNS invers implicit.
Permisul necesar: servers:update
| Parametrul | Tip | Necesar | Descriere |
|---|---|---|---|
ip |
string | Da | O adresă IPv4 sau IPv6 alocată acestui server |
hostname |
string | Nu. | Numele de nume al PTR. Lasă gol pentru a restabili la implicit. |
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/rdns/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ip": "203.0.113.10", "hostname": "mail.example.com"}'
{
"message": "Reverse DNS for 203.0.113.10 set to mail.example.com",
"ip": "203.0.113.10",
"hostname": "mail.example.com"
}
Răspuns GET:
{
"rdns": [
{"ip": "203.0.113.10", "hostname": "mail.example.com"},
{"ip": "2001:db8:2:dd::f9:6b", "hostname": "mail.example.com"}
]
}
| 400 | ip lipsește, sau nu a putut fi stabilit |
| 404 | Adresa IP nu este alocată acestui server |
Execută o comandă de shell în interiorul serverului prin agentul invitat QEMU și așteaptă să termine. Serverul trebuie implementat și să fie executat, iar qemu- guest-agent trebuie instalat și să fie executat în oaspete.
Permisul necesar: servers:exec
| Parametrul | Tip | Necesar | Descriere |
|---|---|---|---|
command |
string | Da | Linia de comandă cu /bin/sh -c, până la 2000 de caractere |
timeout |
integer | Nu. | Secunde pentru a aştepta comanda, 1 până la 300 (defectul 30) |
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/exec/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"command": "uptime", "timeout": 30}'
{
"stdout": " 21:14:03 up 46 days, 2:10, 0 users, load average: 0.08, 0.03, 0.01\n",
"stderr": "",
"exit_code": 0,
"timed_out": false
}
Dacă comanda este încă în funcţiune când expirarea termenului de expirare, răspunsul a stabilit ajustări la true și codul_ de ieșire setate la nul.
| 200 | Comanda a terminat sau a expirat timpul |
| 400 | Serverul nu este implementat sau nu se execută, sau parametri nu validi |
| 409 | Agentul invitat QEMU nu se execută pe server |
| 503 | Problema de conexiune temporara. Repet după antet. |
Încuie serverul pentru ştergere permanentă. Serverul dispare imediat din listă şi nu poate fi recuperat.
Permisul necesar: servers:delete
curl -X DELETE "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"message": "Server deletion queued"
}
| 202 | Acceptată: cererea a fost în coada |
| 404 | Nu a fost găsit, sau aparţine unui alt cont |
Store public SSH keys in your account, then pass their uuids as ssh_key_uuids when you create a server. GET lists your keys (25 per page); POST adds one.
Permisul necesar: ssh-keys:list (GET), ssh-keys:create (POST)
| Parametrul | Tip | Necesar | Descriere |
|---|---|---|---|
name |
string | Da | Un nume de recunoaștere a cheiei de, până la 100 de caractere |
public_key |
string | Da | Cheia publică în format OpenSSH, de exemplu conținutul id_ed25519.pub |
curl -X POST "https://admin.vps.org/api/v1/ssh-keys/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "laptop", "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... you@laptop"}'
import requests
url = "https://admin.vps.org/api/v1/ssh-keys/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
with open("/home/you/.ssh/id_ed25519.pub") as f:
data = {"name": "laptop", "public_key": f.read().strip()}
response = requests.post(url, headers=headers, json=data)
print(response.status_code, response.json()["uuid"])
{
"id": 19,
"uuid": "6e1b9c52-3f8a-4d7e-a2c4-5b9d0e1f2a3c",
"name": "laptop",
"public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... you@laptop",
"fingerprint": "0b:4c:9b:48:76:e7:1d:07:b9:ac:71:90:70:f7:9a:69",
"created_at": "2026-08-23T19:16:11.547183Z",
"last_used_at": null
}
| Câmp | Tip | Descriere |
|---|---|---|
id, uuid |
integer, string | Key identifiers. Use uuid in ssh_key_uuids and in the URL below; id works in ssh_key_ids. |
fingerprint |
string | Amprenta MD5 a cheiei, calculată de platforma |
last_used_at |
datetime | null | Când cheia a fost instalată ultima dată pe un nou server |
| 201 | Cheie adăugată |
| 400 | Numele lipsă, sau cheia publică nu este o cheie publică SSH validă |
GET returnează o cheie cu câmpurile de mai sus. DELETE îl elimină din contul dvs. și returnează 204 fără corp. Ștergerea unei chei nu îl elimină de la servere pe care era deja instalat. Tastele nu pot fi editate: ștergeți și adaugă din nou.
Permisul necesar: ssh-keys:list (GET), ssh-keys:delete (DELETE)
curl -X DELETE "https://admin.vps.org/api/v1/ssh-keys/6e1b9c52-3f8a-4d7e-a2c4-5b9d0e1f2a3c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Crearea unui backup sau a unui instant este, de asemenea, o acțiune de server:
POST /api/v1/servers/{uuid}/backup/: API-ul pentru copii de rezervăPOST /api/v1/servers/{uuid}/snapshot/: API-ul Snapshot-urilor