Content Studio
Generate video, audio, and infographic content from workspace knowledge graph data via the REST API or MCP tools.
Content Studio converts workspace knowledge-graph data into video, audio, and infographic assets. A generation run accepts a natural-language prompt and one or more output types; the worker fans out asset production in parallel and reports status through the same API endpoint.
Concepts
Generation run — a single user-initiated request. Each run has a
lifecycle: pending → running → succeeded / failed. A run
requests one or more output types; all requested types complete or fail
together.
Output types
| Value | Description |
|---|---|
video | MP4 with narration and slides rendered from the Remotion template. |
audio | MP3 narration-only export. |
infographic | PNG or PDF visual summary. Duration parameter is ignored. |
Visibility
| Value | Who can view |
|---|---|
workspace (default) | Authenticated members of the owning tenant. |
public | Anyone holding the share URL. Always confirm with the user before setting public. |
Document — on success, the run writes a document row; document_id
in the run response points to it. The document carries download links for
finished assets.
REST API
All endpoints require an Authorization: Bearer <api-key> header.
Create a run
POST /v1/workspaces/{workspace_id}/content-studio/runs
Content-Type: application/json
{
"prompt": "10-minute onboarding video for new engineers",
"output_types": ["video"],
"target_duration_seconds": 600,
"template_id": "onboarding",
"visibility": "workspace"
}Returns 202 Accepted with the run record in pending state.
{
"id": "018f2e3a-...",
"workspace_id": "...",
"prompt": "10-minute onboarding video for new engineers",
"output_types": ["video"],
"target_duration_seconds": 600,
"template_id": "onboarding",
"status": "pending",
"error_message": null,
"document_id": null,
"visibility": "workspace",
"share_url": null
}Poll a run
GET /v1/workspaces/{workspace_id}/content-studio/runs/{run_id}Returns the same shape as above. Poll until status is succeeded or
failed.
List runs
GET /v1/workspaces/{workspace_id}/content-studio/runsReturns an array of runs ordered by created_at descending.
MCP tools
Content Studio tools are registered on both the app and mcp surfaces.
They are available in any MCP-compatible client connected to
https://mcp.oxagen.ai.
| Tool | Credit cost | Description |
|---|---|---|
content_studio.generate | 5 | Create a generation run from a natural-language prompt. |
content_studio.list_runs | 1 | List recent runs for the workspace. |
content_studio.get_run | 1 | Fetch a single run by ID, including status and document_id. |
content_studio.generate
{
"prompt": "product overview video for the Q2 launch",
"output_types": ["video", "audio"],
"target_duration_seconds": 300,
"template_id": "product_overview",
"visibility": "workspace"
}Returns the run_id and initial status. Poll content_studio.get_run
until the run completes.
content_studio.list_runs
{
"limit": 20
}Returns run IDs, prompts, output types, and current status.
content_studio.get_run
{
"run_id": "018f2e3a-..."
}Returns full run detail including document_id once the run succeeds.
Asset download URLs are available through the document endpoint, not
the run endpoint directly.
Credit costs
| Operation | Credits |
|---|---|
Create run (content_studio.generate) | 5 |
| List or fetch runs | 1 |
Credits are reserved before a tool runs and refunded automatically if the handler errors. View your balance and buy credits at Settings → Billing in the web app.
Error states
| Status | Meaning |
|---|---|
pending | Run created; worker not yet started. |
running | Worker is actively generating assets. |
succeeded | All requested assets produced; document_id is set. |
failed | Worker stopped. error_message contains a summary; detailed error payload is in the run's context field via the API. |
cancelled | Run cancelled before completion. |