VPS.org API

Dokumintaasje

Tsjinners API

Create, inspect, power, resize and delete your VPS servers. Servers are identified by their uuid.

Einpunten 15
Basispaad /api/v1/servers
KRIJE /api/v1/servers/

List alle servers

Jout de tsjinners yn jo akkount werom, de nijste earst, 25 per side. Tsjinners dy' t wiske wurde wurde net opnommen.

Tagongsrjochten fereaske: servers:list

Fraachparameters

Parameters Type Ferplicht Beskriuwing
page integer Net Sidenûmer, begjint by 1
page_size integer Net Resultaten per side (standert 25, maksimum 100)

Foarbyldfersyk

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

Foarbyldantwurd

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

Antwurdfjilden

Fjild Type Beskriuwing
uuid string Tsjinner- identifikaasje brûkt yn alle oare tsjinner- einpunten
hostname string Hostnamme dy' t jo keazen hawwe by it oanmeitsjen fan de tsjinner
status string De hjoeddeiske tastân. Sjoch hjirûnder foar de tsjinnertastânwearden.
error_description string | null Details fan de lêste flater as de tastân flater is, oars null
location_name string Namme fan de lokaasje wêr de tsjinner op draait
os_name string Namme fan it bestjoeringssysteem, sûnder ferzje
plan_name string Lêsbere planoersjoch, bygelyks 1 vCPU / 2 GB RAM / 10 GB
ipv4_addresses array IPv4- adressen as tekenriges. Leech oant de tsjinner ynset is, en op plannen sûnder IPv4.
ipv6_addresses array IPv6- adressen as tekenriges. Leech oant de tsjinner ynset is.
created_at datetime Oanmaktiid (ISO 8601, UTC)
deployed boolean Wier as de provisioning klear is

Antwurdstatuskoades

200 Serverlist mei súkses ophelle
403 Untbrekkend of ûnjildich API-token, of it token hat net de fereaske tagongsrjochten
POST /api/v1/servers/

Nije tsjinner oanmeitsje

Settet in nije tsjinner yn de wachtrige foar it ynstallearjen en jout it direkt werom mei de tastânwachtrige. It ynstallearjen giet op de eftergrûn troch: it tastâneinpunt wurdt befrege oant it ynstallearre is. As de tsjinner klear is, wurde de oanmeldgegevens nei de akkountbehearder stjoerd.

Jo akkount hat in bewarre betellingsmetoade nedich. Ofhinklik fan jo akkountskiednis kin der in tydlike foarautorisaasje fan sa' n wike fan de planpriis (minstens 1 USD) op jo kaart set wurde foardat de tsjinner oanmakke wurdt.

Tagongsrjochten fereaske: servers:create

Parameters fan oanfraachlichem

Parameters Type Ferplicht Beskriuwing
hostname string Ja Teminsten 3 tekens. Allinne letters, sifers, bindestreken en punten.
location_id integer Ja De id fan in aktive lokaasje út de Locations API
plan_uuid string Ja De uuid fan in aktyf plan fan de Plans API
operating_system_version_uuid string Ja De uuid fan in aktive yngong yn de ferzjelist fan in bestjoeringssysteem
ssh_key_uuids array Net UUID's fan SSH-kaaien fan de SSH-kaaien API om op de tsjinner te ynstallearjen
ssh_key_ids array Net In hiele-getal-id fan SSH-kaaien, as alternatyf foar ssh_key_uuids. As beide ferstjoerd wurde, dan wurdt ssh_key_ids brûkt.
ssh_key_uuid, ssh_key_id string, integer Net Koarte namme foar in ienfâldige SSH- kaai
auth_method string Net Wachtwurd, ssh_ kaai of beide. Standert is wachtwurd, of beide as SSH kaaien oanlevere wurde.

Foarbyldfersyk

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

Foarbyldantwurd

201 Oanmakke mei it folsleine tsjinnerobjekt dat beskreaun is yn Tsjinnerdetails ophelje. Adressen en vmid wurde ynfoege as de ynset klear is.

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

Antwurdstatuskoades

201 Tsjinner oanmakke en yn wachtrige set foar útwreiding
400 Validaasjeflater, bygelyks in net- aktive lokaasje, plan of bestjoeringssysteemferzje
402 Gjin betalingsmetoade yn it triem, net- betelle faktueren, of de kaart foarautorisaasje is ôfwiisd
403 Untbrekkend of ûnjildich API-token, of it token hat net de fereaske tagongsrjochten
429 Jo akkount hat de limiet foar it oanmeitsjen fan tsjinners berikt
KRIJE /api/v1/servers/{uuid}/

Krij serverdetails

Jout in tsjinner werom mei de lokaasje, it plan, it bestjoeringssysteem, IP- adressen en de fiif meast resinte aksjes.

