What’s new in the VideoGen API. Each entry below covers a single release window with breaking changes, new endpoints, fixes, and SDK updates.

  • Subscribe to releases via the RSS feed.
  • For machine-readable history, fetch each entry as Markdown by appending .md to its URL (for example, /changelog/2026/5/5.md).
  • For the complete documentation index, see /llms.txt.

v1.1.8 — Account lookup, run history, opaque project ids, and six new remix actions

This release adds endpoints for verifying your API key and listing past workflow runs and tool executions, fixes project and export ids so responses match the documented vg_proj_... and vg_expo_... format, and ships six new remix actions plus a CLI and MCP server for agents and scripts.

  • GET /v1/me: return the account and team behind the API key making the request (apiKeyId, apiKeyNickname, email, displayName, teamId). Takes no parameters. Use it as a connection test to confirm a key is valid before wiring up integrations.
  • GET /v1/workflows/runs: list workflow runs started via the API, most recently created first. Cursor-paginated; accepts limit, cursor, and selfOnly (same contract as GET /v1/projects).
  • GET /v1/tools/executions: list tool executions started via the API, most recently created first. Cursor-paginated; accepts limit, cursor, and selfOnly.
  • GET /v1/resources/languages: list the languages a project can be translated into. Pass a languageCode from the response to the TRANSLATE_PROJECT remix action. Returns the full catalogue in one response (not paginated).
  • Six new remix actions: REGENERATE_IMAGES (re-generate every eligible image in a project), UPSCALE_ASSETS (upscale images and videos in place), CHANGE_NARRATOR (swap the voiceover to a different TTS voice), SHUFFLE_STOCK_VISUALS (replace stock footage clips with fresh matches), GENERATE_MUSIC (generate and set a background music track), and TRANSLATE_PROJECT (translate every piece of text and optionally re-narrate voiceovers in a target language). See Remix actions.
  • Fix: project and export ids now use the documented opaque format. Responses from GET /v1/projects, workflow runs, remix calls, and export endpoints now return vg_proj_... project ids and vg_expo_... export ids instead of raw UUIDs. Path parameters accept both the new opaque ids and legacy raw UUIDs stored from earlier responses.
  • VideoGen CLI: install @videogen/cli (npm install -g @videogen/cli) for a self-contained binary generated from the same OpenAPI spec as the SDKs. See CLI.
  • MCP server for AI agents: install @videogen/mcp and point Cursor, Claude Desktop, or any MCP client at it to run the full VideoGen API from an agent session (workflows, media tools, files, exports, and remix). See Use with AI agents.

v1.1.5 — Quality tiers and new remix actions

This release renames the generate-text model field to quality, makes the text-to-speech voice required, adds an image quality tier to the script and voiceover workflows, and introduces three new remix actions. Update your generate-text and text-to-speech calls before upgrading.

  • Breaking: generate-text renames model to quality and adds a MAX tier. Replace the model field with quality. Accepted values are now LOW, STANDARD, HIGH, and MAX (previously LOW, STANDARD, HIGH); it still defaults to STANDARD.
  • Breaking: text-to-speech now requires voiceId. Pass a voiceId from GET /v1/resources/tts-voices (only voices with supportsDirectToolExecution set to true are accepted). The previous default-voice fallback has been removed, so requests without voiceId now fail.
  • Image quality tier on the script and voiceover workflows: POST /v1/workflows/script-to-video and POST /v1/workflows/voiceover-to-video now accept quality (LOW, STANDARD, or HIGH, defaults to STANDARD), the tier used for AI-generated visuals. It only applies when visualStyle.type is AI_IMAGE or ENTITY; STOCK footage is unaffected.
  • New remix action RESIZE_PROJECT: change a project’s output aspect ratio and re-flow the video to the new ratio (for example, to a vertical 9:16 social format). See Remix actions.
  • New remix action CLEAN_UP_TRANSCRIPT: tighten every transcript in a project by removing filler words and silent pauses, with optional removeFillers, removePauses, fillerWords, and minPauseSeconds controls.
  • New remix action CONVERT_IMAGES_TO_VIDEOS: animate every eligible still image into a short AI video clip in place, with optional motionPrompt, muteOutputVideos, and quality controls. It runs asynchronously (one clip per image) and is skipped without error when a project has no eligible images.

v1.1.0 — Simpler workflow names and remix-driven edits

