All developer pages

Developers

API v1

A REST API over the same model the console uses: 47 operations in 18 groups, described by an OpenAPI 3.1 document that is generated from the API's own route table.

Base URL and authentication

Send requests to your console's address under /api/v1/, for example https://api.ringura.com/api/v1/contacts. Accounts on a reseller's own console domain use that domain instead.

Authenticate every request with a bearer token: Authorization: Bearer cck_.... An administrator whose session has passed MFA creates tokens in the console's Developer page, each with the scopes it needs and a limit of requests a minute. A token in a URL is never accepted, and your account's API allow-list of IP addresses applies.

Each token belongs to one account, and every request sees only that account's data.

Conventions

Idempotency

Writes accept an Idempotency-Key header (8 to 100 letters, digits or _ . : -). A retry with the same key and body gets the first answer with Idempotent-Replayed: true; the same key with another body gets 422. A failed write leaves no key behind, so it can be retried.

Rate limits

Each token has a limit of requests a minute. Every answer carries RateLimit-Limit and RateLimit-Remaining; over the limit, the answer is 429 with Retry-After in seconds.

Times, money and phone numbers

Times are ISO 8601 in UTC. Amounts are integers in minor units (cents) with a currency. Phone numbers are E.164, such as +441632960000.

Errors

Errors are JSON: { "error": "code", "message": "..." }, with problems listing each field that did not fit on a 400. The statuses the API uses:

Errors
StatusMeaning
400The request is malformed: see problems.
401No valid bearer token.
403The token lacks the scope, or the address is not allowed.
404No such object in your tenant.
409The object is not in a state that allows this.
422The Idempotency-Key was used with another request.
429Rate limit: wait Retry-After seconds.

API reference

Every operation with its parameters, request and response fields and an example. The same content as the OpenAPI document.