Generations

Submit a generation

Submit a generation (or, with mode: "draft", an editable draft that is not charged or started). Answers 201 with the generation, or 200 with the existing one when idempotencyKey repeats an earlier request. Then poll GET /v1/generations/{id} until status is completed, failed, or cancelled.

post/v1/generations

Request

  • Base URL: https://api.martini.film
  • URL: https://api.martini.film/v1/generations
  • Auth: HTTP bearer

Request body

endpoint'alibaba/wan-3.0-prime/image-to-video' | 'alibaba/wan-3.0-prime/reference-to-video' | 'alibaba/wan-3.0-prime/text-to-video' | 'alibaba/wan-3.0/image-to-video' | 'alibaba/wan-3.0/reference-to-video' | 'alibaba/wan-3.0/text-to-video' | 'bytedance/seedance-2.0/fast/image-to-video' | 'bytedance/seedance-2.0/fast/reference-to-video' | 'bytedance/seedance-2.0/fast/text-to-video' | 'bytedance/seedance-2.0/image-to-video' | 'bytedance/seedance-2.0/mini/image-to-video' | 'bytedance/seedance-2.0/mini/reference-to-video' | 'bytedance/seedance-2.0/mini/text-to-video' | 'bytedance/seedance-2.0/reference-to-video' | 'bytedance/seedance-2.0/text-to-video' | 'bytedance/seedance-2.5/image-to-video' | 'bytedance/seedance-2.5/reference-to-video' | 'bytedance/seedance-2.5/text-to-video' | 'creatify/boreal' | 'fal-ai/minimax/hailuo-03/image-to-video' | 'fal-ai/minimax/hailuo-03/reference-to-video' | 'fal-ai/minimax/hailuo-03/text-to-video' | 'fal-ai/nano-banana-2' | 'fal-ai/nano-banana-2/edit' | 'martini/seedance-2.5-custom-draft-enhance' | 'martini/seedance-2.5-custom-edit-draft-enhance' | 'martini/seedance-2.5-draft-enhance' | 'martini/seedance-2.5-edit-draft-enhance' | 'minimax/h3-max-turbo/image-to-video' | 'minimax/h3-max-turbo/text-to-video' | 'minimax/h3-max/image-to-video' | 'minimax/h3-max/reference-to-video' | 'minimax/h3-max/text-to-video' | 'minimax/h3/image-to-video' | 'minimax/h3/reference-to-video' | 'minimax/h3/text-to-video' | 'xai/grok-imagine-video/v1.5/image-to-video' | 'xai/grok-imagine-video/v1.5/reference-to-video' | 'xai/grok-imagine-video/v1.5/text-to-video' required

A registered alias exactly as GET /v1/models lists it. Selects which GenerationInput.* schema input must match.

inputobject required

The model input in its fal field names, validated strictly against the GenerationInput.* schema for endpoint (unknown fields are rejected with UNSUPPORTED_INPUT). The allOf conditionals select it; x-martini-input-schemas lists the same alias → schema map for tools that skip conditionals.

projectIdstring

Override the key's default project. Without canvasId, the project's first canvas is used.

canvasIdstring

Override the key's default canvas; requires projectId.

placement'auto'

Only auto (next to the last node on the canvas) is supported.

idempotencyKeystring

Re-posting the same key with the same request returns the generation the first call created.

mode'draft'

draft creates an editable node without charging or contacting a provider.

Response

Idempotent replay: the generation the first call created, in its current state.

idstring required

Public request id; also the canvas asset the generation lands on.

endpointstring required

The registered alias the request was submitted against.

status'draft' | 'pending' | 'running' | 'completed' | 'failed' | 'cancelled' required
origin'api' required
createdAtstring required
startedAtstring nullable required
completedAtstring nullable required
oliveCostnumber nullable required

Snapshotted charge in olives; null only while a concurrent idempotent submit is still being priced.

outputobject nullable required

The model output in its fal field names once status is completed; otherwise null.

warningsstring[] required

Changes

No recorded changes to this operation across all 1 revision of this API.