Skip to content

Servere-API ​

Alle endepunktene under krever Bearer-token-autentisering. Erstatt {id} med den numeriske server-IDen som GET /servers returnerer.

List og inspiser ​

GET /servers ​

List alle servere på kontoen.

bash
curl https://api.gigahost.no/api/v0/servers \
  -H "Authorization: Bearer $TOKEN"

Responsen inneholder et array av servere. Hver oppføring har ID, servernavn, primære IP-er, status, pakke, datasenter og OS-info.

GET /servers/{id} ​

Full serverdetalj: CPU, lagring, subnett, BGP-sesjoner, ordrehistorikk, angrepslogger, båndbreddebruk og IPMI-sesjonsdetaljer.

PUT /servers/{id}/name ​

Gi serveren nytt navn.

FeltTypeBeskrivelse
namestringNytt beskrivende navn. Kosmetisk, endrer ikke servernavnet i OS-et.
bash
curl -X PUT https://api.gigahost.no/api/v0/servers/14546/name \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "my-renamed-server"}'

Strømstyring ​

GET /servers/{id}/powerstate
GET /servers/{id}/on
GET /servers/{id}/off
GET /servers/{id}/reboot

on, off og reboot returnerer 200 med tom data når handlingen ble sendt, 400 om den feilet, og 403 mens serveren er suspendert. De er GET-forespørsler, men endrer serveren, så en API-nøkkel eller bruker med bare lesetilgang til servere får 403 You do not have permission for this operation.

bash
curl https://api.gigahost.no/api/v0/servers/14546/reboot \
  -H "Authorization: Bearer $TOKEN"

GET /servers/{id}/powerstate rapporterer tilstanden i meta:

json
{
  "meta": {
    "status": 200,
    "status_message": "200 OK",
    "powerstate": true,
    "timestamp": 1779843600
  },
  "data": []
}

Konsoll (IPMI / KVM) ​

POST /servers/{id}/ipmi ​

Opprett en midlertidig IPMI-sesjon (utløper etter 3 timer som standard). Kun dedikerte servere.

FeltTypeBeskrivelse
aclstringSemikolonseparerte IP-er / CIDR-er som skal nå BMC-en.
bash
curl -X POST https://api.gigahost.no/api/v0/servers/3948/ipmi \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"acl": "203.0.113.10;198.51.100.0/24"}'

Respons:

json
{
  "data": {
    "kvm_ip": "198.51.100.99",
    "username": "<generated>",
    "password": "<generated>"
  }
}

Påloggingsinformasjonen returneres én gang. Avslutt sesjonen og opprett en ny om du mister den.

Snapshots ​

GET /servers/{id}/snapshots ​

List snapshotene for serveren. Kun virtuelle servere.

POST /servers/{id}/snapshot ​

FeltTypeBeskrivelse
namestringBeskrivende navn.

DELETE /servers/{id}/snapshot/{snap_id} ​

Slett et snapshot.

Båndbreddegrafer ​

GET /servers/{id}/graphs/{type} ​

{type} er en av port_bits, port_percent, port_errors eller port_upkts. Alle andre verdier faller tilbake til port_bits.

bash
curl https://api.gigahost.no/api/v0/servers/14546/graphs/port_bits \
  -H "Authorization: Bearer $TOKEN"

Returnerer fire PNG-grafer som base64-strenger: graph_day, graph_week, graph_month og graph_year i data. Når ingen graf er tilgjengelig, er responsen 201 med tom data.

IP-adresser og reverse DNS ​

PUT /servers/{id}/reverse ​

Oppdater en reverse-DNS-post.

Enkeltadresse:

FeltTypeBeskrivelse
ip_idnumberID-en til IPv4-adressen.
v4v6stringipv4 for PTR-en til IPv4-adressen, ipv6 for IPv6-adressen som hører til den. Påkrevd; uten den returnerer kallet 400.
dnsstringFQDN adressen skal slås opp til (server.example.com).

IPv6, rutet /48 (deleger navneservere):

FeltTypeBeskrivelse
sub_idnumberSubnett-ID.
dnsstringVertsnavnet til navneserveren (ns1.gigahost.no).
dns2 … dns5stringValgfri. Flere navneservere.

En verdi som ikke er et gyldig vertsnavn, gir 400 Submitted data is not a valid hostname or NS.

Se Sett opp reverse DNS (PTR) på rutet /48 IPv6 for hele flyten.

POST /servers/{id}/ipv4 ​

Bestill flere IPv4-adresser.

FeltTypeBeskrivelse
num_ipsnumberAntall adresser som skal bestilles.
ip_typestringl2 (lag 2, ikke rutet) eller l3 (lag 3, rutet).
bash
curl -X POST https://api.gigahost.no/api/v0/servers/14546/ipv4 \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"num_ips": 1, "ip_type": "l2"}'

Antall ekstra IP-er per server har en grense. Den er 5 med mindre support har satt en annen grense for kontoen din. Over grensen returnerer kallet 400 Max number of additional IPs reached. Contact support.; opprett en supportsak hvis du trenger flere.

ISO-håndtering (KVM) ​

GET /servers/{id}/isos ​

List ISO-filene på kontoen. De kan monteres på alle KVM-serverne på kontoen.

POST /servers/{id}/iso ​

Hent en ISO-fil fra en URL. Kontoen kan ha maks 3 ISO-filer.

FeltTypeBeskrivelse
urlstringURL der stien slutter på .iso. Den må peke til en offentlig adresse.

