Alle endepunkter, med scope og felt. Utviklerdokumentasjonen er på engelsk.
Base URL https://api.cloud.clk.no/v1. Authenticate with Authorization: Bearer clk_live_…. Each endpoint shows the scope the key needs. New to the API? Start with the guide.
Machine-readable: OpenAPI 3 spec (JSON), for client generators, Postman and AI agents.
Check who a key belongs to and what it may do.
The organization, key id, scopes and caps (maxServers, maxMonthlyEur) of the key you are calling with.
| Field | Type | |
|---|---|---|
| organizationId | string (uuid) | required |
| keyId | string (uuid) | required |
| scopes | string[] | required |
Create, inspect and control servers. Anything slow (create, start, stop, reboot, delete) returns 202 and a job.
List servers. Filter with one or more label=key:value query parameters.
| Name | In | Type | |
|---|---|---|---|
| label | query | string[] |
| Field | Type | |
|---|---|---|
| id | string | required |
| name | string | required |
| state | string | required |
| ipAddress | string | |
| network | NetworkRef | |
| sshKey | string | |
| size | string | required |
| vcpus | integer | required |
| memoryMb | integer | required |
| diskGb | integer | |
| image | string | required |
| region | string | required |
| labels | map<string, string> | required |
| createdAt | string | required |
Create a server. name, size and labels are required. network and sshKey may be omitted when the organization has exactly one of each; userData is cloud-init. Optional ttl (30m, 2h, 7d; 5 minutes to 30 days) deletes the server automatically when it is over. Optional diskGb sets a larger root disk (extra GB are billed per GB), and publicIpv4: true orders a dedicated public IPv4 attached when the server is ready.
| Field | Type | |
|---|---|---|
| name | string | required |
| size | string | required |
| sshKey | string | |
| network | string | |
| image | string | |
| userData | string | |
| labels | map<string, string> | required |
| Field | Type | |
|---|---|---|
| jobId | string (uuid) | required |
| jobUrl | string | required |
One server, including state, IP address, size and labels.
| Name | In | Type | |
|---|---|---|---|
| id | path | string | required |
| Field | Type | |
|---|---|---|
| id | string | required |
| name | string | required |
| state | string | required |
| ipAddress | string | |
| network | NetworkRef | |
| sshKey | string | |
| size | string | required |
| vcpus | integer | required |
| memoryMb | integer | required |
| diskGb | integer | |
| image | string | required |
| region | string | required |
| labels | map<string, string> | required |
| createdAt | string | required |
Delete a server.
| Name | In | Type | |
|---|---|---|---|
| id | path | string | required |
| Field | Type | |
|---|---|---|
| jobId | string (uuid) | required |
| jobUrl | string | required |
Start a stopped server.
| Name | In | Type | |
|---|---|---|---|
| id | path | string | required |
| Field | Type | |
|---|---|---|
| jobId | string (uuid) | required |
| jobUrl | string | required |
Stop a server.
| Name | In | Type | |
|---|---|---|---|
| id | path | string | required |
| Field | Type | |
|---|---|---|
| jobId | string (uuid) | required |
| jobUrl | string | required |
Reboot a server.
| Name | In | Type | |
|---|---|---|---|
| id | path | string | required |
| Field | Type | |
|---|---|---|
| jobId | string (uuid) | required |
| jobUrl | string | required |
Replace the labels on a server. Labels drive filtering and cost reports (up to 20 per server).
| Name | In | Type | |
|---|---|---|---|
| id | path | string | required |
| Field | Type | |
|---|---|---|
| labels | map<string, string> | required |
What you can create servers from. Sizes include the monthly price (excl. VAT).
Server sizes with vCPU, memory, disk and monthly price.
| Field | Type | |
|---|---|---|
| id | string | required |
| name | string | required |
| vcpus | integer | required |
| memoryMb | integer | required |
| diskGb | integer | required |
| monthlyPrice | Price |
Operating system images (Ubuntu, Debian, Rocky and others) and your own images (custom: true).
| Field | Type | |
|---|---|---|
| id | string | required |
| name | string | required |
| description | string | |
| default | boolean | required |
Make an image from a server, with your tools already installed, and start new servers from it. Body: { "serverId", "name" }. Not enabled yet: answers 404 not_available.
Delete one of your own images.
Regions.
| Field | Type | |
|---|---|---|
| id | string | required |
| name | string | required |
Your private networks.
| Field | Type | |
|---|---|---|
| id | string (uuid) | required |
| name | string | required |
| cidr | string | required |
| state | string | required |
Public keys injected into servers when they are created.
List SSH keys.
| Field | Type | |
|---|---|---|
| name | string | required |
| fingerprint | string | required |
Add a public key. Returns 201.
| Field | Type | |
|---|---|---|
| name | string | required |
| publicKey | string | required |
| Field | Type | |
|---|---|---|
| name | string | required |
| fingerprint | string | required |
Remove a key by name.
| Name | In | Type | |
|---|---|---|---|
| name | path | string | required |
Public IPv4 addresses (billed per month, limited per organization) that you can attach to a server and move between servers, for example for failover. IPv6 is included with every server.
List addresses and the server each is attached to.
Take a new address. Optional network when you have more than one.
Attach the address to a server (1:1). Unassign it first to move it. Body: { "serverId": "…" }.
Detach the address from its server. It stays yours.
Release the address.
Extra disks and backups of them. Not enabled yet: until they are, these endpoints answer 404 not_available.
List volumes.
Create a volume (name, sizeGb, optional labels, serverId to attach, or snapshotId to restore). Returns 201 when ready.
Attach to a server. Body: { "serverId": "…" }.
Detach from its server.
Delete a detached volume and its data.
List snapshots.
Snapshot a volume. Returns 201.
Delete a snapshot.
Every slow operation is a job. Poll it, or subscribe to webhooks instead.
Job status: pending until it ends as succeeded or failed (error holds the reason). When a server job has succeeded, serverId is the server it concerns.
| Name | In | Type | |
|---|---|---|---|
| id | path | string (uuid) | required |
| Field | Type | |
|---|---|---|
| id | string (uuid) | required |
| type | string | required |
| status | string | required |
| error | string | |
| createdAt | string (date-time) |
The same events are available by polling and as signed webhook deliveries.
Events for your organization after a cursor: pass after=<last event id>, optionally type= and limit=.
| Name | In | Type | |
|---|---|---|---|
| after | query | string (uuid) | |
| type | query | string | |
| limit | query | integer |
| Field | Type | |
|---|---|---|
| data | Event[] | required |
| hasMore | boolean | required |
List webhook endpoints.
| Field | Type | |
|---|---|---|
| id | string (uuid) | required |
| url | string | required |
| description | string | |
| eventTypes | string[] | required |
| enabled | boolean | required |
| failingSince | string (date-time) | |
| createdAt | string (date-time) | required |
Register an https endpoint and the event types it wants. The signing secret is returned once.
| Field | Type | |
|---|---|---|
| url | string | required |
| description | string | |
| eventTypes | string[] | required |
| Field | Type | |
|---|---|---|
| endpoint | WebhookEndpoint | required |
| secret | string | required |
Remove an endpoint.
| Name | In | Type | |
|---|---|---|---|
| id | path | string (uuid) | required |
Needs a key with the billing:read scope (the admin role).
Costs for a month. period=2026-10, group_by=label:env or group_by=type.
| Name | In | Type | |
|---|---|---|---|
| period | query | string | |
| group_by | query | string |
| Field | Type | |
|---|---|---|
| period | string | required |
| currency | string | required |
| from | string (date-time) | required |
| to | string (date-time) | required |
| total | number | required |
| forecast | number | |
| resources | CostResource[] | required |
| groups | CostGroup[] | required |
| daily | DayTotal[] | required |
List invoices.
| Field | Type | |
|---|---|---|
| id | string | required |
| number | string | |
| period | string | |
| currency | string | required |
| subtotal | number | required |
| tax | number | required |
| total | number | required |
| status | string | required |
| hostedInvoiceUrl | string | |
| pdfUrl | string | |
| createdAt | string (date-time) | required |
| dueAt | string (date-time) | |
| paidAt | string (date-time) |
One invoice, with links to the hosted page and PDF.
| Name | In | Type | |
|---|---|---|---|
| id | path | string | required |
| Field | Type | |
|---|---|---|
| id | string | required |
| number | string | |
| period | string | |
| currency | string | required |
| subtotal | number | required |
| tax | number | required |
| total | number | required |
| status | string | required |
| hostedInvoiceUrl | string | |
| pdfUrl | string | |
| createdAt | string (date-time) | required |
| dueAt | string (date-time) | |
| paidAt | string (date-time) |