VPS.org API

Dokumentacja REST API

API serwerów

Tworzenie, inspekcja, zasilanie, zmiana rozmiaru i usuwanie serwerów VPS. Serwery są identyfikowane przez ich uuid.

Punkty końcowe 15
Ścieżka bazowa /api/v1/servers
DOSTAWAĆ /api/v1/servers/

Wyświetl wszystkie serwery

Zwraca serwery na koncie, najnowsze, najpierw 25 na stronę. Nie są włączone serwery, które są usuwane.

Wymagane zezwolenie: servers:list

Parametry zapytania

Parametr Typ Wymagany Opis
page integer Nie. Numer strony, zaczynając od 1
page_size integer Nie. Wyniki na stronę (domyślnie 25, maksymalnie 100)

Przykładowe żądanie

cURL
Python
JavaScript
PHP
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";
}

Przykładowa odpowiedź

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

Pola odpowiedzi

Pole Typ Opis
uuid string Identyfikator serwera używany w każdym innym punkcie końcowym serwera
hostname string Nazwa komputera wybrana przy tworzeniu serwera
status string Aktualny stan. Zobacz wartości stanu serwera poniżej.
error_description string | null Szczegóły ostatniej awarii podczas błędu stanu, w przeciwnym razie null
location_name string Nazwa miejsca, w którym jest serwer
os_name string Nazwa systemu operacyjnego, bez wersji
plan_name string Podsumowanie planu, np. 1 vCPU / 2 GB RAM / 10 GB
ipv4_addresses array Adres IPv4 jako struny. Pust do czasu rozmieszczenia serwera i na planach bez IPv4.
ipv6_addresses array Adres IPv6 jako struny. Pust do czasu uruchomienia serwera.
created_at datetime Czas tworzenia (ISO 8601, UTC)
deployed boolean Prawdziwe po zakończeniu przepisu

Kody statusu odpowiedzi

200 Pomyślnie pobrano listę serwerów
403 Brak lub nieprawidłowy token API, lub token brakuje wymaganego pozwolenia
POST /api/v1/servers/

Utwórz nowy serwer

Dodaje kolejkę do nowego serwera do rozmieszczenia i zwraca go natychmiast z kolejką statusu. Przepisy kontynuują się w tle: przeanalizuj punkt końcowy statusu do czasu uruchomienia. Gdy serwer jest gotowy, jego dane logowania są wysyłane do właściciela konta.

Twoje konto wymaga zaoszczędzonej metody płatności. W zależności od historii konta, tymczasowy wstępny chwil autoryzacji w wysokości około jednego tygodnia ceny planu (co najmniej 1 USD) może być umieszczony na kartę przed utworzeniem serwera.

Wymagane zezwolenie: servers:create

Parametry treści żądania

Parametr Typ Wymagany Opis
hostname string Tak Co najmniej 3 znaki. Listy, cyfry, chłonniki i okresy.
location_id integer Tak Id aktywnej lokalizacji z API Lokalizacji
plan_uuid string Tak Uuid aktywnego planu z planów API
operating_system_version_uuid string Tak Uuid aktywnego wpisu w liście wersji systemu operacyjnego
ssh_key_uuids array Nie. UUID kluczy SSH z API SSH Keys, aby zainstalować na serwerze
ssh_key_ids array Nie. Integer id kluczy SSH, jako alternatywa dla ssh_ key_ uuids. Jeśli są wysłane, używane są ssh_ key_ ids.
ssh_key_uuid, ssh_key_id string, integer Nie. Krótkie narzędzia dla jednego klucza SSH
auth_method string Nie. hasło, ssh_ key lub oboje. Domyślnie hasło, lub obie przy podaniu kluczy SSH.

Przykładowe żądanie

cURL
Python
JavaScript
PHP
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);

Przykładowa odpowiedź

201 Stworzony z obiektem pełnym serwer opisany w GET Status Szczegóły. Adresy i mid są wypełnione po zakończeniu rozmieszczenia.

{
  "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": []
}

Kody statusu odpowiedzi

201 Serwer stworzony i w kolejce do rozmieszczenia
400 Błąd weryfikacji, na przykład nieaktywna lokalizacja, plan lub wersja systemu operacyjnego
402 Brak sposobu płatności w pliku, niezapłaconych faktur lub przeduprawnienia karty
403 Brak lub nieprawidłowy token API, lub token brakuje wymaganego pozwolenia
429 Twoje konto osiągnęło limit tworzenia serwera
DOSTAWAĆ /api/v1/servers/{uuid}/

Uzyskaj szczegóły serwera

Zwraca jeden serwer z jego lokalizacją, planem, systemem operacyjnym, adresami IP i pięciu ostatnich działań.

Wymagane zezwolenie: servers:list

