Skip to main content
/v2 is where new Sleekplan endpoints are built. It sits alongside /v1 rather than replacing it: your existing integration keeps working unchanged, the same API key authenticates both, and you can call either namespace from the same codebase.

Authentication

/v2 accepts Bearer tokens only. Unlike /v1, there is no Basic auth and no ?api_key= query parameter.
Your key identifies the workspace, so no workspace or product ID appears anywhere in a /v2 URL. Get your key from Settings → Developer. A credential that is missing, malformed, or simply not an API key — an admin dashboard session token, for example — is rejected with 401.

Response envelope

Every response carries the same envelope as /v1: a status and a data object.
Errors carry a machine-readable data.key. Branch on that rather than on the message, which is written for humans and may be reworded. A validation error carries data.errors instead of a message, one entry per offending field:
400

Response codes

Success Errors
404 means “not in your workspace”, which is the same answer you get for a resource that belongs to someone else. A /v2 request can never reach another workspace’s data, because the key decides which workspace it runs against.

The one that is not a normal error

A feature your plan does not include answers with HTTP 200, not 402 or 403 — and the key is in data.code, not data.key. Checking only the status code makes this read as a success.
200
Treat status === "error" as the reliable signal, then look at data.key or data.code.

Pagination

List endpoints take page and per_page and return the page alongside the items.
page echoes the page you asked for. Keep requesting the next one while has_more is true — there is no total count, so do not compute a page count.

Rate limits

300 requests per 60 seconds per workspace, independent of plan. Exceeding it returns 429 with "key": "rate_limit".

Stability

Changes to /v2 are additive. We may add endpoints, optional parameters, and response fields, but we do not remove or rename existing ones, change a field’s type, or change a status code.
Write your integration to ignore response fields it does not recognise, and new fields will never break it. There is no version to pin and no upgrade to schedule — a breaking change would arrive as a new namespace, not as a change to this one.

Endpoints

Every /v2 endpoint, with its parameters, request bodies, and responses, is in the reference under Endpoints (v2).

Groups

Companies, accounts, and teams, and who belongs to them.

Documents

Plans, specs, research — the thinking behind your feedback.

API keys

Create, use, and rotate your key.