> 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/projects/export-project/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.videogen.io/_mcp/server. # Export a project as MP4 POST https://api.videogen.io/v1/projects/{projectId}/export Content-Type: application/json Starts an export of a project to MP4. Returns immediately with an export id; the file becomes available when the export task completes. Exporting requires a paid plan in the app, but the API lets you export for free with a VideoGen watermark and a short 'Made with VideoGen' end screen appended to the video. A Pro plan lets you remove both by setting `watermarkMode` and `endScreenMode` to `NONE`. Reference: https://docs.videogen.io/rest-api-reference/projects/export-project ## Authentication - `Authorization` header (bearer token, required) — API key from [app.videogen.io/api](https://app.videogen.io/api). The full key is only shown once when you create it. ## Request ### Path parameters - `projectId` (string, required) — The project id (e.g. `vg_proj_...`). ### Body (application/json) This endpoint expects an ExportProjectRequest. - `quality` (enum, optional) — Vertical resolution tier for the rendered MP4. - Allowed values: `STANDARD`, `HIGH`, `FULL_HIGH`, `ULTRA_HIGH` - `watermarkMode` (enum, optional, default: AUTO) — Controls whether the VideoGen watermark is applied to the output. `AUTO` applies the watermark unless you have a Pro plan. `VIDEO_GEN` always applies it. `NONE` removes the watermark (requires Pro; returns an error if you don't have it). - Allowed values: `NONE`, `VIDEO_GEN`, `AUTO` - `endScreenMode` (enum, optional, default: AUTO) — Controls whether a short 'Made with VideoGen' end screen is appended to the output. `AUTO` appends it unless you have a Pro plan. `VIDEO_GEN` always appends it. `NONE` removes it (requires Pro; returns an error if you don't have it). - Allowed values: `NONE`, `VIDEO_GEN`, `AUTO` - `deliveryDestinations` (list of ExportDeliveryDestination, optional) — Destinations to deliver the finished export to when it completes, in addition to any delivery destinations already saved for the team. Each destination references a connected integration. ## Response ### 202 Export accepted. - `exportId` (string, required) — Opaque export id (e.g. `vg_expo_...`). Poll `GET /v1/projects/{projectId}/exports/{exportId}` or subscribe to webhooks for completion. ## Types ### ExportDeliveryDestination - `integrationConnectionId` (string, required) — Id of the connected integration that will receive this export. - `type` (enum, required) — Where to deliver the export within the connected integration. - Allowed values: `SLACK_CHANNEL`, `GOOGLE_DRIVE_FOLDER` - `slackChannelId` (string, optional, nullable) — Target channel id. Required when `type` is `SLACK_CHANNEL`. - `googleDriveFolderId` (string, optional, nullable) — Target folder id. Required when `type` is `GOOGLE_DRIVE_FOLDER`. ## Examples **Request** ```json { "quality": "FULL_HIGH", "watermarkMode": "AUTO" } ``` **Response** ```json { "exportId": "vg_expo_4bHn8pR2sY5xM1vL3tC7wd" } ``` **SDK Code** ```typescript import { VideoGen } from "@videogen/sdk"; const client = new VideoGen({ apiKey: "sk_videogen_live_..." }); await client.projects.exportProject({ projectId: "vg_proj_9dTk3mQ1rZ7xP4vN2sB6wc", quality: "FULL_HIGH", watermarkMode: "AUTO", }); ``` ```python from videogen import VideoGen client = VideoGen(api_key="sk_videogen_live_...") client.projects.export_project( project_id="vg_proj_9dTk3mQ1rZ7xP4vN2sB6wc", quality="FULL_HIGH", watermark_mode="AUTO", ) ``` > HTTP API with TypeScript and Python SDKs for generating image, video, and audio assets with VideoGen.