curl -X GET "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Przykładowa odpowiedź

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

SVG ikona i lista wersji jest skrócona tutaj.

Pola odpowiedzi

Pole Typ Opis
vmid integer | null Numer maszyny wirtualnej, ustawiony podczas rozmieszczenia
location object Obiekt lokalizacji, zwrócony przez API Lokalizacje
plan object Plan obiekt, zwrócony przez plan API
operating_system, operating_system_version object System operacyjny i zainstalowana wersja, zwrócona przez systemy operacyjne API
ipv4_addresses, ipv6_addresses array Jeden obiekt na adres z ip, bramą, podmózką i rdns (odwrotny DNS nazwę)
recent_actions array Do pięciu ostatnich działań: id, action_display, opis, user_ email, created_at

Kody statusu odpowiedzi

200 Pomyślnie pobrano szczegóły serwera
404 Nie znaleziono, albo należy do innego konta
DOSTAWAĆ /api/v1/servers/{uuid}/status/

Pobierz status serwera

Łagodny wyzwanie do ankietowania po stworzeniu, mocy lub zmianie rozmiaru serwera.

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
}

Wartości stanu serwera

Wartość Opis
queue Akcja (rozpoczynanie, potęga, zmiana rozmiaru, przywrócenie) jest w kolejce lub w trakcie
deploying Zapewnienie. Serwery stworzone z panelu sterowania używają tego stanu; serwery utworzone przez API pozostają w kolejce aż będą gotowe.
on Bieganie
off Wyłączone
error Ostatnia akcja nie powiodła się. Zobacz błędne_ określenie.
suspended_payment Zawieszone z powodu niezapłaconych faktur
POST /api/v1/servers/{uuid}/power/

Zasilanie serwera sterowania

Kolejne działanie zasilania. Status serwera zmienia się w kolejce do końca.

Wymagane zezwolenie: servers:power

Parametry treści żądania

Parametr Typ Wymagany Opis
action string Tak start: zasilanie
shutdown: gracyjne wyłączenie, odrzucone, jeśli gościu nie zatrzyma się
restart: cykl twardego zasilania (zatrzymaj, a następnie rozpocznij)
stop: Obecnie wykonywa ten sam cykl zasilania co uruchomienie. Użyj wyłączenia, aby pozostawić wyłączony serwer.

Przykładowe żądanie

cURL
Python
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())

Przykładowa odpowiedź

{
  "message": "Server restart queued"
}

Kody statusu odpowiedzi

200 Akcja została zakończona kolejką
400 Brak lub niepodtrzymane działanie
402 odmówienie rozpoczęcia działalności, ponieważ konto posiada niezapłacone faktury
404 Nie znaleziono, albo należy do innego konta
POST /api/v1/servers/{uuid}/resize/

Zmień rozmiar serwera

Przenosi serwer do innego planu aktywnego. Nowy plan nie może mieć mniej miejsca na dysku niż bieżący, a organ zażądający musi obejmować nastawienie zmiany rozmiaru. Pojemność Hypervisora dla nowego planu jest sprawdzona przed zakończeniem kolejki, więc odmówiony żądanie pozostawia serwerowi niezmienioną zmianę.

Serwer jest wyłączony podczas zmiany rozmiaru i uruchomiony ponownie po jego zakończeniu. Jeśli zmiana rozmiaru nie powiodła się, serwer jest ponownie wstawiony do poprzedniego planu i uruchomiony ponownie, jeśli jest uruchomiony. Rozwój dysku nie może być cofnięty.

Wymagane zezwolenie: servers:resize

Parametry treści żądania

Parametr Typ Wymagany Opis
action string Tak Musi być zmiana rozmiaru
new_plan_uuid string Tak Uuid planu przemieszczenia się do
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"
}

Przykład odrzuconego zmiany rozmiaru (409):

{
  "error": "Not enough hypervisor capacity for the selected plan; the server was not changed"
}

Kody statusu odpowiedzi

200 Akcja została zakończona kolejką
400 Brak działania lub nowy_ plan_plan_uuid, nieprawidłowy lub nieaktywny plan, plan z mniej przestrzeni dysku lub plan GPU (plany GPU nie mogą być zmieniane przez API)
404 Nie znaleziono, albo należy do innego konta
409 Zmiana rozmiaru lub zmiana przechowywania już trwa, lub nie ma wystarczającej pojemności nadwizora dla nowego planu
503 Nie można sprawdzić pojemności. Serwer nie został zmieniony; powtórz później.
POST /api/v1/servers/{uuid}/reset-password/

Przywróć hasło root

Generuje nowe hasło root, zwraca go w odpowiedzi i wiersza zmiany na serwerze. Nowe hasło jest również wysyłane do Ciebie. Serwer musi być rozmieszczony. Nie jest potrzebne ciało żądania.

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

