VPS.org API

REST API -dokumentaatio

Palvelimet API

Luo, tarkasta, käynnistä, kokoa ja poista VPS-palvelimet. Palvelimet tunnistetaan niiden uuid.

Päätepisteet 15
Perusreitti /api/v1/servers
SAADA /api/v1/servers/

Listaa kaikki palvelimet

Palauttaa tililläsi olevat palvelimet uusin ensin, 25 sivulla. Poistettavia palvelimia ei ole mukana.

Vaadittu lupa: servers:list

Kyselyparametrit

Muuttuja Tyyppi Pakollinen Tavaran kuvaus
page integer Ei tarvitse. Page number, starting at 1
page_size integer Ei tarvitse. Tulokset sivulla (oletus 25, enintään 100)

Esimerkkipyyntö

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

Esimerkkivastaus

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

Vastauskentät

Kenttä Tyyppi Tavaran kuvaus
uuid string Palvelimen tunniste, jota käytetään kaikissa muissa palvelinten päätetapahtumissa
hostname string Palvelinta luotaessa valitsemasi palvelinnimi
status string Tämänhetkinen tila. Katso Palvelimen tila-arvot alla.
error_description string | null Tiedot viimeisestä virheestä, kun tila on virhe, muuten nolla
location_name string Name of the location the server runs in
os_name string Käyttöjärjestelmän nimi ilman versiota
plan_name string Lukukelpoinen suunnitelmatiiviste, esimerkiksi 1 vCPU / 2 GB RAM / 10 GB
ipv4_addresses array IPv4 osoittaa jousina. Tyhjänä, kunnes palvelin on käytössä, ja suunnitelmissa ilman IPv4:ää.
ipv6_addresses array IPv6 osoittaa nyörejä. Tyhjä, kunnes palvelin on käytössä.
created_at datetime Luontiaika (ISO 8601, UTC)
deployed boolean Totta, kun huolenpito on loppunut

Vastauksen tilakoodit

200 Palvelinluettelo noudettu onnistuneesti
403 Puuttuva tai virheellinen API-tunnus tai postimerkki puuttuu vaaditusta luvasta
JÄLKEEN /api/v1/servers/

Luo uusi palvelin

Odottaa uutta palvelinta käyttöön ja palauttaa sen välittömästi statusjonoon. Varaus jatkuu taustalla: kyselyn tilan päätetapahtuma on käytössä. Kun palvelimen kirjautumistiedot ovat valmiit, ne lähetetään tilin omistajalle.

Tilisi tarvitsee tallennetun maksutavan. Tilihistoriastasi riippuen kortillesi voidaan laittaa väliaikainen ennakkolupa, joka on noin viikon verran suunnitelman hinnasta (vähintään 1 USD) ennen palvelimen perustamista.

Vaadittu lupa: servers:create

Pyynnön rungon parametrit

Muuttuja Tyyppi Pakollinen Tavaran kuvaus
hostname string Kyllä Vähintään 3 merkkiä. Vain kirjaimet, numerot, väliviivat ja jaksot.
location_id integer Kyllä Sijainti-rajapinta-alueen aktiivisen sijainnin tunniste
plan_uuid string Kyllä Plansin API:n aktiivisen suunnitelman uud
operating_system_version_uuid string Kyllä Aktiivisen syötön uuid käyttöjärjestelmän versioluettelossa
ssh_key_uuids array Ei tarvitse. UUIDs of SSH keys from the SSH Keys API to install on the server
ssh_key_ids array Ei tarvitse. SSH-avainten integer-tunnukset vaihtoehtona ssh_key_uuid-avaimille. Jos molemmat lähetetään, käytetään ssh_key_id-tunnuksia.
ssh_key_uuid, ssh_key_id string, integer Ei tarvitse. Pikakirjoitus yhdelle SSH-avaimelle
auth_method string Ei tarvitse. Salasana, ssh_key tai molemmat. Oletus salasanalle tai molemmille, kun SSH-avaimet toimitetaan.

Esimerkkipyyntö

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

Esimerkkivastaus

201 Luotu koko palvelinobjektilla, joka on kuvattu kohdassa Get Server Details. Osoitteet ja vmid täytetään, kun käyttöönotto on ohi.

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

Vastauksen tilakoodit

201 Palvelin luotu ja jonotettu käyttöönottoon
400 Validointivirhe, esimerkiksi epäaktiivinen sijainti-, suunnitelma- tai käyttöjärjestelmäversio
402 Maksutapaa tiedostossa, maksamattomissa laskuissa tai korttien ennakkoluvassa ei hylätty
403 Puuttuva tai virheellinen API-tunnus tai postimerkki puuttuu vaaditusta luvasta
429 Tilisi on saavuttanut palvelimenluontirajansa
SAADA /api/v1/servers/{uuid}/

Hae palvelimen tiedot

Palauttaa yhden palvelimen sijaintinsa, suunnitelmansa, käyttöjärjestelmänsä, IP-osoitteensa ja viisi viimeisintä toimintoa.

