Skip to main content
Glama

image_to_video_create_video

What this API does

Create the same Image To Video you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow.

Good for

  • Automation and batch processing

  • Adding image to video into apps, pipelines, or tools

How it works (3 steps)

  1. Upload your inputs (video, image, or audio) with Generate Upload URLs and copy the file_path.

  2. Send a request to create a image to video job with the basic fields.

  3. Check the job status until it's complete, then download the result from downloads.

Key options

  • Inputs: see the request schema for endpoint-specific assets

  • Resolution: free users default to 480p; higher plans unlock HD and larger sizes

  • Extra fields: see the request schema for endpoint-specific options

Cost
Credits are only charged for the frames that actually render. You'll see an estimate when the job is queued, and the final total after it's done.

For detailed examples, see the product page.

MCP guidance:

  • This starts an async video generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_video_project helper with the returned id, or poll the matching GET /v1/video-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoGive your video a custom name for easy identification.Image To Video - dateTime
audioNoWhether to include audio in the video. Defaults to `false` if not specified. Audio support varies by model: * **`kling-2.6`**: Not supported * **`kling-3.0`**: Toggle-able: audio adds extra credits when enabled * **`ltx-2.3`**: Toggle-able: no additional credits for audio * **`minimax-h3`**: Toggle-able: no additional credits for audio * **`seedance-1.5`**: Toggle-able: audio adds extra credits when enabled * **`seedance-2.0`**: Toggle-able: no additional credits for audio * **`seedance-2.0-mini`**: Toggle-able: no additional credits for audio * **`seedance-2.5`**: Toggle-able: no additional credits for audio * **`sora-2`**: Toggle-able: no additional credits for audio * **`veo3.1`**: Toggle-able: audio adds extra credits when enabled * **`veo3.1-lite`**: Toggle-able: audio adds extra credits when enabled * **`wan-2.2`**: Not supported
modelNoThe AI model to use for video generation. * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.3`. * `kling-2.6`: Great for action, motion blur, and camera moves. * `kling-3.0`: Best overall quality for cinematic storytelling. * `ltx-2.3`: Fastest output. Best for rapid iteration. * `minimax-h3`: Reference-driven video with native audio. * `seedance-1.5`: Smooth, consistent motion with precision. * `seedance-2.0`: Top quality with reference-to-video control. * `seedance-2.0-mini`: Fast, consistent video with strong motion quality * `seedance-2.5`: Highest quality with superior realism, detail, and motion * `sora-2`: Open AI's model. Great for creativity and viral clips. * `veo3.1`: Google's model. Highest realism and detail. * `veo3.1-lite`: Veo quality at a more accessible cost. * `wan-2.2`: Strong physics, camera moves, and motion. If you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`.default
styleNoAttributed used to dictate the style of the output
assetsYesProvide the assets for image-to-video. Sora 2 only supports images with an aspect ratio of `9:16` or `16:9`.
resolutionNoControls the output video resolution. Defaults to `720p` on paid tiers and `480p` on free tiers. * **`kling-2.6`**: Supports 720p, 1080p. * **`kling-3.0`**: Supports 720p, 1080p, 4k. * **`ltx-2.3`**: Supports 480p, 720p, 1080p. * **`minimax-h3`**: Supports 480p, 720p, 1080p. * **`seedance-1.5`**: Supports 480p, 720p, 1080p. * **`seedance-2.0`**: Supports 480p, 720p. * **`seedance-2.0-mini`**: Supports 480p, 720p. * **`seedance-2.5`**: Supports 480p, 720p. * **`sora-2`**: Supports 720p. * **`veo3.1`**: Supports 720p, 1080p. * **`veo3.1-lite`**: Supports 720p, 1080p. * **`wan-2.2`**: Supports 480p, 720p, 1080p.
end_secondsYesThe total duration of the output video in seconds. Supported durations depend on the chosen model: * **`kling-2.6`**: 5, 10 * **`kling-3.0`**: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 * **`ltx-2.3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30 * **`minimax-h3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30 * **`seedance-1.5`**: 4, 5, 6, 7, 8, 9, 10, 11, 12 * **`seedance-2.0`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 * **`seedance-2.0-mini`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 * **`seedance-2.5`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 * **`sora-2`**: 4, 8, 12, 24, 36, 48, 60 * **`veo3.1`**: 4, 6, 8, 16, 24, 32, 40, 48, 56 * **`veo3.1-lite`**: 4, 6, 8, 16, 24, 32, 40, 48, 56 * **`wan-2.2`**: 3, 4, 5, 6, 7, 8, 9, 10, 15

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the output video. If video generation fails, credits will be refunded, and this field will be updated to include the refund.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it delivers: it discloses that the job is async and returns id plus credits_charged immediately, describes the terminal statuses (complete, error, canceled), explains the downloads field with direct URLs, warns that the wait helper returns exact_download_urls separately from expiration metadata, and details the cost model (credits charged only for rendered frames). It also exposes failure modes around hotlinked URLs and recommends the presigned upload flow. This is exactly the behavioral context an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-organized into clear sections (What it does, Good for, How it works, Key options, Cost, MCP guidance) with the core purpose front-loaded. Each section earns its keep given the tool's complexity, though the 'Good for' bullet list is mildly redundant with the opening statement, and the length requires an agent to read through several paragraphs to reach the critical async/polling guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 params, nested assets object, model-specific constraints, async workflow, and an output schema), the description is remarkably complete. It covers prerequisites (upload step), the end-to-end flow, result retrieval, cost estimation, and file-path pitfalls. Since an output schema exists, the description doesn't need to detail return values, and what remains is covered by the 100% schema coverage plus this rich workflow narrative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds genuine value beyond the schema: it explains tier-dependent resolution defaults (480p free, HD/4k paid), clarifies which *_file_path values are acceptable (file_path from upload API preferred over direct public URLs), and warns about hotlink instability. This meaningfully reduces the chance of an agent passing a bad file path.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (create an Image To Video job programmatically) with clear resource and output (async job returning an id). It clearly distinguishes this from the browser product and explains the async nature. However, it never explicitly names sibling alternatives like text_to_video_create_video or video_to_video_create_video, so differentiation is implied by the tool's domain rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides strong usage context: automation/batch processing, a 3-step workflow, and explicit MCP guidance on when to call the wait_for_video_project helper versus polling the status endpoint. It does not give explicit when-not-to-use guidance or name the sibling creation tools an agent should choose instead for text/audio/video inputs, but the procedural context is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.9/5.0
Disambiguation3/5

Most tools are differentiated by product-specific prefixes (e.g., lip_sync, text_to_video, image_upscaler), but the set contains many overlapping create_image/create_video tools, and generic editors like ai_image_editor_create_image and ai_video_editor_create_video blur boundaries with their more specific counterparts. Face/body swapping tools also occupy a similar conceptual space, requiring careful description reading to avoid misselection.

Naming Consistency4/5

Names generally follow a descriptive snake_case pattern of feature plus action (e.g., text_to_video_create_video, image_projects_delete, wait_for_image_project). Minor inconsistencies like ai_face_editor_edit_image versus the dominant create_image suffix, and the mixed ai_ prefix usage across tools, prevent a perfect score.

Tool Count2/5

44 tools is a large surface for an MCP server, even for a broad media-generation API. The count exceeds the 25+ threshold and creates a heavy selection burden, especially with over a dozen create tools for images and videos.

Completeness4/5

The surface covers the full create-to-download workflow for image, video, and audio: creation, status polling, wait helpers, fetch helpers, delete, and asset upload support. Minor gaps include no list/cancel endpoints and no general project search, but agents can complete core tasks without dead ends.

Resources