Returnerer 200 ISO is being uploaded. Feil (400): URL is not valid., URL not an ISO., URL must point to a public address on the internet., Max number reached (3).

POST /servers/{id}/mount ​

Monter en ISO-fil som CD-stasjon og start serveren på nytt fra den.

FeltTypeBeskrivelse
iso_idnumberISO-ID fra GET /servers/{id}/isos.

POST /servers/{id}/dismount ​

Fjern ISO-filen og start serveren på nytt fra disken.

DELETE /servers/{id}/iso/{iso_id} ​

Slett en ISO-fil. En montert ISO-fil kan ikke slettes: 400 ISO is currently mounted.

Oppgrader pakke (KVM VPS) ​

GET /servers/{id}/upgrade ​

List pakkene serveren kan oppgraderes til.

POST /servers/{id}/upgrade ​

FeltTypeBeskrivelse
product_idnumberMålpakken, en product_id fra GET /servers/{id}/upgrade.

Andre servere enn KVM-skyservere får 400 Upgrade is only available for cloud servers.

Installer OS på nytt ​

GET /reinstall/distro ​

List tilgjengelige Linux-distribusjoner for reinstallasjon.

GET /reinstall/distro/{id} ​

List OS-utgivelser for en gitt distribusjon.

GET /reinstall/apps ​

List ett-klikks appene. En app installeres ved å sende os_id-en dens til POST /servers/{id}/reinstall eller POST /deploy/servers, som for et operativsystem. Apper installeres oppå Debian, på KVM-servere og dedikerte servere.

Hver oppføring har os_id, os_name, os_logo (data-URI), os_app_description og os_app_description_no, os_app_category, os_app_note og os_app_note_no, os_minram og os_min_disk (GB, 0 for ingen minimum), os_dedicated_only, os_app_domain (0 uten domenefelt, 1 valgfritt, 2 anbefalt) og os_app_version (versjonen som sist ble testet).

POST /servers/{id}/reinstall ​

Start en reinstallasjon.

FeltTypeBeskrivelse
os_idnumberOS-ID (fra /reinstall/distro/{id}).
languagestringOS-språk (f.eks. en_US, nb_NO).
keyboardstringTastaturoppsett (f.eks. no, en).
timezonestringNavn fra TZ-databasen (f.eks. Europe/Oslo).
hostnamestringFullstendig vertsnavn (web-01.example.com). Alt annet erstattes med serverens primære IPv4-adresse.
ssh_keysarrayValgfri. ID-er for SSH-nøkler på kontoen (se sshkeys i GET /account) som skal installeres for root, maks 10.
firstbootstringValgfri. Skript som kjøres én gang på det installerte systemet ved første oppstart, URL-kodet. Med en app kjøres det etter appen.
app_domainstringValgfri, bare for apper. Domene for appen; det får et Let's Encrypt-sertifikat hvis det allerede peker til serveren.
app_emailstringValgfri, bare for apper. E-postadresse for varsler om sertifikatet.
bash
curl -X POST https://api.gigahost.no/api/v0/servers/14546/reinstall \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "os_id": 12,
    "language": "en_US",
    "keyboard": "no",
    "timezone": "Europe/Oslo",
    "hostname": "web-prod-01.example.com",
    "ssh_keys": [1, 2]
  }'

Respons:

json
{
  "meta": {
    "status": 200,
    "status_message": "200 OK",
    "message": "Server install has been initiated.",
    "reboot": true,
    "root_passwd": "<generated>",
    "sshkey": false
  },
  "data": []
}

Resultatfeltene ligger i meta, ikke data. Root-passordet returneres én gang. Når en SSH-nøkkel ble installert, er sshkey true og root_passwd tom.

Når os_id er en app, inneholder meta også app_run_id og app (name, url, admin_user, admin_password). Ta vare på innloggingen til appen: passordet er bare tilgjengelig til appen er ferdig installert.

Feil for apper:

Statusmeta.message
400Apps can only be installed on KVM servers and dedicated servers.
401This app is not available right now.
401This app is only available on dedicated servers.
401This app needs at least N GB of memory. / This app needs at least N GB of disk.
401The domain for the app is not a valid domain name.
401The email address for the app is not valid.

GET /servers/{id}/install ​

Følg en OS-installasjon (reinstallasjon eller ny server). Returnerer 404 The server is not being installed. når ingenting installeres, også ved oppstart i rescuemodus.

json
{
  "data": {
    "step": "packages",
    "progress": 71,
    "done": 312,
    "total": 540,
    "date_started": 1779843600,
    "step_started": 1779844200,
    "stalled": false,
    "failed": false
  }
}

step er en av waiting, boot, loader, starting, disks, os, packages, configure, post eller failed. progress går fra 0 til 100. done og total teller installerte pakker når installasjonsprogrammet rapporterer dem, ellers er de null. stalled blir true når ett steg har tatt mye lengre tid enn vanlig (minst 30 minutter); kontakt support hvis det blir stående.

GET /servers/{id}/app ​

Den siste ett-klikks appen på serveren. Returnerer 404 No app has been installed on this server. hvis det ikke finnes noen.

data inneholder app_run_id, os_id, name, logo, status (pending, running, completed, failed, timeout eller aborted), step, progress, domain, url, version, admin_user, admin_password, note, note_no, date_created og date_completed. admin_password er bare fylt ut mens appen er pending eller running, og aldri ved bare lesetilgang. Når appen er installert, ligger innloggingen i /root/app-info.txt på serveren.

Gigahost Docs

This site is currently in development.
Enter the password to continue.