Get started
Authentication and scopes
How the /v1 API checks a Bearer credential, the two key types, and the scope each route needs.
Updated
Browse the developer docs
Steps
- Send every request with
Authorization: Bearer <token>. The wordBeareris not case sensitive. A missing or malformed header returns 401unauthorized. - Use an API key (prefix
ck_live_) for an integration that acts for the academy. Use a personal access token (prefixck_pat_) when the call should act as one person. You create both in the Create API key dialog by choosing API key or Personal access token under Kind. - A key is its prefix followed by 48 lowercase hex characters. A token that starts with
ck_but does not have exactly this shape is rejected with 401 before any lookup. - Grant only the scopes the integration needs. The scopes are
students:read,students:write,events:read,webhooks:read,webhooks:write,mcp:read,mcp:writeandmcp:admin. - Match scopes to routes:
GET /needsv1/ students students:read.POST /andv1/ students POST /needv1/ students/ {id}/ notes students:write.GET /needsv1/ events events:read.GET /needsv1/ webhook_endpoints/ {id}/ deliveries webhooks:read.POST /,v1/ webhook_endpoints DELETE /andv1/ webhook_endpoints/ {id} POST /needv1/ webhook_deliveries/ {id}/ replay webhooks:write. - If the credential lacks the scope a route needs, the API returns 403
forbiddenwith the message"this credential is missing the required scope: <scope>".
Notes
- The
mcp:read,mcp:writeandmcp:adminscopes can only be given to a personal access token. Trying to add them to an API key fails. - The academy is taken from the key itself, never from the URL, headers or body. A key can only reach its own academy’s data.
- Unknown, revoked and expired keys all return the same 401
"invalid credential". - Creating and revoking keys needs the integration write permission. Viewing the key list needs integration read. Owner and admin roles have both by default.
- The API also accepts OAuth2 access tokens issued to an installed OAuth app. Their scopes are the token’s scopes that the installation still grants. A revoked installation stops its tokens at once.
Related guides
- Quickstart: create an API key and make your first callCreate a scoped API key in the Developer console, then call the ChessCore REST API under
/api/with av1 Bearertoken. - Errors and request IDsThe shared error shape, every error type with its HTTP status, and the
X-Request-Idheader. - MCP server for AI agentsConnect Claude, Cursor or another MCP client to
/api/with a personal access token. The agent acts as you through three tools.mcp
Still need help?
Email hello@chesscore.io. Using ChessCore day to day? Visit the Help centre.