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/v1Authentication
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/orgsThe 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": "..."}| Status | Codes |
|---|---|
400 | InvalidRequest: the message names the field |
401 | Unauthenticated |
403 | AccessDenied (names the action and resource), AccountSuspended |
404 | NotFound |
409 | Conflict, QuotaExceeded, InsufficientBalance |
422 | IdempotencyKeyReused |
429 | RateLimited: back off and retry |