Workshop API and MCP Surfaces
OpenAPI contract for Workshop HTTP API, public media routes, bootstrap/OAuth endpoints, direct MCP HTTP gateway routes, and the streamable HTTP MCP transport. Generated from the current server route surface on 2026-07-09.
Authentication
ApiKeyAuth
Type: API Key (in header)
BearerAuth
Type: HTTP bearer
OAuth2ClientCredentials
Type: OAuth 2.0
Public
/healthPublic health check
Responses
Public Media
/assets/{id}Read uploaded asset media by ID
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
id* | path | string | — |
Responses
/sources/{id}/mediaRead source media by ID
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
id* | path | string | — |
Responses
/sources/{id}/thumbnails/{thumbnailId}Read generated source thumbnail
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
id* | path | string | — |
thumbnailId* | path | string | — |
Responses
OAuth
/.well-known/oauth-protected-resourceOAuth protected-resource metadata
Responses
/.well-known/oauth-protected-resource/{resourcePath}OAuth protected-resource metadata for a resource path
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
resourcePath* | path | string | — |
Responses
/.well-known/oauth-authorization-serverOAuth authorization-server metadata
Responses
/oauth/tokenIssue an OAuth client-credentials bearer token
Request Body
Content-Type: application/x-www-form-urlencoded
Responses
Bootstrap
/bootstrap/statusRead bootstrap availability and mode
Responses
/bootstrap/orgsProvision an org and initial API principal
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-bootstrap-secret | header | string | Required when bootstrap secret mode is enabled. |
Request Body
Content-Type: application/json
Responses
Health
/api/healthAuthenticated health and capability status
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Responses
Principals
/api/principalsList API principals for current org
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Responses
/api/principalsCreate an API principal
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/session-tokenMint a short-lived Workshop bearer token
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/principals/{id}Disable an API principal
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Responses
Compile
/api/compileCompile .ws source into a RenderGraph
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/compile/fileCompile uploaded .ws file
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: multipart/form-data
Responses
/api/validateValidate a RenderGraph
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
Render
/api/renderQueue render from .ws source or RenderGraph
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
x-render-engine | header | string | Optional render engine override. |
x-idempotency-key | header | string | Optional idempotency key for render enqueue requests. |
Request Body
Content-Type: application/json
Responses
/api/render/fileQueue render from uploaded .ws file
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
x-render-engine | header | string | Optional render engine override. |
x-idempotency-key | header | string | Optional idempotency key for render enqueue requests. |
Request Body
Content-Type: multipart/form-data
Responses
/api/render/{id}Get render job status
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Responses
/api/video/{id}Download completed rendered MP4
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Responses
/api/queueRead render queue status
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Responses
Assets
/api/assetsUpload one or more media/font/document assets
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: multipart/form-data
Responses
Sources
/api/sources/uploadUpload a long-form source video or audio file
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: multipart/form-data
Responses
/api/sourcesList sources
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
tag | query | string | — |
origin | query | string | — |
status | query | string | — |
sortBy | query | string | — |
order | query | string | — |
limit | query | integer | — |
offset | query | integer | — |
Responses
/api/sourcesRegister a source from asset ID or URL
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/sources/{id}Get source
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Responses
/api/sources/{id}Delete source
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Responses
/api/sources/{id}/preprocessGet source preprocessing status
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Responses
/api/sources/{id}/preprocessStart source preprocessing
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Responses
Clips
/api/clips/candidatesGenerate clip candidates from a source
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/clips/candidates/refineRefine a clip candidate or selection window
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/clips/draftCreate an in-memory .ws clip draft
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/clips/documentsCreate and persist a clip document
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/clips/documents/{id}/redraftRedraft an existing clip document
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Request Body
Content-Type: application/json
Responses
/api/clips/documents/{id}/exportExport clip document as .ws text or JSON
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
format | query | string | — |
includeVersions | query | boolean | — |
Responses
Templates
/api/templatesList templates
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Responses
/api/templatesRegister a template
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/templates/{name}Get template
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
name* | path | string | — |
Responses
/api/templates/{name}Update template
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
name* | path | string | — |
Request Body
Content-Type: application/json
Responses
/api/templates/{name}Delete template
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
name* | path | string | — |
Responses
/api/render/templateRender from template variables
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
x-render-engine | header | string | Optional render engine override. |
x-idempotency-key | header | string | Optional idempotency key for render enqueue requests. |
Request Body
Content-Type: application/json
Responses
/api/render/batchQueue a batch render from template variables
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/batch/{id}Get batch status
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Responses
Themes
/api/themesList ThemePacks
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Responses
/api/themesRegister a ThemePack
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/themes/{name}Get ThemePack
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
name* | path | string | — |
Responses
/api/themes/{name}Update ThemePack
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
name* | path | string | — |
Request Body
Content-Type: application/json
Responses
/api/themes/{name}Delete ThemePack
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
name* | path | string | — |
Responses
/api/themes/validateValidate ThemePack without saving
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
Moods
/api/moodsList built-in moods and aliases
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Responses
/api/moods/{name}Get mood profile
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
name* | path | string | — |
Responses
Documents
/api/documentsList documents
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
tag | query | string | — |
sortBy | query | string | — |
order | query | string | — |
limit | query | integer | — |
offset | query | integer | — |
Responses
/api/documentsCreate document
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/documents/{id}Get document
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Responses
/api/documents/{id}Update document
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Request Body
Content-Type: application/json
Responses
/api/documents/{id}Delete document
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Responses
/api/documents/{id}/versionsList document versions
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Responses
/api/documents/{id}/renderRender document
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
x-render-engine | header | string | Optional render engine override. |
x-idempotency-key | header | string | Optional idempotency key for render enqueue requests. |
Request Body
Content-Type: application/json
Responses
/api/documents/{id}/editApply structured edits to document
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Request Body
Content-Type: application/json
Responses
/api/documents/{id}/lockGet document lock status
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Responses
/api/documents/{id}/lockAcquire document edit lock
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Request Body
Content-Type: application/json
Responses
/api/documents/{id}/lockRelease document edit lock
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
x-lock-token* | header | string | — |
Responses
/api/documents/{id}/annotationsList document annotations
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
type | query | string | — |
Responses
/api/documents/{id}/annotationsAdd document annotation
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Request Body
Content-Type: application/json
Responses
/api/documents/{id}/annotations/{annotationId}Delete document annotation
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
annotationId* | path | string | — |
Responses
Authoring
/api/prompt/generateGenerate external video model scene prompts from .ws
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/authorAuthor .ws from natural language prompt
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
MCP Transport
/api/mcpMCP streamable HTTP transport GET
Requires API key or bearer token. Demo authentication is rejected for remote MCP sessions.
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
mcp-session-id | header | string | — |
Responses
/api/mcpMCP streamable HTTP transport POST
Use JSON-RPC initialize, tools/list, and tools/call over this endpoint.
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
mcp-session-id | header | string | — |
Request Body
Content-Type: application/json
Responses
/api/mcpClose MCP streamable HTTP session
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
mcp-session-id | header | string | — |
Responses
MCP HTTP Gateway
/api/mcp/manifestGet MCP HTTP gateway manifest
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Responses
/api/mcp/toolsList HTTP gateway tool definitions
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Responses
/api/mcp/compileMCP wrapper: compile .ws
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/mcp/sceneMCP wrapper: inspect a RenderGraph scene
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/mcp/tokensMCP wrapper: extract mood tokens and film metadata
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/mcp/moodsMCP wrapper: list moods
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Responses
/api/mcp/templatesMCP wrapper: list templates
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Responses
/api/mcp/promptMCP wrapper: generate external video prompts
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/mcp/documents/saveMCP wrapper: create or update document
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
Request Body
Content-Type: application/json
Responses
/api/mcp/documentsMCP wrapper: list documents
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
tag | query | string | — |
sortBy | query | string | — |
order | query | string | — |
limit | query | integer | — |
offset | query | integer | — |
Responses
/api/mcp/documents/{id}MCP wrapper: get document
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |
Responses
/api/mcp/documents/{id}MCP wrapper: delete document
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
x-org-id | header | string | Optional org override for API-key authenticated requests when allowed. |
id* | path | string | — |