> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ishushka.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ishushka.com/_mcp/server.

# Video generation

Generate videos asynchronously with the Ishushka API. Use the preparation endpoint to discover and validate the settings supported by a model before starting a billable generation.

## Workflow

1. List video models with `GET /v1/models?type=video`. The catalog includes request-dependent pricing options; choose the SKU that matches the generation settings.
2. Call `POST /v1/videos/prepare` with the model and selected settings. It returns supported values and an estimated customer price. Select resolution first, then aspect ratio, then size. Repeat until `is_complete` is `true`.
3. Call `POST /v1/videos/generate` with the same settings and your prompt. This starts an asynchronous generation and returns a `generation_id`. Required settings have no defaults.
4. Poll `GET /v1/videos/status/{generationId}` until the generation completes, then fetch the result from `content_url` or call `GET /v1/videos/content/{generationId}`.

Preparation validates settings and does not start a generation or accept a prompt. The final charge is calculated for the generation request and may differ from the preliminary estimate.

## Authentication

Video endpoints accept your API key as a Bearer token, `X-Api-Key` header, or `apikey` query parameter. Use the same account for model discovery, preparation, generation, status, and content requests.

## Reference images and retries

A generation may include image references using owned `file_id` values. External reference URLs are not accepted. You can send an `Idempotency-Key` header when creating a generation to make retries of the same request idempotent.

## Results and retention

Generations run asynchronously. The status response includes the state and, when complete, the content URL. Generated MP4 files are retained for 30 days.