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.
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.
| Felt | Type | Beskrivelse |
|---|---|---|
name | string | Nytt beskrivende navn. Kosmetisk, endrer ikke servernavnet i OS-et. |
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}/rebooton, 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.
curl https://api.gigahost.no/api/v0/servers/14546/reboot \
-H "Authorization: Bearer $TOKEN"GET /servers/{id}/powerstate rapporterer tilstanden i meta:
{
"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.
| Felt | Type | Beskrivelse |
|---|---|---|
acl | string | Semikolonseparerte IP-er / CIDR-er som skal nå BMC-en. |
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:
{
"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
| Felt | Type | Beskrivelse |
|---|---|---|
name | string | Beskrivende 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.
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:
| Felt | Type | Beskrivelse |
|---|---|---|
ip_id | number | ID-en til IPv4-adressen. |
v4v6 | string | ipv4 for PTR-en til IPv4-adressen, ipv6 for IPv6-adressen som hører til den. Påkrevd; uten den returnerer kallet 400. |
dns | string | FQDN adressen skal slås opp til (server.example.com). |
IPv6, rutet /48 (deleger navneservere):
| Felt | Type | Beskrivelse |
|---|---|---|
sub_id | number | Subnett-ID. |
dns | string | Vertsnavnet til navneserveren (ns1.gigahost.no). |
dns2 … dns5 | string | Valgfri. 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.
| Felt | Type | Beskrivelse |
|---|---|---|
num_ips | number | Antall adresser som skal bestilles. |
ip_type | string | l2 (lag 2, ikke rutet) eller l3 (lag 3, rutet). |
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.
| Felt | Type | Beskrivelse |
|---|---|---|
url | string | URL 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.
| Felt | Type | Beskrivelse |
|---|---|---|
iso_id | number | ISO-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
| Felt | Type | Beskrivelse |
|---|---|---|
product_id | number | Må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.
| Felt | Type | Beskrivelse |
|---|---|---|
os_id | number | OS-ID (fra /reinstall/distro/{id}). |
language | string | OS-språk (f.eks. en_US, nb_NO). |
keyboard | string | Tastaturoppsett (f.eks. no, en). |
timezone | string | Navn fra TZ-databasen (f.eks. Europe/Oslo). |
hostname | string | Fullstendig vertsnavn (web-01.example.com). Alt annet erstattes med serverens primære IPv4-adresse. |
ssh_keys | array | Valgfri. ID-er for SSH-nøkler på kontoen (se sshkeys i GET /account) som skal installeres for root, maks 10. |
firstboot | string | Valgfri. 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_domain | string | Valgfri, bare for apper. Domene for appen; det får et Let's Encrypt-sertifikat hvis det allerede peker til serveren. |
app_email | string | Valgfri, bare for apper. E-postadresse for varsler om sertifikatet. |
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:
{
"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:
| Status | meta.message |
|---|---|
400 | Apps can only be installed on KVM servers and dedicated servers. |
401 | This app is not available right now. |
401 | This app is only available on dedicated servers. |
401 | This app needs at least N GB of memory. / This app needs at least N GB of disk. |
401 | The domain for the app is not a valid domain name. |
401 | The 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.
{
"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.