Vaadittu lupa: servers:list

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

Esimerkkivastaus

{
  "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-kuvakemerkintä ja versioluettelo lyhennetään tässä.

Vastauskentät

Kenttä Tyyppi Tavaran kuvaus
vmid integer | null Virtuaalikoneen numero, asetettu käyttöönoton aikana
location object Sijaintiobjekti, palautettuna Locations API:n avulla
plan object Suunnitelman kohde, kuten Plansin API:ssä palautettiin
operating_system, operating_system_version object Käyttöjärjestelmä ja asennettu versio käyttöjärjestelmien API:n palautuksena
ipv4_addresses, ipv6_addresses array Yksi kohde per osoite ip-, portti-, aliverkko- ja rdns-puhelimilla (käänteinen DNS-isäntänimi)
recent_actions array Enintään viisi viimeisintä toimintoa: ID, toiminta, toiminto_näyttö, kuvaus, käyttäjäviesti, luotu_at

Vastauksen tilakoodit

200 Palvelimen tiedot noudettu onnistuneesti
404 Ei löytynyt, tai se kuuluu toiselle tilille
SAADA /api/v1/servers/{uuid}/status/

Hae palvelintila

Kevyt äänestyskutsu sen jälkeen, kun olet luonut, vallannut tai koonnut palvelimen uudelleen.

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
}

Palvelimen tila-arvot

Arvo Tavaran kuvaus
queue Toiminta (käyttö, teho, kokoa muutetaan, palautetaan) on jonossa tai käynnissä
deploying Toimitukset. Ohjauspaneelista luodut palvelimet käyttävät tätä tilaa; API:n kautta luodut palvelimet pysyvät jonossa, kunnes ovat valmiita.
on Suoritetaan
off Moottorit pois
error Edellinen toiminto epäonnistui. Katso virhe_kuvaus.
suspended_payment Keskeytetty maksamattomien laskujen vuoksi
JÄLKEEN /api/v1/servers/{uuid}/power/

Ohjauspalvelimen teho

Virtatoimintoa ei ole tarjolla. Palvelimen tila muuttuu jonoksi, kunnes toiminto on valmis.

Vaadittu lupa: servers:power

Pyynnön rungon parametrit

Muuttuja Tyyppi Pakollinen Tavaran kuvaus
action string Kyllä start: valta päällä
shutdown: Siveä sammutus, pakko, jos vieras ei pysähdy
restart: kova tehosykli (seis, sitten käynnistys)
stop: Tällä hetkellä se suorittaa saman virtasyklin kuin uudelleen. Käytä sulkua jättääksesi palvelimen pois käytöstä.

Esimerkkipyyntö

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

Esimerkkivastaus

{
  "message": "Server restart queued"
}

Vastauksen tilakoodit

200 Toimintaa jonotettiin
400 Puuttuva tai tukematon toimenpide
402 Aloita kieltäytyminen, koska tilillä on maksamattomia laskuja
404 Ei löytynyt, tai se kuuluu toiselle tilille
JÄLKEEN /api/v1/servers/{uuid}/resize/

Muuta palvelinta

Uusi suunnitelma ei voi olla nykyistä pienempi, ja pyyntöelimen on otettava käyttöön kokomuutoksen toiminto. Uuden suunnitelman hypervisorikapasiteetti tarkistetaan ennen jonottamista, joten hylätty pyyntö jättää palvelimen ennalleen.

Palvelin suljetaan, kun se on suurennettu ja aloitettu uudelleen. Jos kokomuutos epäonnistuu, palvelin laitetaan takaisin aiemmalle suunnitelmalleen ja käynnistetään uudelleen, jos se oli käynnissä. Levyn kasvua ei voi peruuttaa.

Vaadittu lupa: servers:resize

Pyynnön rungon parametrit

Muuttuja Tyyppi Pakollinen Tavaran kuvaus
action string Kyllä Täytyy olla kokoa muuttaa
new_plan_uuid string Kyllä The uuid of the plan to move to
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"
}

Esimerkki kielletystä koonmuutoksesta (409):

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

Vastauksen tilakoodit

200 Toimintaa jonotettiin
400 Puuttuva toiminta tai uusi_plan_uuid, virheellinen tai epätoiminen suunnitelma, vähemmän levytilaa sisältävä suunnitelma tai GPU-suunnitelma (GPU-suunnitelmia ei voi muuttaa API:n kautta)
404 Ei löytynyt, tai se kuuluu toiselle tilille
409 Koko- tai tallennustilan muutos on jo käynnissä, tai uuteen suunnitelmaan ei ole riittävästi hypervisiirikapasiteettia
503 Kapasiteettia ei voitu tarkistaa juuri nyt. Palvelinta ei muutettu, yritä uudelleen myöhemmin.
JÄLKEEN /api/v1/servers/{uuid}/reset-password/

Nollaa juurisalasana