Tagongsrjochten fereaske: servers:list

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

Foarbyldantwurd

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

De SVG-byldkaike-opmaak en de ferzjelist binne hjir ynkoarte.

Antwurdfjilden

Fjild Type Beskriuwing
vmid integer | null Firtuele masine nûmer, ynsteld by it ynstallearjen
location object Lokaasje objekt, weromjûn troch de Locations API
plan object Plan objekt, weromjûn troch de Plans API
operating_system, operating_system_version object Bestimmingssysteem en de ynstallearre ferzje, lykas weromjûn troch de Operating Systems API
ipv4_addresses, ipv6_addresses array Ien objekt per adres mei ip, gateway, subnet en rdns (de omkearde DNS hostnamme)
recent_actions array Oant fiif lêste aksjes: id, aksje, aksje_ werjefte, beskriuwing, e- mail_ brûker, oanmakke_ op

Antwurdstatuskoades

200 Serverdetails mei súkses ophelle
404 Net fûn, of it heart by in oar akkount
KRIJE /api/v1/servers/{uuid}/status/

Tsjinnertastân ophelje

In lichtgewicht oproep foar polling nei it oanmeitsjen, ynskeakeljen of fergrutsjen fan in tsjinner.

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
}

Tsjinnertastânwearden

Wearde Beskriuwing
queue An action (deploy, power, resize, restore) is queued or in progress
deploying Wurdt ynrjochte. Tsjinners dy' t oanmakke binne fanút it konfiguraasjepaniel brûke dizze tastân; tsjinners dy' t oanmakke binne fia de API bliuwe yn de wachtrige oant se klear binne.
on Dwaande mei útfieren
off Utsletten
error De lêste aksje is mislearre. Sjoch error_description.
suspended_payment Skoft fanwege net- betelle faktueren
POST /api/v1/servers/{uuid}/power/

Tsjinner- enerzjybehear

Stelt in machtsaksje yn de wachtrige. De tsjinnertastân feroaret yn wachtrige oant de aksje foltôge is.

Tagongsrjochten fereaske: servers:power

Parameters fan oanfraachlichem

Parameters Type Ferplicht Beskriuwing
action string Ja start: power on
shutdown: graceful shutdown, forced off if the guest does not stop
restart: Harde enerzjysykle (stopje, dan begjinne)
stop: de tsjinner docht op it stuit deselde enerzjysykle as it opnij begjinnen. Brûk shutdown om in tsjinner út te litten.

Foarbyldfersyk

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

Foarbyldantwurd

{
  "message": "Server restart queued"
}

Antwurdstatuskoades

200 De aksje is yn de wachtrige set
400 Untbrekke of net stipe aksje
402 start wegere om' t it akkount ûnbetelle faktueren hat
404 Net fûn, of it heart by in oar akkount
POST /api/v1/servers/{uuid}/resize/

In tsjinner fergrutsje

Ferpleatst de tsjinner nei in oar aktyf plan. It nije plan kin net minder skiifromte hawwe as it aktive plan, en it fersyk moat in aksje befetsje om de grutte te feroarjen. De hypervisorkapasiteit foar it nije plan wurdt kontrolearre foardat der wat yn de wachtrige set wurdt, dus in ôfwiisd fersyk lit de tsjinner ûnwizige.

De tsjinner wurdt ôfsletten wylst de grutte feroare wurdt en dan opnij opstart. As de grutte feroaring mislearre is, dan wurdt de tsjinner weromset nei it foarige plan en opnij opstart as er al draaide. De skiifgrutte kin net ûnferwachts fergrutte wurde.

Tagongsrjochten fereaske: servers:resize

Parameters fan oanfraachlichem

Parameters Type Ferplicht Beskriuwing
action string Ja Moat grutte feroarje
new_plan_uuid string Ja De uuid fan it plan om nei te ferpleatsen
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"
}

Foarbyld fan in wegere grutteferbettering (409):

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

Antwurdstatuskoades

200 De aksje is yn de wachtrige set
400 Untbrekke aksje of new_plan_uuid, ûnjildich of net-aktyf plan, in plan mei minder skiifromte, of in GPU-plan (GPU-plannen kinne net feroare wurde fia de API)
404 Net fûn, of it heart by in oar akkount
409 In grutte- of opslachwiziging is al yn beweging, of der is net genôch hypervisorkapasiteit foar it nije plan
503 De kapasiteit koe no net kontrolearre wurde. De tsjinner is net feroare. Besykje it letter opnij.
POST /api/v1/servers/{uuid}/reset-password/

Root- wachtwurd weromsette

