Skip to content

API reference

Everything the console and the CLI do goes through this JSON API: 223 endpoints, version1. The pages here are generated from its OpenAPI schema, which you can also download or explore in the interactive explorer.

Base URL

https://cloud.tebibhost.com/api/v1

Authentication

Send an access key (or a role session key) as a bearer token: the key ID and the secret joined by a dot.

curl -H "Authorization: Bearer $TEBIB_ACCESS_KEY_ID.$TEBIB_SECRET_ACCESS_KEY" \
https://cloud.tebibhost.com/api/v1/orgs

The console uses a browser session instead. A few endpoints (health, the public price list, exchange rates, signup configuration) need no sign-in.

Permissions

Every endpoint shows the IAM action it authorizes, such as compute:CreateVM. A caller needs a policy allowing it on the resource (see IAM policies); otherwise the answer is 403 naming the action and the resource. Resources you may not see answer404, as if they didn't exist. Lists leave out the items you may not see.

Asynchronous changes

Creates, deletes and changes to running resources answer 202 Accepted with the resource in its new desired state. The work continues in the background: poll GET on the resource until itsstate settles (the CLI's --wait does this).

Idempotency

Send an Idempotency-Key header (up to 255 characters, for example a UUID) on creates. Repeating the same request with the same key within 24 hours returns the original result instead of creating a second resource. Reusing a key for a different request answers 422.

Pagination

Lists return {"items": [...], "next_cursor": "..."}. Pass limit (default 50, at most 200) and, for the next page, cursor=<next_cursor>. Stop when next_cursor isnull. A page can be shorter than the limit when items you may not see were left out.

Errors

Errors are JSON with a stable code, a readable message and a request_id:

{
"code": "QuotaExceeded",
"message": "...",
"request_id": "..."
}
StatusCodes
400InvalidRequest: the message names the field
401Unauthenticated
403AccessDenied (names the action and resource), AccountSuspended
404NotFound
409Conflict, QuotaExceeded, InsufficientBalance
422IdempotencyKeyReused
429RateLimited: back off and retry

Endpoints

GroupEndpoints
Activity7
Assistant3
Billing13
Compute39
DNS14
General1
IAM39
Identity26
Load balancers14
Network30
Object storage12
Organizations and projects7
Overview1
Quotas2
Search1
Signup and verification5
Support6
Usage1
Waitlist2