Clanker Test DocsGuidesAPI referenceAGENTS.mdllms.txtllms-full.txtopenapi.json

API reference

HTTP API for every Clanker Test web action. Create a hashed API key on the website (Security settings), then send `Authorization: Bearer ctk_…` or `X-API-Key`. The web app does not call this API; it uses the same Effect services directly. MCP and `/agent/v1` use agent OAuth access tokens, not API keys.

Servers: https://api.clankertest.com (Production) · https://api.qa.clankertest.net (QA) · http://127.0.0.1:3200 (Localhost)

Auth: hashed user API key as Authorization: Bearer ctk_… or X-API-Key. Create keys on the website Security settings. MCP uses agent OAuth, not API keys.

Machine-readable: openapi.json, llms.txt, llms-full.txt, index.json, AGENTS.md.

MethodPathSummaryAuth
GET/healthLivenessnone
GET/v1/api-keysList API keysbearer
POST/v1/api-keysCreate API keybearer
POST/v1/api-keys/{apiKeyId}/revokeRevoke API keybearer
GET/v1/meGet profilebearer
PATCH/v1/meUpdate profile namebearer
POST/v1/me/photoUpload profile photobearer
GET/v1/me/preferencesGet notification preferencesbearer
PATCH/v1/me/preferencesUpdate notification preferencesbearer
GET/v1/me/homeHome destination pathbearer
GET/v1/me/onboardingOnboarding workspacebearer
GET/v1/workspacesList membershipsbearer
POST/v1/workspacesCreate workspacebearer
GET/v1/slugs/{slug}Check whether a workspace slug is availablebearer
GET/v1/workspaces/{slug}Get workspacebearer
PATCH/v1/workspaces/{slug}Update workspacebearer
GET/v1/workspaces/{slug}/slug-availabilityCheck a candidate slug against this workspacebearer
POST/v1/workspaces/{slug}/iconUpload workspace iconbearer
GET/v1/workspaces/{slug}/membersList membersbearer
PATCH/v1/workspaces/{slug}/members/{userId}Change member rolebearer
DELETE/v1/workspaces/{slug}/members/{userId}Remove memberbearer
GET/v1/workspaces/{slug}/invitesList invitesbearer
POST/v1/workspaces/{slug}/invitesCreate invitesbearer
POST/v1/workspaces/{slug}/invites/{inviteId}/revokeRevoke invitebearer
PATCH/v1/workspaces/{slug}/invites/{inviteId}Change invite rolebearer
POST/v1/workspaces/{slug}/invites/{inviteId}/resendResend invitebearer
GET/v1/workspaces/{slug}/teamsList teamsbearer
POST/v1/workspaces/{slug}/teamsCreate teambearer
PATCH/v1/workspaces/{slug}/teams/{teamId}Rename teambearer
DELETE/v1/workspaces/{slug}/teams/{teamId}Delete teambearer
PUT/v1/workspaces/{slug}/teams/{teamId}/membersSet team membersbearer
GET/v1/workspaces/{slug}/productsList productsbearer
POST/v1/workspaces/{slug}/productsCreate productbearer
PATCH/v1/workspaces/{slug}/products/{productId}Update productbearer
DELETE/v1/workspaces/{slug}/products/{productId}Delete productbearer
PUT/v1/workspaces/{slug}/products/{productId}/environments/{environmentId}Set product environmentbearer
DELETE/v1/workspaces/{slug}/products/{productId}/environments/{environmentId}Remove product environmentbearer
GET/v1/workspaces/{slug}/environmentsList environmentsbearer
POST/v1/workspaces/{slug}/environmentsCreate environmentbearer
PATCH/v1/workspaces/{slug}/environments/{environmentId}Update environmentbearer
DELETE/v1/workspaces/{slug}/environments/{environmentId}Delete environmentbearer
GET/v1/workspaces/{slug}/eventsList eventsbearer
GET/v1/workspaces/{slug}/peoplePeople page databearer
GET/v1/workspaces/{slug}/seedsSeed workspacesbearer
POST/v1/seeds/{workspaceId}/joinJoin seed workspacebearer
GET/v1/workspaces/{slug}/integrationsAgent authorizationsbearer
POST/v1/workspaces/{slug}/integrations/{authorizationId}/revokeRevoke agent authorizationbearer
POST/v1/invites/{token}/acceptAccept invitebearer
GET/v1/invites/{token}Get invite by tokennone