Luo uuden juurisalasanan, palauttaa sen vastauksessa ja jonottaa palvelimen muutosta. Uusi salasana lähetetään myös sähköpostilla. Palvelin on otettava käyttöön. Pyyntöelintä ei tarvita.

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

Vastauksen tilakoodit

200 Toimintaa jonotettiin
400 Palvelinta ei ole vielä käytössä
404 Ei löytynyt, tai se kuuluu toiselle tilille
SAADA JÄLKEEN /api/v1/servers/{uuid}/rdns/

Käänteinen DNS (PTR)

GET listaa palvelimen jokaisen IPv4- ja IPv6-osoitteen käänteisen DNS-palvelimen nimen. POST asettaa sen yhdelle osoitteelle. Tyhjän isännän nimen lähettäminen palauttaa osoitteen oletuksena käänteiseen DNS-nimeensä.

Vaadittu lupa: servers:update

Pyynnön rungon parametrit (POST)

Muuttuja Tyyppi Pakollinen Tavaran kuvaus
ip string Kyllä Tähän palvelimeen osoitettu IPv4- tai IPv6-osoite
hostname string Ei tarvitse. PTR-isäntänimi. Jätä tyhjä nollattavaksi oletukseen.
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-vastaus:

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

Vastauksen tilakoodit

400 ip puuttuu, tai isäntänimi ei voitu asettaa
404 IP-osoitetta ei ole annettu tälle palvelimelle
JÄLKEEN /api/v1/servers/{uuid}/exec/

Suorita komentoa palvelimella

Suorittaa komentotulkin palvelimen sisällä QEMU-vierastagentin kautta ja odottaa sen valmistumista. Palvelin on otettava käyttöön ja käynnissä, ja qemu-vierasagentti on asennettava ja käytettävä vieraassa.

Vaadittu lupa: servers:exec

Pyynnön rungon parametrit

Muuttuja Tyyppi Pakollinen Tavaran kuvaus
command string Kyllä Komentorivillä ajetaan /bin/sh -c, enintään 2000 merkkiä
timeout integer Ei tarvitse. Sekunteja, jotka odottavat komentoa, 1-300 (oletus 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
}

Jos komento on käynnissä, kun aikalisä loppuu, vastaus on asetettu oikeaan ja ulostulokoodi nollaan.

Vastauksen tilakoodit

200 Komento päättyi tai aikakatkaistiin
400 Palvelin ei käytössä tai ei käynnissä, tai virheelliset parametrit
409 QEMU-vierasagentti ei ole käynnissä palvelimella
503 Yritä uudelleen Retry-after-otsikon jälkeen.
POISTAA /api/v1/servers/{uuid}/

Poista palvelin

Odottaa palvelimen pysyvää poistoa varten. Palvelin katoaa listalta välittömästi eikä sitä voi palauttaa.

Vaadittu lupa: 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"
}

Vastauksen tilakoodit

202 Hyväksyttiin: pyyntö jonotettiin
404 Ei löytynyt, tai se kuuluu toiselle tilille
SAADA JÄLKEEN /api/v1/ssh-keys/

SSH-avaimet

Tallenna julkiset SSH-avaimet tilillesi ja syötä niiden uuid-avaimet ssh_key_uuid-näppäimiksi, kun luot palvelimen. GET-listat näppäimiä (25 sivulla); POST lisää yhden.

Vaadittu lupa: ssh-keys:list (GET), ssh-keys:create (POST)

Pyynnön rungon parametrit (POST)

Muuttuja Tyyppi Pakollinen Tavaran kuvaus
name string Kyllä Nimi, jolla avain tunnistetaan, jopa 100 merkkiä
public_key string Kyllä Julkinen avain OpenSSH-muodossa, esimerkiksi id_ed25519.pub

Esimerkkipyyntö

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

Esimerkkivastaus

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

Vastauskentät

Kenttä Tyyppi Tavaran kuvaus
id, uuid integer, string Avaintunnisteet. Käytä uuid-tunnistetta ssh_key_uuid-osoitteissa ja alla olevassa URL-osoitteessa; id toimii ssh_key_id-osoitteissa.
fingerprint string MD5-sormenjälki avaimesta, jonka alusta laskee
last_used_at datetime | null Kun avain on viimeksi asennettu uudelle palvelimelle

Vastauksen tilakoodit

201 Avain lisätty
400 Nimen puuttuminen tai julkinen avain ei ole pätevä julkinen avain SSH:lle
SAADA POISTAA /api/v1/ssh-keys/{uuid}/

Ota tai poista SSH-avain

GET palauttaa yhden avaimen yllä olevilla kentillä. DELETE poistaa sen tililtäsi ja palauttaa 204 ilman ruumista. Avaimen poistaminen ei poista sitä jo asennetuilta palvelimilta. Avaimia ei voi muokata: poistaa ja lisätä uudelleen.

Vaadittu lupa: 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"

Varmuuskopiot ja Snapshotit

Varmuuskopion tai tilannekuvan luominen on myös palvelimen toiminto: