# MiniMax | H3 | Max | Turbo | Text to Video H3 Max Turbo Text-to-Video creates prompt-led AI video clips with duration, aspect ratio, and resolution controls for creative workflows. ## API Information - **Model Slug:** minimax-h3-max-turbo-text-to-video - **Branded URL:** https://www.eachlabs.ai/fal/minimax-h3-max/minimax-h3-max-turbo-text-to-video - **Provider:** fal - **Category:** Text to Video - **Output Type:** video - **Status:** active - **Base Cost:** 768P resolution (default): $0.026 per second through October 31, 2026 (35% promotional discount). After that, the price will be $0.04 per second. - **Estimated Processing Time:** 300 seconds - **Interactive Demo:** https://www.eachlabs.ai/ai-models/minimax-h3-max-turbo-text-to-video ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $0.2600 - **Pricing Details:** 768P resolution (default): $0.026 per second through October 31, 2026 (35% promotional discount). After that, the price will be $0.04 per second. ### Pricing Rules | Condition | Pricing | | --- | --- | | output.billing.billable_units exists "undefined" AND output.billing.billable_units > "0" AND output.billing.unit_cost_usd exists "undefined" AND output.billing.unit_cost_usd > "0" | Billed per second of generated video at the selected resolution's promotional rate (35% off through October 31, 2026). | | resolution eq_i "480P" | 480P resolution: $0.01625 per second through October 31, 2026 (35% promotional discount). After that, the price will be $0.025 per second. | | resolution eq_i "1080P" | 1080P resolution: $0.052 per second through October 31, 2026 (35% promotional discount). After that, the price will be $0.08 per second. | | Rule 4 | 768P resolution (default): $0.026 per second through October 31, 2026 (35% promotional discount). After that, the price will be $0.04 per second. | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Text prompt for video generation. | | duration | integer | No | 5 | 5–15 | Output video duration in seconds. Default: 5. | | resolution | string | No | 768P | 480P, 768P, 1080P | Native generation resolution of the video. Default: 768P. | | aspect_ratio | string | No | 16:9 | 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 | Aspect ratio of the generated video. Default: 16:9. | | prompt_expansion_mode | string | Yes | balanced | disabled, balanced, quality | How much effort to spend rewriting the prompt before generation. Default: balanced. | | seed | integer | No | - | - | Optional random seed. A random seed is selected when omitted. | | enable_safety_checker | boolean | No | true | - | Enable fal's safety checker. Default: true. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "minimax-h3-max-turbo-text-to-video", "input": { "prompt": "A 10 second scene in a rustic Swedish farmhouse kitchen before sunrise. One woman, one kitchen, same lighting throughout. Only one cut in the entire video.\n\nThe woman is in her mid twenties, Scandinavian, fair skin with light freckles, pale grey blue eyes, dark blonde hair loosely tied back with a few strands falling across her face. Bare face, no makeup. Thick oatmeal wool cardigan with sleeves pushed to her elbows, heavy linen apron dusted with flour. Calm and focused, slightly sleepy.\n\nWorn wooden table, a stone oven with its mouth open and glowing, a small frosted window on the left. Cold blue dawn light from the window, warm orange firelight from the oven. Flour dust hanging in the air. Photoreal, 50mm lens, shallow depth of field.\n\n0 to 5s: Medium close up from the side. She kneads dough on the floured table with slow, deliberate movements. Press forward, fold, quarter turn. Flour puffs up on each push. A loose strand of hair falls across her face and she blows it away without stopping. Her hands stay in frame and in focus the whole time.\n\n5 to 10s: One cut to a wider shot as she slides the shaped loaf into the glowing oven with a wooden peel, then straightens up and looks at the fire. The camera holds still.\n\nRealistic human hands with five fingers, correct anatomy, natural grip on the dough and the peel. Consistent face and clothing before and after the cut. Real time speed, no slow motion, no speed ramping. Natural handheld feel with subtle movement. Sounds of dough on wood and crackling fire. No music, no dialogue.", "prompt_expansion_mode": "quality" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated video)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "Authorization: Bearer YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `Authorization` bearer token | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.