This release renames the video workflows to match the VideoGen app, moves caption and logo styling on the script workflow to remix actions, and renames the agent remix action. Update your workflow endpoints and request fields before upgrading.

  • Breaking: workflows renamed to match the app. The video workflow endpoints now use short names:

    • add-visuals-narrations-and-captions-to-script is now POST /v1/workflows/script-to-video.
    • add-visuals-and-captions-to-voiceover is now POST /v1/workflows/voiceover-to-video.
    • add-narration-transitions-and-captions-to-slideshow is now POST /v1/workflows/slideshow-to-video.

    The workflowType field in workflow run responses and webhook payloads now returns SCRIPT_TO_VIDEO, VOICEOVER_TO_VIDEO, and SLIDESHOW_TO_VIDEO. SDK methods follow the new names (workflows.scriptToVideo, workflows.voiceoverToVideo, workflows.slideshowToVideo). The old paths still accept requests for now but are deprecated and no longer shown in the docs or SDKs; migrate to the new paths.

  • Breaking: script-to-video drops captionStyle and logoFileId. Style captions with an ENABLE_CAPTIONS remix action, hide them with DISABLE_CAPTIONS, and add a logo with a SET_LOGO remix action instead. Captions are on by default when you omit remix actions. The voiceover-to-video and slideshow-to-video workflows still accept captionStyle and logoFileId directly. See Remix actions.

  • Breaking: remix action VIDEO_EDITOR_AGENT renamed to EDIT_WITH_AGENT. Update the type field on any natural-language edit remix action. Behavior is unchanged.

  • Breaking: generate-music no longer accepts durationSeconds. Music tracks are a fixed length (about 30 seconds), so the field never changed the output and has been removed. Every request is now billed at the fixed 30-second length. Remove durationSeconds from any generate-music call.

  • Set clip length on video clips: POST /v1/tools/generate-video-clip now accepts durationSeconds, a whole number from 1 to 15 (defaults to 6). For longer, multi-scene, professionally edited videos, use a workflow such as POST /v1/workflows/script-to-video.

  • Documented sound effect duration: generate-sound-effect accepts durationSeconds from 1 to 30 (about 10 seconds when omitted).

  • List dashboard projects too: GET /v1/projects now accepts includeUiProjects. Pass includeUiProjects=true to include dashboard-created projects alongside API-created ones; it defaults to false, so existing calls still return only API-created projects.

  • Automatic model selection: the image, video clip, sound effect, and music tools now route each request to the best available model for your inputs and settings, so you don’t pick a model.

v1.0.2 — Video clip reference media and per-team rate limits

This release expands the reference inputs accepted by generate-video-clip and moves rate limiting to a per-team basis. No tools or workflows were removed.

  • Breaking: POST /v1/tools/generate-video-clip replaces the single videoFileId with videoFileIds, an array of up to four reference video file ids. Callers passing videoFileId must rename the field and wrap the value in an array.
  • Reference audio for video clips: generate-video-clip now accepts audioFileIds, up to four uploaded audio file ids used for native lip-sync and soundtrack. As before, at least one of prompt, imageFileIds, videoFileIds, or audioFileIds must be provided, and prompt is optional when any reference media is supplied.
  • Rate limits are now per team: per-endpoint hourly limits are shared across all API keys belonging to your team rather than scoped to a single key. The limit values are unchanged. See Rate limits.
  • Slideshow slideScripts is now index-based: in POST /v1/workflows/slideshow-to-video, each entry maps to the slide at its index, an empty string silences that slide, and fewer entries than slides leaves the remaining slides silent. Pass an empty array ([]) to silence every slide, or omit the field to narrate each slide from its speaker notes. Previously the entry count had to match the slide count exactly or the run failed.
  • Docs: Reworked the introduction’s “What you can build” into separate Workflows and Tools sections, and split the Workflows guide into a section per workflow, each linking to its endpoint reference.

v1.0.1 — Cursor pagination on every list endpoint

All collection-returning endpoints now use a uniform cursor-based pagination contract. Responses still include the original array field (no rename), so v1 SDKs and existing callers keep working unchanged. Pagination is additive: two new fields (hasMore, nextCursor) and two new query params (limit, cursor) per endpoint.

  • GET /v1/projects: now returns { projects, hasMore, nextCursor }. Accepts cursor alongside the existing limit (1-200, default 50) and selfOnly. Previously capped silently at 200; full history is now reachable by paging.
  • GET /v1/files: now returns { files, hasMore, nextCursor } and accepts limit (1-200, default 50) and cursor. Previously capped silently at 500.
  • GET /v1/resources/avatar-presenters and GET /v1/resources/tts-voices: now return hasMore / nextCursor and accept limit / cursor.
  • GET /v1/webhooks/endpoints: now returns hasMore / nextCursor and accepts limit / cursor.