Kody statusu odpowiedzi

200 Akcja została zakończona kolejką
400 Serwer nie został jeszcze rozładowany
404 Nie znaleziono, albo należy do innego konta
DOSTAWAĆ POST /api/v1/servers/{uuid}/rdns/

Odwrotny DNS (PTR)

GET wymienia odwrotne nazwy użytkownika DNS każdego adresu IPv4 i IPv6 na serwerze. POST wybiera go na jeden adres. Wysyłanie pustego nazwy użytkownika przesuwa adres do domyślnej nazwy DNS.

Wymagane zezwolenie: servers:update

Parametry treści żądania (POST)

Parametr Typ Wymagany Opis
ip string Tak Adres IPv4 lub IPv6 przydzielony temu serwerowi
hostname string Nie. Nazwa użytkownika PTR. Zostaw pusty, aby usunąć domyślne.
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"
}

Odpowiedź GET:

{
  "rdns": [
    {"ip": "203.0.113.10", "hostname": "mail.example.com"},
    {"ip": "2001:db8:2:dd::f9:6b", "hostname": "mail.example.com"}
  ]
}

Kody statusu odpowiedzi

400 brak ip lub nie można ustawić nazwy użytkownika
404 Adres IP nie jest przypisany do tego serwera
POST /api/v1/servers/{uuid}/exec/

Wykonuj polecenie na serwerze

Wykonuje polecenie pociskowe wewnątrz serwera za pośrednictwem agenta gościnnego QEMU i czeka na jego zakończenie. Serwer musi być rozmieszczony i uruchomiony, a qemu-guest-agent musi być zainstalowany i uruchomiony w gościu.

Wymagane zezwolenie: servers:exec

Parametry treści żądania

Parametr Typ Wymagany Opis
command string Tak Linia poleceń uruchomiona z /bin/sh - c, do 2000 znaków
timeout integer Nie. Sekendy do czekania na polecenie, od 1 do 300 (domyślnie 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
}

Jeśli polecenie jest nadal uruchomione po upływie terminu czasowego, odpowiedź została ustawiona na true i exectu_ code ustawiona na null.

Kody statusu odpowiedzi

200 Polecenie zakończone lub przekroczył czas
400 Serwer nie został uruchomiony lub nie jest uruchomiony, ani nieprawidłowe parametry
409 Agent QEMU nie działa na serwerze
503 Tymczasowy problem połączenia. Powtórz ponownie po nagłówku.
USUWAĆ /api/v1/servers/{uuid}/

Usuń serwer

Dodaje serwer do stałego usuwania. Serwer znika z listy natychmiast i nie może być odzyskany.

Wymagane zezwolenie: 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"
}

Kody statusu odpowiedzi

202 Zaakceptowano: wniosek został zaatakowany
404 Nie znaleziono, albo należy do innego konta
DOSTAWAĆ POST /api/v1/ssh-keys/

SSH klawisze

Przechowywać publiczne klucze SSH na koncie, następnie przekazywać ich uuids jako ssh_key_uuids podczas tworzenia serwera. Get lists your keys (25 na stronę); POST dodaje jeden.

Wymagane zezwolenie: ssh-keys:list (GET), ssh-keys:create (POST)

Parametry treści żądania (POST)

Parametr Typ Wymagany Opis
name string Tak Nazwa do rozpoznania klucza, do 100 znaków
public_key string Tak Publiczny klucz w formacie OpenSSH, na przykład zawartość id_ed25519.pub

Przykładowe żądanie

cURL
Python
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"])

Przykładowa odpowiedź

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

Pola odpowiedzi

Pole Typ Opis
id, uuid integer, string Identyfikatory kluczy. Uuid używać w ssh_ key_ uuid i w URL poniżej; id działa w ssh_ key_ id.
fingerprint string Odcisk palca MD5 klucza, obliczony przez platformę
last_used_at datetime | null Kiedy klucz został ostatnio zainstalowany na nowym serwerze

Kody statusu odpowiedzi

201 Dodany klucz
400 Brak nazwy lub klucz publiczny nie jest ważnym kluczem publicznym SSH
DOSTAWAĆ USUWAĆ /api/v1/ssh-keys/{uuid}/

Pobierz lub usuń klucz SSH

Zwraca jeden klucz z powyższymi polami. DELETE usuwa go z konta i zwraca 204 bez ciała. Usuwanie klucza nie usuwa z serwerów, na których został już zainstalowany. Klucze nie mogą być edytowane: usunąć i dodać ponownie.

Wymagane zezwolenie: 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"

Zamknięcia i odbiorki

Tworzenie kopii zapasowej lub zdjęć jest również działaniem serwera: