Mint a short-lived realtime connection ticket
Issues a single-use ticket, valid for 30 seconds, that the browser exchanges for a realtime connection to this workspace. Requires a Clerk session with a synced profile plus `workspace:read`; API keys cannot acquire a realtime identity. Deliberately not idempotent, because replaying the response would hand back a ticket the gateway has already consumed, and it returns an upstream error when the ticket store is unavailable.
Authorization
apiKey Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
In: header
Path Parameters
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/workspaces/string/realtime-ticket"{ "data": { "ticket": "string", "expiresAt": "string" }}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}Seed a workspace from an approved AI draft plan
Seeds the workspace from the draft plan the user reviewed, and possibly edited, in the describe-your-work onboarding flow, re-normalizing the plan on the server before anything is created. Needs the same `databases:write` and `surfaces:write` permissions as applying a fixed starter. A plan that normalizes to nothing left to build is rejected as a validation error.
Read one workspace
Returns the workspace's name, slug, branding, and the caller's role and resolved permission set. Requires `workspace:read`, so a caller without membership gets a permission error rather than the record.