v1.0.0 — Workflows, projects, and exports

First stable release of the VideoGen API. v1 adds end-to-end video workflows, project read access, MP4 export, and a music generation tool. No endpoints from v0.0.35 were removed or renamed; existing tool requests, webhooks, and file endpoints continue to work unchanged.

  • Workflows: New /v1/workflows/* endpoints that create a project and generate a finished video in a single call. Each call returns a workflowRunId (vg_work_...), the created projectId, and a projectUrl for opening the project in the VideoGen app.
    • POST /v1/workflows/script-to-video: turn a topic, idea, or full script into a narrated video.
    • POST /v1/workflows/voiceover-to-video: take an uploaded voiceover audio file and add matching visuals and captions.
    • POST /v1/workflows/slideshow-to-video: take an uploaded PDF or PowerPoint and generate an AI-narrated walkthrough.
    • POST /v1/workflows/ai-video-clip: generate a short AI video clip from a prompt and up to four optional reference images (imageFileIds, capped at 4).
    • GET /v1/workflows/runs/{workflowRunId} for status (pending, running, succeeded, failed, cancelled) and POST /v1/workflows/runs/{workflowRunId}/cancel to stop an in-flight run.
  • Projects: New /v1/projects/* endpoints for reading and exporting projects created via workflows.
    • GET /v1/projects: list the most recently updated API-created projects. Pass selfOnly=true to restrict results to the calling API key’s user; otherwise all API-created projects for the team are returned. Dashboard-created projects are excluded.
    • GET /v1/projects/{projectId}: simplified project metadata (title, aspect ratio, status, URL, timestamps).
    • POST /v1/projects/{projectId}/export: start an MP4 export with an optional quality (STANDARD, HIGH, FULL_HIGH, ULTRA_HIGH).
    • GET /v1/projects/{projectId}/exports/{exportId}: poll export status; the response includes a signed downloadUrl and thumbnailUrl when status is succeeded.
  • Workflow webhook events: New workflow_run.succeeded, workflow_run.failed, and workflow_run.cancelled events for any workflow run started via the API. Payloads include workflowRunId, workflowType, projectId, projectUrl, and (on failure) an error. Subscribe via POST /v1/webhooks/endpoints.
  • File uploads support PDF and slideshow types: POST /v1/files/upload now accepts type: PDF and type: SLIDESHOW alongside IMAGE, VIDEO, and AUDIO. Use these to upload source files for the slideshow workflow.
  • Music generation: New POST /v1/tools/generate-music tool. Describe genre, mood, instrumentation, and tempo in prompt to generate background music; the response shape matches other tool endpoints (returns a toolExecutionId; poll or subscribe to webhooks for the resulting AUDIO file).
  • 3D motion effect: New POST /v1/tools/image-3d-effect tool. Takes an imageStorageFileId and returns a short video clip with a 3D parallax motion effect that simulates camera movement through the scene.
  • Hosted docs moved to a custom domain: API reference and guides now live at docs.videogen.io. Product naming simplified from “VideoGen Developer API” to “VideoGen API” across docs, READMEs, and SDK metadata. Old videogen.docs.buildwithfern.com URLs redirect.
  • Agent / LLM docs: Pushed the Fern Agent Score to 100/100. llms.txt now lists every sitemap page (54/54, including the new workflows page and per-event webhook pages), the changelog has a dedicated overview so /changelog.md no longer 404s, and HTML/markdown parity warnings on AI-agent reference pages are resolved.
  • SDK example apps: TypeScript ai-social-content and Python ai-image-editor example apps updated to the v1 SDKs and republished.

v0.0.35 — Consolidated image and video generation tools

  • Breaking: Consolidated image and video generation into two tool endpoints: POST /v1/tools/generate-image (text and/or reference images) and POST /v1/tools/generate-video-clip (text prompt, reference images, and/or a source video). Replaces the separate prompt-to-image, image-to-image, prompt-to-video-clip, image-to-video-clip, and video-to-video-clip routes. Other route renames: prompt-to-sound-effectgenerate-sound-effect, audio-to-avatar-clipgenerate-avatar, generate-ttstext-to-speech, remove-image-bgremove-image-background, remove-video-bgremove-video-background.
  • Watermark: New optional watermarkMode on generation requests (AUTO, VIDEO_GEN, NONE). NONE requires the Production API add-on; otherwise the API returns a documented error.
  • Files: POST /v1/files/{fileId}/archive archives a file (sets archived_at); archived files are omitted from list results.
  • Fix: generate-image and generate-video-clip executions now apply reference imageFileIds / videoFileId inputs end-to-end (previously ignored in some paths).
  • SDKs & examples: Example apps publishing flow, SDK custom-helper layout under language packages, TypeScript-based SDK generate/publish/validate scripts, and an Examples page in the docs.
  • Agent / LLM docs: Expanded llms.txt and <llms-only> parity so markdown exports include the same examples as tabbed guide pages (REST overview, webhook payloads, changelog, and key guides).
  • Agent / LLM docs: Fixed llms.txt to use doc paths (/rest-api-reference/..., /webhook-events/webhook-events/...), list every sitemap page (including Examples and archive-file), remove non-doc same-origin links that broke agent checks, and set dynamic-snippets / ai-examples to false so HTML and markdown exports stay aligned for API reference pages.

v0.0.24 — Shorter resource IDs and multi-image inputs

  • Breaking: POST /v1/tools/image-to-image now accepts imageStorageFileIds (an array) instead of imageStorageFileId (a single string). Pass one or more source image IDs to combine or transform multiple inputs in a single call.
  • Libraries & SDKs docs: Added dedicated TypeScript and Python documentation pages with client setup, polling, file upload/download, and webhook verification examples
  • Shorter IDs: All resource IDs (vg_file_*, vg_tool_*, vg_work_*, vg_voic_*, vg_pres_*) now use a compact URL-safe format
  • SDK helpers sync: Custom helper functions (pollExecutedTool, uploadFile, downloadFile, getHydratedFile, verifyWebhookSignature) are now correctly bundled in both the TypeScript and Python SDK packages
  • Fixed credit deduction for API-initiated video exports

v0.0.19 — Renamed candidates to results and expanded docs

  • Renamed candidates to results in tool execution responses for clarity
  • Added MIT license to SDK packages
  • Fixed nullable storage type issues in OpenAPI spec
  • API playground available in the docs for testing endpoints directly
  • Added webhook events reference, errors page, rate limits documentation, and changelog

v0.0.15 — Webhooks, file uploads, and semantic search

  • Webhooks: Added POST /v1/webhooks/endpoints and DELETE /v1/webhooks/endpoints/{id} for managing webhook subscriptions
  • File upload webhooks: New file.* event types (file.upload.completed, file.playback_ready, file.download_ready, file.analysis_completed, file.analysis_failed)
  • File uploads: Added POST /v1/files/upload for uploading your own media via the API
  • File search: Added POST /v1/files/search for semantic search across generated and uploaded files
  • Public preview: Added enable-public-preview and disable-public-preview endpoints for files
  • Improved storage file schema with nullable fields and proper type annotations
  • Python SDK (videogen) published to PyPI

v0.0.11 — New image, video, and background-removal tools

  • Added image-to-image and video-to-video-clip tool endpoints
  • Added numCandidates parameter to generate multiple results per request
  • Added vectorize-image, remove-image-background, and remove-video-background tool endpoints
  • Generic route helper for consistent error handling across all endpoints
  • Cursor skill for using the VideoGen API with AI agents
  • Documentation fixes and slug improvements

v0.0.7 — Tool type renames and image/video upscaling

  • Breaking: Renamed all GENERATE_* tool types to PROMPT_TO_* and GENERATE_VOICEOVER to TEXT_TO_SPEECH
  • Added upscale-image and upscale-video tool endpoints
  • Wired tools and files to production, making the API fully functional
  • External documentation linked from SDK README

v0.0.6 — Alpha release

First public release of the VideoGen API and TypeScript SDK (@videogen/sdk).

  • OpenAPI spec and SDK generation pipeline
  • Fern-powered documentation site
  • Tool endpoints: prompt-to-image, prompt-to-video-clip, text-to-speech, prompt-to-sound-effect, audio-to-avatar-clip
  • File management: list, get, and hydrate generated files
  • Bearer token authentication