Authentication
Self-serve REST, SDK, and CLI requests use a COLA Cloud API key in theX-API-Key header:
SDKs and CLI
Both SDKs require the API key as a constructor argument:COLACLOUD_API_KEY environment variable or a persistent config file:
Quotas
Usage is metered by detail views (single-record lookups) and list records (items returned by list/search endpoints). Quotas are per-user across all channels (web app, API, SDKs, CLI, and MCP).
See the live pricing page for current prices and plan terms. Upgrade your tier at Dashboard > API Keys > Upgrade.
Quota Headers
Every response includes these headers:
When you exceed a quota, the API returns
429 Too Many Requests with an upgrade_url in the response body. Per-minute burst limits return a Retry-After header.
Pagination
List endpoints supportpage and per_page parameters:
Responses include pagination metadata:
Error Responses
Recovering without repeated failures
Inspecterror.code, not HTTP 429 alone. A short wait does not replenish a
monthly allowance. Persist a quota pause across scheduled jobs and workers;
X-Quota-Reset is a Unix timestamp in seconds for the next UTC calendar month.
For burst throttling, coordinate calls that share a credential, wait at least
Retry-After seconds, and resume sequentially with a bounded retry budget.
GET /usage also uses the burst budget, so do not poll it immediately after a
burst rejection. A 400 validation error needs a corrected request, not backoff.
COLA list sorting
ForGET /api/v1/colas, omit sort to use newest approvals first, or use one of
approval_date_desc, approval_date_asc, brand_name_asc, brand_name_desc,
or relevance_desc. Unsupported values return 400 invalid_request with
error.details.valid_values. Do not keep sending the unchanged request.
Ascending approval-date and brand-name sorts require page pagination without
cursor. For incremental cursor traversal, use the default sort and the returned
cursor; restart pagination when changing sort or filters.
