> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.videogen.io/rest-api-reference/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.videogen.io/_mcp/server. # REST API Reference > HTTP API with TypeScript and Python SDKs for generating image, video, and audio assets with VideoGen. ## API Docs - Endpoints > Workflows [Script to video](https://docs.videogen.io/rest-api-reference/workflows/script-to-video.md) - Endpoints > Workflows [Voiceover to video](https://docs.videogen.io/rest-api-reference/workflows/voiceover-to-video.md) - Endpoints > Workflows [Slideshow to video](https://docs.videogen.io/rest-api-reference/workflows/slideshow-to-video.md) - Endpoints > Workflows [Prompt to video clip](https://docs.videogen.io/rest-api-reference/workflows/prompt-to-video-clip.md) - Endpoints > Workflows [List workflow runs](https://docs.videogen.io/rest-api-reference/workflows/list-workflow-runs.md) - Endpoints > Workflows [Get workflow run status](https://docs.videogen.io/rest-api-reference/workflows/get-workflow-run.md) - Endpoints > Workflows [Cancel a workflow run](https://docs.videogen.io/rest-api-reference/workflows/cancel-workflow-run.md) - Endpoints > Projects [List projects](https://docs.videogen.io/rest-api-reference/projects/list-projects.md) - Endpoints > Projects [Get project metadata](https://docs.videogen.io/rest-api-reference/projects/get-project.md) - Endpoints > Projects [Export a project as MP4](https://docs.videogen.io/rest-api-reference/projects/export-project.md) - Endpoints > Projects [List project exports](https://docs.videogen.io/rest-api-reference/projects/list-project-exports.md) - Endpoints > Projects [Get project export](https://docs.videogen.io/rest-api-reference/projects/get-project-export.md) - Endpoints > Projects [Create a timeline interchange](https://docs.videogen.io/rest-api-reference/projects/create-timeline-interchange.md) - Endpoints > Projects [Get timeline interchange job](https://docs.videogen.io/rest-api-reference/projects/get-timeline-interchange.md) - Endpoints > Projects [Apply remix actions to a project](https://docs.videogen.io/rest-api-reference/projects/remix-project.md) - Endpoints > Projects [List remix actions for a project](https://docs.videogen.io/rest-api-reference/projects/list-project-remix-actions.md) - Endpoints > Assistant [Start an assistant chat](https://docs.videogen.io/rest-api-reference/assistant/start-assistant-chat.md) - Endpoints > Assistant [Get an assistant chat](https://docs.videogen.io/rest-api-reference/assistant/get-assistant.md) - Endpoints > Assistant [Send an assistant message](https://docs.videogen.io/rest-api-reference/assistant/send-assistant-message.md) - Endpoints > Assistant [Act on an assistant action](https://docs.videogen.io/rest-api-reference/assistant/act-on-assistant-action.md) - Endpoints > Assistant [Get an assistant message](https://docs.videogen.io/rest-api-reference/assistant/get-assistant-message.md) - Endpoints > Tools [Generate image](https://docs.videogen.io/rest-api-reference/tools/generate-image.md) - Endpoints > Tools [Generate video clip](https://docs.videogen.io/rest-api-reference/tools/generate-video-clip.md) - Endpoints > Tools [Generate motion graphic](https://docs.videogen.io/rest-api-reference/tools/generate-motion-graphic.md) - Endpoints > Tools [Text to speech](https://docs.videogen.io/rest-api-reference/tools/text-to-speech.md) - Endpoints > Tools [Generate sound effect](https://docs.videogen.io/rest-api-reference/tools/generate-sound-effect.md) - Endpoints > Tools [Generate music](https://docs.videogen.io/rest-api-reference/tools/generate-music.md) - Endpoints > Tools [Generate avatar clip](https://docs.videogen.io/rest-api-reference/tools/generate-avatar.md) - Endpoints > Tools [Vectorize image](https://docs.videogen.io/rest-api-reference/tools/vectorize-image.md) - Endpoints > Tools [Remove background from an image](https://docs.videogen.io/rest-api-reference/tools/remove-image-background.md) - Endpoints > Tools [Remove background from a video](https://docs.videogen.io/rest-api-reference/tools/remove-video-background.md) - Endpoints > Tools [Upscale an image](https://docs.videogen.io/rest-api-reference/tools/upscale-image.md) - Endpoints > Tools [Upscale a video](https://docs.videogen.io/rest-api-reference/tools/upscale-video.md) - Endpoints > Tools [Add 3D motion to an image](https://docs.videogen.io/rest-api-reference/tools/image-3-d-effect.md) - Endpoints > Tools [Cancel tool execution](https://docs.videogen.io/rest-api-reference/tools/cancel-tool-execution.md) - Endpoints > Tools [List tool executions](https://docs.videogen.io/rest-api-reference/tools/list-tool-executions.md) - Endpoints > Tools [Get tool execution info](https://docs.videogen.io/rest-api-reference/tools/get-tool-execution-info.md) - Endpoints > Text [Generate text](https://docs.videogen.io/rest-api-reference/text/generate-text.md) - Endpoints > Files [List files](https://docs.videogen.io/rest-api-reference/files/get-files.md) - Endpoints > Files [Search files](https://docs.videogen.io/rest-api-reference/files/search-files.md) - Endpoints > Files [Get file](https://docs.videogen.io/rest-api-reference/files/get-file.md) - Endpoints > Files [Create file upload](https://docs.videogen.io/rest-api-reference/files/create-file-upload.md) - Endpoints > Files [Hydrate file](https://docs.videogen.io/rest-api-reference/files/hydrate-file.md) - Endpoints > Files [Archive file](https://docs.videogen.io/rest-api-reference/files/archive-file.md) - Endpoints > Files [Enable public preview](https://docs.videogen.io/rest-api-reference/files/enable-public-preview.md) - Endpoints > Files [Disable public preview](https://docs.videogen.io/rest-api-reference/files/disable-public-preview.md) - Endpoints > Entities [List entities](https://docs.videogen.io/rest-api-reference/entities/list-entities.md) - Endpoints > Entities [Create entity](https://docs.videogen.io/rest-api-reference/entities/create-entity.md) - Endpoints > Entities [Get entity](https://docs.videogen.io/rest-api-reference/entities/get-entity.md) - Endpoints > Entities [Update entity](https://docs.videogen.io/rest-api-reference/entities/update-entity.md) - Endpoints > Entities [Archive entity](https://docs.videogen.io/rest-api-reference/entities/archive-entity.md) - Endpoints > Entities [Add entity reference](https://docs.videogen.io/rest-api-reference/entities/add-entity-reference.md) - Endpoints > Entities [Remove entity reference](https://docs.videogen.io/rest-api-reference/entities/remove-entity-reference.md) - Endpoints > Resources [List TTS voices](https://docs.videogen.io/rest-api-reference/resources/list-tts-voices.md) - Endpoints > Resources [List supported languages](https://docs.videogen.io/rest-api-reference/resources/list-languages.md) - Endpoints > Webhooks [List webhooks](https://docs.videogen.io/rest-api-reference/webhooks/list-webhook-endpoints.md) - Endpoints > Webhooks [Create webhook](https://docs.videogen.io/rest-api-reference/webhooks/create-webhook-endpoint.md) - Endpoints > Webhooks [Delete webhook](https://docs.videogen.io/rest-api-reference/webhooks/delete-webhook-endpoint.md) - Endpoints > Account [Get current account](https://docs.videogen.io/rest-api-reference/account/get-me.md) ## OpenAPI Specification The raw OpenAPI 3.1 specification for this API is available at: - [OpenAPI JSON](https://docs.videogen.io/rest-api-reference/openapi.json) - [OpenAPI YAML](https://docs.videogen.io/rest-api-reference/openapi.yaml) > **Note:** This page contains both a page directory (above) and the landing page content (below). The page directory is generated for agent use and does not appear on the landing page. > For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.videogen.io/rest-api-reference/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.videogen.io/_mcp/server. # REST API overview > Quick reference for the VideoGen REST API: base URL, authentication, request format, and response conventions. ## Base URL ``` https://api.videogen.io ``` ## Authentication All requests require a bearer token in the `Authorization` header: ``` Authorization: Bearer sk_videogen_live_... ``` Get your API key from [app.videogen.io/api](https://app.videogen.io/api). The full key is only shown once when you create it. The bearer token can also be an OAuth 2.1 access token if your app acts on behalf of other VideoGen users (see [Sign in with VideoGen](/oauth)). ## Request format * All request bodies are JSON (`Content-Type: application/json`). * Workflow endpoints are asynchronous: `POST /v1/workflows/...` returns `202 Accepted` with `{ workflowRunId, projectId, projectUrl }`. Use `projectId` for API follow-ups (export, remix). `projectUrl` is optional and opens the project in the app editor. Poll `GET /v1/workflows/runs/{workflowRunId}` until `status` is terminal. See [Workflows](/workflows). * Tool endpoints are asynchronous too: `POST /v1/tools/...` returns `202 Accepted` with a `toolExecutionId`. Poll `GET /v1/tools/executions/{toolExecutionId}` until `status` is `succeeded`, `failed`, or `cancelled`. * Text generation is synchronous: `POST /v1/text/generate` returns `200 OK` with the generated `text` inline (no polling). * Either async surface can notify you via [webhooks](/webhook-events) instead of polling. ## IDs All IDs are prefixed strings (e.g. `vg_work_...`, `vg_tool_...`, `vg_file_...`). Store them as-is and do not parse them.