Ideogram Video Edit API
The video-edit API from Ideogram — 1 operation(s) for video-edit.
The video-edit API from Ideogram — 1 operation(s) for video-edit.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/ideogram:ideogram-video-edit-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Ideogram API v2 Video Edit API
version: 1.0.0
servers:
- url: https://api.ideogram.ai
description: https://api.ideogram.ai
tags:
- name: video-edit
paths:
/v2/video/generate/minimax-h3-reference-to-video:
post:
operationId: videoEdit_post_edit_video_minimax_h3_reference_to_video
summary: Reference to video with MiniMax H3
description: 'Produce a video from a text prompt and optional reference media with
MiniMax H3. Upload `reference_images` and `reference_audios` using
`multipart/form-data`, and address them in the prompt by position
(`Image 1`, `Audio 1`, …). Returns a `generation_id`; poll
`GET /v2/generations/{generation_id}` or supply a `webhook_url`.'
tags:
- video-edit
parameters:
- name: dry_run
in: query
description: 'When true, the request is validated and priced but not run: nothing is
generated, stored, or billed, and no safety review is performed. The
response is a `PriceQuote` object instead of the usual response for this
endpoint. Send exactly the request you would send to generate, so the
quote reflects the same options.
'
required: false
schema:
type: boolean
default: false
responses:
'200':
description: An acknowledgement to poll with `GET /v2/generations/{generation_id}`.
content:
application/json:
schema:
$ref: '#/components/schemas/GenerateVideoMinimaxH3Response'
'400':
description: Invalid input provided.
content:
application/json:
schema:
description: Any type
'401':
description: Unauthorized.
content:
application/json:
schema:
description: Any type
'402':
description: Insufficient credits or quota.
content:
application/json:
schema:
$ref: '#/components/schemas/GenerationErrorResponse'
'403':
description: This account does not have access to this model.
content:
application/json:
schema:
description: Any type
'404':
description: A referenced asset was not found.
content:
application/json:
schema:
description: Any type
'422':
description: The prompt did not pass safety checks.
content:
application/json:
schema:
description: Any type
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/GenerationErrorResponse'
'500':
description: Internal server error.
content:
application/json:
schema:
description: Any type
'503':
description: The endpoint is temporarily unavailable.
content:
application/json:
schema:
description: Any type
requestBody:
description: A request to produce a video from reference media with MiniMax H3. Use `multipart/form-data` to upload reference media.
content:
multipart/form-data:
schema:
type: object
properties:
prompt:
type: string
minLength: 1
maxLength: 2000
description: A natural-language prompt describing the video to produce. Reference media is addressed by position, as in "Image 1 walks toward the camera with the motion of Video 1".
reference_images:
type: array
items:
type: string
format: binary
description: Images to use as references (max size 50MB each), as raw bytes, in prompt order; only common image formats such as JPEG, PNG, and WEBP are supported. Uploaded images are used for this request only and are not stored.
reference_audios:
type: array
items:
type: string
format: binary
description: MP3 or WAV audio references, in prompt order as Audio 1, Audio 2, and Audio 3. Multipart uploads only; up to 15 MB per file and 2–15 seconds each. Audio and video references must total no more than 15 seconds. Requires a reference image or video. At most 12 references across images, videos, and audio. Used only for this request and not saved as assets.
aspect_ratio:
$ref: '#/components/schemas/MinimaxH3AspectRatio'
default: 16x9
resolution:
$ref: '#/components/schemas/MinimaxH3Resolution'
default: 2K
duration:
type: integer
minimum: 5
maximum: 15
default: 5
description: The length of the generated video in seconds.
prompt_expansion_mode:
$ref: '#/components/schemas/MinimaxH3PromptExpansionMode'
default: balanced
webhook_url:
type: string
format: uri
maxLength: 2048
description: 'HTTPS URL that Ideogram delivers the generated result to. Ideogram sends a
JSON POST to this URL once all images for the request have finished
generating. The body mirrors the synchronous generate response:
`request_id`, `created`, and a `data` array
containing every generated image (`url`, `prompt`, `resolution`, `seed`,
`is_image_safe`). Each delivery is signed with Ed25519 and verifiable
against the public keys at `https://api.ideogram.ai/v1/.well-known/jwks.json`. Must be HTTPS;
private and loopback hosts and the cloud metadata service are rejected.
'
required:
- prompt
security:
- ApiKeyAuth: []
components:
schemas:
MinimaxH3PromptExpansionMode:
type: string
enum:
- disabled
- fast
- balanced
- quality
default: balanced
description: 'How much the model may rewrite the prompt before generating. `disabled`
uses the prompt as written; the other modes trade latency for a richer
rewrite.
'
title: MinimaxH3PromptExpansionMode
GenerationErrorResponse:
type: object
properties:
error:
type: string
description: A message describing why the generation request was rejected.
reject_reason:
$ref: '#/components/schemas/GenerationRejectReason'
max_inflight_requests:
type: integer
minimum: 1
description: 'How many generations the account may have in progress at once on
the queue this request resolved to. Present when `reject_reason`
is `inflight_limit`.
'
task_completion_speed:
$ref: '#/components/schemas/GenerationErrorResponseTaskCompletionSpeed'
description: 'The queue this request resolved to. Present when `reject_reason`
is `inflight_limit`.
'
required:
- error
- reject_reason
description: A generation request rejected by an account or usage limit.
title: GenerationErrorResponse
GenerationRejectReason:
type: string
enum:
- insufficient_funds
- subscription_required
- daily_limit
- priority_credit_required
- inflight_limit
- feature_limit
description: The account or usage limit that rejected a generation request.
title: GenerationRejectReason
MinimaxH3AspectRatio:
type: string
enum:
- 21x9
- 16x9
- 4x3
- 1x1
- 3x4
- 9x16
default: 16x9
description: The aspect ratio of the generated video.
title: MinimaxH3AspectRatio
GenerateVideoMinimaxH3Response:
type: object
properties:
generation_id:
type: string
description: 'URL-safe base64 ID of the accepted generation. Accepted by the
`GET /v2/generations/{generation_id}` polling endpoint.
'
created:
type: string
format: date-time
description: The time the request was accepted.
required:
- generation_id
- created
description: 'Acknowledgement that the video request was accepted. The video is not
included in this response: poll `GET /v2/generations/{generation_id}`
with the returned `generation_id`, or receive it at the `webhook_url`
you supplied. Video links expire after a limited time, so download any
video you want to keep.
'
title: GenerateVideoMinimaxH3Response
GenerationErrorResponseTaskCompletionSpeed:
type: string
enum:
- fast
- slow
description: 'The queue this request resolved to. Present when `reject_reason`
is `inflight_limit`.
'
title: GenerationErrorResponseTaskCompletionSpeed
MinimaxH3Resolution:
type: string
enum:
- 480P
- 768P
- 2K
- 4K
default: 2K
description: 'The resolution tier of the generated video, spelled the way MiniMax
spells it. `480P` and `768P` are generated natively; `2K` and `4K` are
upscaled from a `768P` result.
Higher tiers cost more.
'
title: MinimaxH3Resolution
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: Api-Key
description: API key for access control. Use in the header with the name \"Api-Key\"