Koo Docs
View as Markdown

Koo API

The Koo REST API gives you programmatic access to everything the console does: accounts, apps, services, deployments, domains, notifications, and observability.

Base URL

text
https://api.koo.io

All requests and responses are JSON with camelCase field names. There is no version prefix — the surface is stable and additive.

Authentication

Every request carries a bearer token:

bash
curl https://api.koo.io/me \  -H "Authorization: Bearer <token>"

Two token kinds work everywhere:

  • Session tokens — the short-lived identity token your signed-in session uses (this is what the console sends).
  • API tokens Coming soonkc_-prefixed machine tokens minted from a service account, for CI and agents. See API tokens & service accounts.

Errors

Errors use one stable envelope:

json
{  "error": {    "code": "quota_exceeded",    "message": "Your plan does not allow another service of this size.",    "details": {},    "requestId": "req_8f3k2m"  }}

The code is stable and machine-matchable; message is human-readable and may change. Include the requestId when you contact support.

Pagination

List endpoints use cursor pagination: pass ?limit= and the cursor from the previous page; responses return { "data": [...], "page": { "nextCursor": "...", "hasMore": true } }.

Idempotency

Creating POST requests accept an Idempotency-Key header — retries with the same key return the original result instead of creating twice.

Explore the reference

Browse the object models and endpoint groups in the sidebar, or start with the Environment object and the Service object.