Stelt in nij root- wachtwurd oan, jout it werom yn it antwurd en set de feroaring yn de wachtrige op de tsjinner. It nije wachtwurd wurdt ek nei jo stjoerd. De tsjinner moat ynset wurde. Gjin fersyk is nedich.

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

Antwurdstatuskoades

200 De aksje is yn de wachtrige set
400 De tsjinner is noch net ynset
404 Net fûn, of it heart by in oar akkount
KRIJE POST /api/v1/servers/{uuid}/rdns/

Omkearde DNS (PTR)

GET jout de reverse DNS- hostnamme fan elk IPv4 - en IPv6- adres op de tsjinner. POST set it yn foar ien adres. As jo in lege hostnamme stjoere, dan wurdt it adres weromsetten nei de standert reverse DNS- namme.

Tagongsrjochten fereaske: servers:update

Parameters fan oanfraachlichem (POST)

Parameters Type Ferplicht Beskriuwing
ip string Ja In IPv4 of IPv6 adres tawiisd oan dizze tsjinner
hostname string Net De PTR- hostnamme. Lit dit leech om werom te gean nei de standert.
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"
}

GET- antwurd:

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

Antwurdstatuskoades

400 ip ûntbrekt, of de hostnamme koe net ynsteld wurde
404 It IP- adres is net tawiisd oan dizze tsjinner
POST /api/v1/servers/{uuid}/exec/

In kommando útfiere op in tsjinner

Fiert in shell- kommando út yn de tsjinner fia de QEMU- gast- agent en wachtsjet op it ein fan it kommando. De tsjinner moat ynset en draaie, en qemu- guest- agent moat ynstallearre en draaie yn de gast.

Tagongsrjochten fereaske: servers:exec

Parameters fan oanfraachlichem

Parameters Type Ferplicht Beskriuwing
command string Ja Kommandorigel útfiere mei /bin/sh -c, oant 2000 tekens
timeout integer Net Oantal sekonden wachtsje op it kommando, 1 oant 300 (standert 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
}

As it kommando nochris útfiert as de tiid ferrint, dan is de antwurdtiid ynsteld op wier en de útgongskoade op null.

Antwurdstatuskoades

200 Kommando is klear of is ferrûn
400 Tsjinner net ynset of net draaiend, of ûnjildige parameters
409 De QEMU-gast-agent rint net op de tsjinner
503 Tydlike ferbiningsprobleem. Probearje it opnij nei de kop Retry- After.
WISKE /api/v1/servers/{uuid}/

Tsjinner wiskje

Set de tsjinner yn de wachtrige foar it permanent fuortsmite. De tsjinner ferdwynt direkt út de list en kin net werhelle wurde.

Tagongsrjochten fereaske: 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"
}

Antwurdstatuskoades

202 Oannommen: it fersyk is yn de wachtrige set
404 Net fûn, of it heart by in oar akkount
KRIJE POST /api/v1/ssh-keys/

SSH- kaaien

Bewarje de publike SSH-kaaien yn jo akkount, en stjoer se dan troch as ssh_key_uuids as jo in tsjinner oanmeitsje. GET lit jo kaaien sjen (25 per side); POST foeget ien ta.

Tagongsrjochten fereaske: ssh-keys:list (GET), ssh-keys:create (POST)

Parameters fan oanfraachlichem (POST)

Parameters Type Ferplicht Beskriuwing
name string Ja In namme om de kaai mei te identifisearjen, oant 100 tekens
public_key string Ja De publike kaai yn OpenSSH-formaat, bygelyks de ynhâld fan id_ed25519.pub

Foarbyldfersyk

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

Foarbyldantwurd

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

Antwurdfjilden

Fjild Type Beskriuwing
id, uuid integer, string Kaai-identifikaasje. Brûk uuid yn ssh_key_uuids en yn it URL-adres hjirûnder; id wurket yn ssh_key_ids.
fingerprint string MD5 fingerôfdruk fan de kaai, berekkene troch it platfoarm
last_used_at datetime | null Wannear' t de kaai foar it lêst ynstallearre is op in nije tsjinner

Antwurdstatuskoades

201 Kaai taheakke
400 Namme ûntbrekt, of de publike kaai is gjin jildige SSH publike kaai
KRIJE WISKE /api/v1/ssh-keys/{uuid}/

In SSH-kaai ophelje of wiskje

GET jout in kaai werom mei de boppesteande fjilden. DELETE ferwiist it fan jo akkount en jout 204 werom sûnder de ynhâld. It wiskje fan in kaai ferwiist it net fan tsjinners dêr' t it al ynstallearre is. Kaaien kinne net bewurke wurde: wiskje en opnij tafoegje.

Tagongsrjochten fereaske: 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"

Reservekopy's en snapshots

It oanmeitsjen fan in reservekopy of in snapshot is ek in tsjinneraksje: