# Account Information Source: https://docs.unifically.com/api-reference/account-information GET https://api.unifically.com/v1/account Retrieve your account information and usage statistics. See supported inputs, parameters, pricing, response fields, and API examples. Retrieve detailed information about your account, including balance, email, timestamps, and restrictions. The bare `/account` path is still supported as a legacy alias of `/v1/account`. ## Request ```bash theme={null} curl --location 'https://api.unifically.com/v1/account' \ --header 'Authorization: Bearer YOUR_API_KEY' ``` ## Response ### Success Response ```json theme={null} { "success": true, "code": 200, "data": { "user_id": 12345, "balance_usd": 100.50, "email": "user@example.com", "created_at": 123, "updated_at": 123, } } ``` ## Response Fields Indicates whether the request was successful (`true`) or failed (`false`) HTTP status code (200 for success) Account information Unique user identifier Current account balance in USD Account email address Unix timestamp of account creation Unix timestamp of last account update ## Authentication All requests require a valid API key in the Authorization header: ``` Authorization: Bearer YOUR_API_KEY ``` Get your API key from the [Unifically Dashboard](https://unifically.com/dashboard). # Authentication Source: https://docs.unifically.com/api-reference/authentication Learn how to authenticate your API requests. See supported inputs, parameters, pricing, response fields, and API examples. ## API Key Authentication All Unifically API endpoints require authentication using a Bearer token. Sign up at [unifically.com](https://unifically.com) to get your API key Include your API key in the Authorization header of every request ## Authentication Header ```bash theme={null} Authorization: Bearer YOUR_API_KEY ``` ## Best Practices Never hardcode your API key. Always store it securely in environment variables or secrets management systems. ```bash theme={null} export UNIFICALLY_API_KEY="your_api_key_here" ``` * Never commit API keys to version control * Don't share keys in public forums or documentation * Rotate keys regularly * Use separate keys for development and production Always check for authentication errors and handle them appropriately in your application. If your API key is compromised, regenerate it immediately from your dashboard. # Webhooks & Callbacks Source: https://docs.unifically.com/api-reference/callbacks Receive task completion notifications via webhook callbacks. See supported inputs, parameters, pricing, response fields, and API examples. When creating tasks, you can provide a `callback_url` to receive webhook notifications when the task completes or fails. This avoids polling and lets you integrate with your backend asynchronously. ## Enabling Callbacks Pass `callback_url` at the top level of your request (outside the `input` object): ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/veo-3.1-fast", "input": { "prompt": "A cat walking on the beach at sunset" }, "callback_url": "https://your-server.com/webhook" }' ``` Optional webhook URL. When provided, the API sends a POST request to this URL when the task completes or fails. Must be a publicly reachable `http://` or `https://` URL — other schemes are rejected at task creation. ## Webhook Payload Format The API sends a POST request to your `callback_url` with a JSON body. The payload structure depends on whether the task succeeded or failed. ### Success Payload When the task completes successfully: ```json theme={null} { "task_id": "abc123def456", "status": "completed", "data": { "video_url": "https://cdn.unifically.com/outputs/abc123.mp4" } } ``` The `data` object contains the output URL(s) based on the task type: | Task Type | Output Field | Description | | - | - | - | | Video | `video_url` | URL to the generated video | | Image | `image_url` | URL to the generated image | | Audio | `audio_url` | URL to the generated audio | Some models may return additional fields. For example, multi-output models might include `image_urls` or `audio_urls` as arrays. ### Failure Payload When the task fails: ```json theme={null} { "task_id": "abc123def456", "status": "failed", "error_message": "Description of what went wrong" } ``` | Field | Type | Description | | - | - | - | | `task_id` | string | The task ID | | `status` | string | `"failed"` | | `error_message` | string | Human-readable error description | ## Request Details * **Method:** POST * **Content-Type:** `application/json` * **Body:** JSON payload as shown above ## Webhook Security Your webhook endpoint is a public URL — anyone who discovers it can POST a fake "task completed" payload. Webhook signing lets your server prove two things about every delivery before acting on it: 1. **Authenticity** — the request really came from Unifically. 2. **Integrity** — the payload was not modified in transit. The signature covers the entire request body, so changing even one byte invalidates it. Signing is **optional and off by default**; existing integrations keep working unchanged. We strongly recommend enabling it in production. ### Enabling signing Enable webhook signing from your dashboard (**Settings → Webhook signing**). You'll get a 64-character hex signing secret — store it in your server's environment (e.g. `UNIFICALLY_WEBHOOK_SECRET`) and never commit it to a repository. The toggle can be switched off at any time (your secret is kept, so re-enabling later needs no changes on your side); **Reset secret** rotates it to a new value. Once enabled, every callback delivery carries two extra headers: ``` x-webhook-timestamp: 1788212345 x-webhook-signature: 8f3a2c7d...e91b ``` | Header | Description | | - | - | | `x-webhook-timestamp` | Unix timestamp in seconds (integer) of when this delivery attempt was sent | | `x-webhook-signature` | Lowercase hex HMAC-SHA256 signature | The signature is computed as: ``` signature = hex( HMAC-SHA256( key = your signing secret, message = timestamp + "." + raw_request_body ) ) ``` ### Verifying a delivery 1. Read the two `x-webhook-*` headers. If signing is enabled and either is missing → reject. 2. Recompute the HMAC over `timestamp + "." + raw body`, using the header value and the **raw request bytes** — not re-serialized JSON. 3. Compare with a **constant-time** comparison. On mismatch, respond `401` and do not process the payload. 4. *(Optional, recommended)* Check timestamp freshness to block replay of captured deliveries. The tolerance is entirely your choice — the examples below use 5 minutes, but tighten, loosen, or remove it to match your needs. Unifically does not enforce any window; the timestamp is signed so you can trust it either way. ```javascript Node.js (Express) theme={null} const crypto = require('crypto'); // Keep the raw bytes; express.json() alone discards them after parsing. app.use(express.json({ verify: (req, res, buf) => { req.rawBody = buf; } })); // Replay tolerance is YOUR policy: adjust freely, or set to Infinity to skip. const TIMESTAMP_TOLERANCE_SECONDS = 300; function verifyUnifically(req) { const timestamp = req.headers['x-webhook-timestamp']; const signature = req.headers['x-webhook-signature']; if (!timestamp || !/^[a-f0-9]{64}$/.test(signature || '')) return false; if (Math.abs(Date.now() / 1000 - Number(timestamp)) > TIMESTAMP_TOLERANCE_SECONDS) return false; const expected = crypto .createHmac('sha256', process.env.UNIFICALLY_WEBHOOK_SECRET) .update(`${timestamp}.${req.rawBody}`) .digest('hex'); return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature)); } app.post('/webhook', (req, res) => { if (!verifyUnifically(req)) return res.sendStatus(401); // req.body is now trusted res.sendStatus(200); }); ``` ```python Python (Flask) theme={null} import hmac, hashlib, os, re, time from flask import Flask, request, abort app = Flask(__name__) SECRET = os.environ["UNIFICALLY_WEBHOOK_SECRET"].encode() # Replay tolerance is YOUR policy: adjust freely, or remove the check to skip. TIMESTAMP_TOLERANCE_SECONDS = 300 def verify_unifically(req) -> bool: timestamp = req.headers.get("x-webhook-timestamp", "") signature = req.headers.get("x-webhook-signature", "") if not timestamp or not re.fullmatch(r"[a-f0-9]{64}", signature): return False if abs(time.time() - int(timestamp)) > TIMESTAMP_TOLERANCE_SECONDS: return False message = f"{timestamp}.".encode() + req.get_data() # raw bytes expected = hmac.new(SECRET, message, hashlib.sha256).hexdigest() return hmac.compare_digest(expected, signature) @app.post("/webhook") def webhook(): if not verify_unifically(request): abort(401) # request.json is now trusted return "", 200 ``` ### Common mistakes * **Verifying against re-serialized JSON.** `JSON.stringify(req.body)` may reorder keys or change whitespace and will not match the bytes we signed. Always keep and use the raw request body. * **Comparing with `===` / `==`.** String equality leaks timing information. Use `crypto.timingSafeEqual` / `hmac.compare_digest`. * **Forgetting what skipping the timestamp check means.** It's your call to make — but without any freshness window, a captured delivery stays replayable forever. If you skip it, deduplicate on `task_id` instead. * **Reading the timestamp from anywhere else.** Verify with the exact `x-webhook-timestamp` header value — it's part of the signed message, so a forged timestamp breaks the signature by itself. ### Rotating and disabling * **Reset secret** (dashboard) rotates the secret. Deliveries signed with the old secret stop verifying immediately, so update your server's environment right after resetting. Use this if the secret may have leaked. * **Disabling** the toggle stops signing; callbacks are delivered without signature headers again. Your secret is kept, so re-enabling later restores it and your server needs no change. ## Delivery Retries If your endpoint is unreachable or returns a non-2xx status, delivery is retried up to 4 more times: at 5 minutes, 10 minutes, 30 minutes, and 1 hour after the task finished. After the 1-hour mark, automatic delivery stops. Every attempt is signed independently with a fresh timestamp and signature, so a retried delivery always passes a correct verifier — never cache or pin signatures. The full attempt history is visible on the task via `GET /v1/tasks/{task_id}` as `callback_result`. ### Manual redelivery If your system was down and all automatic retries were exhausted, you can re-fire the webhook for any finished task from the dashboard: open **Task Logs**, select the task, and click **Retry callback**. This sends one fresh, signed delivery attempt to the stored callback URL and appends it to the task's `callback_result` history. Automatic and manual attempts share one budget: a task's delivery log holds at most **10 attempts total** (up to 5 automatic, the rest manual). Once the log is full, further manual retries are refused. ## Best Practices 1. **Respond quickly** — Return a 2xx status code within a few seconds to acknowledge receipt. Process the payload asynchronously if needed. 2. **Verify webhook origin** — Enable webhook signing and verify the `x-webhook-signature` header as described above. 3. **Handle duplicates** — The same webhook may be delivered more than once (retries, manual redelivery); use `task_id` to deduplicate. 4. **Validate URLs** — Ensure your callback URL is publicly accessible and accepts POST requests. ## Example Handler ```javascript theme={null} // Express.js example app.post('/webhook', (req, res) => { const { task_id, status, data, error_message } = req.body; // Acknowledge immediately res.status(200).send('OK'); if (status === 'completed') { const url = data.video_url || data.image_url || data.audio_url; console.log(`Task ${task_id} completed: ${url}`); // Process the completed task... } else if (status === 'failed') { console.error(`Task ${task_id} failed: ${error_message}`); // Handle the failure... } }); ``` # Error Handling Source: https://docs.unifically.com/api-reference/error-handling Understanding Unifically API error responses. See supported inputs, parameters, pricing, response fields, and API examples. ## Response Structure All Unifically API responses follow a consistent structure: ### Success Response ```json theme={null} { "success": true, "code": 200, "data": { // Response data } } ``` ### Error Response ```json theme={null} { "success": false, "code": 400, "data": { "message": "Error message" } } ``` Empty arrays and objects are omitted from responses when not needed. ## HTTP Status Codes | Code | Meaning | Description | | - | - | - | | `200` | Success | Task successfully submitted | | `400` | Bad Request | Task generation failed | | `401` | Unauthorized | Invalid or missing API key | | `422` | Validation Error | Invalid request parameters | | `429` | Too Many Requests | Rate limit exceeded | | `500` | Internal Server Error | Server error occurred | ## Error Response Format When an error occurs, the API returns a simplified structure: ```json theme={null} { "success": false, "code": 400, "data": { "message": "Error message" } } ``` ### Response Fields Indicates whether the request was successful (`true`) or failed (`false`) HTTP status code (200, 400, 401, 422, 429, 500) Response data or error details Human-readable error message (on error) ## Example Error Responses ```json theme={null} { "success": false, "code": 401, "data": { "message": "Invalid API key provided" } } ``` **Solution**: Verify your API key is correct and properly formatted in the Authorization header: ```bash theme={null} Authorization: Bearer YOUR_ACTUAL_API_KEY ``` ```json theme={null} { "success": false, "code": 429, "data": { "message": "Rate limit exceeded. Please try again later" } } ``` **Solution**: Implement exponential backoff and respect rate limits ```json theme={null} { "success": false, "code": 422, "data": { "message": "Missing required parameter: prompt" } } ``` **Solution**: Check the API documentation for required parameters and valid values ```json theme={null} { "success": false, "code": 400, "data": { "message": "Task generation failed" } } ``` **Solution**: Review your request parameters and try again ```json theme={null} { "success": false, "code": 500, "data": { "message": "Internal server error occurred" } } ``` **Solution**: Retry the request after a brief delay. Contact support if the issue persists ## Best Practices Check the `success` field in every response to determine success or failure Retry failed requests with exponential backoff for 429 and 500 errors Log all error responses including the error message for debugging Implement rate limit handling to avoid 429 errors Always parse the `error.message` field to provide helpful feedback to your users Never expose your API key in client-side code or public repositories # Resources Source: https://docs.unifically.com/api-reference/resources Get provider resources like motions, voices, and sounds. See supported inputs, parameters, pricing, response fields, and API examples. These discovery endpoints provide provider-specific resources such as motion presets, voices, and sounds that can be used with various models. They are exposed under `/v1/resources`. ## Quick Reference | Endpoint | Provider | Resource | | - | - | - | | `GET /v1/resources/grok/voices` | xAI | Grok Imagine voice presets | | `GET /v1/resources/kuaishou/kling/voices` | Kling | Kling voice presets | | `GET /v1/resources/google/voices/veo-3.1` | Google | Google video voice presets | | `GET /v1/resources/google/tts/voices` | Google | Gemini TTS voices | | `GET /v1/resources/google/tts/languages` | Google | Gemini TTS languages | | `GET /v1/resources/elevenlabs/voices` | ElevenLabs | Voices | | `GET /v1/resources/suno-ai/voice/verification-phrase` | Suno | Voice verification phrase | *** ## Examples ### Get Grok Imagine Voices Returns the 26 preset voices accepted by `voice` on [Grok Imagine Video](/models/video/xai/grok-imagine-video), including descriptions, suggested uses, and preview audio. ```bash theme={null} curl https://api.unifically.com/v1/resources/grok/voices \ -H "Authorization: Bearer YOUR_API_KEY" ``` **Response excerpt:** ```json theme={null} { "success": true, "data": { "version": 2, "voice_count": 26, "voices": [ { "id": "ara", "name": "Ara", "description": "Warm and friendly", "tags": ["Assistant", "Support"], "preview_url": "https://app-media.x.ai/voice-samples/imagine/ara.mp3?v=2" }, { "id": "eve", "name": "Eve", "description": "Energetic and upbeat", "tags": ["Assistant", "Wellness"], "preview_url": "https://app-media.x.ai/voice-samples/imagine/eve.mp3?v=2" } ] } } ``` Available IDs: ```text theme={null} ara, eve, leo, rex, sal, carina, zagan, helix, orion, luna, iris, altair, zenith, perseus, helios, lux, kepler, rigel, cosmo, celeste, ursa, sirius, lumen, castor, naksh, atlas ``` Voice names are case-insensitive. Send the preset ID as `voice`; do not send an audio URL or Grok's internal asset ID. | ID | Description | Suggested uses | | - | - | - | | `ara` | Warm and friendly | Assistant, Support | | `eve` | Energetic and upbeat | Assistant, Wellness | | `leo` | Authoritative and strong | Narration, Advertising | | `rex` | Confident and clear | Assistant, Support | | `sal` | Smooth and balanced | Narration, Podcast | | `carina` | Soft, empathetic, and soothing | Wellness, Support | | `zagan` | Powerful, dramatic, and unmistakable | Characters, Narration | | `helix` | Bold, dynamic, and adrenaline-fueled | Commentary, Podcast | | `orion` | Rich, cinematic, and resonant | Narration, Audiobooks | | `luna` | Gentle, patient, and deeply nurturing | Education, Assistant | | `iris` | Friendly, upbeat, and naturally charming | Sales, Support | | `altair` | Elegant, refined, and effortlessly premium | Advertising, Narration | | `zenith` | Sharp, focused, and driven | Sales, Advertising | | `perseus` | Strong, confident, and trustworthy | Advertising, Narration | | `helios` | Upbeat, energetic, and endlessly versatile | Assistant, Wellness | | `lux` | Grounded, calm, and quietly wise | Wellness, Narration | | `kepler` | Inventive, forward-thinking, and charismatic | Advertising, Podcast | | `rigel` | Precise, professional, and calmly confident | Assistant, Support | | `cosmo` | Bright, curious, and easy to follow | Education, Podcast | | `celeste` | Compassionate, confident, and reassuring | Support, Assistant | | `ursa` | Friendly, warm, and steadfast | Assistant, Podcast | | `sirius` | Quick-witted, clever, and playful | Commentary, Characters | | `lumen` | Warm, articulate, and engaging | Education, Advertising | | `castor` | Charismatic, down-to-earth, and easygoing | Sales, Support | | `naksh` | Warm, thoughtful, and wise | Assistant, Support | | `atlas` | Confident, commanding, and reassuring | Sales, Assistant | ### Get Kling Voices Returns available voice presets for use with Kling video models that support `voice_id` (e.g. 2.6, 3.0, 3.0 Omni). ```bash theme={null} curl https://api.unifically.com/v1/resources/kuaishou/kling/voices \ -H "Authorization: Bearer YOUR_API_KEY" ``` **Response:** ```json theme={null} { "code": 200, "success": true, "data": [ { "id": 1, "name": "Male Voice 1" }, { "id": 2, "name": "Female Voice 1" } ] } ``` ### Get Google Veo Voices Returns available Google Flow voice presets for Google video models that support the `voice` parameter, including Veo 3.1 reference mode and Omni Flash video/edit requests. Voice use requires at least 1 image or character reference in the task input. ```bash theme={null} curl https://api.unifically.com/v1/resources/google/voices/veo-3.1 \ -H "Authorization: Bearer YOUR_API_KEY" ``` **Response:** ```json theme={null} { "code": 200, "success": true, "data": [ { "id": "achernar", "name": "Achernar", "description": "Female, soft, high pitch", "sample": "https://gstatic.com/aistudio/voices/samples/Achernar.wav" }, { "id": "achird", "name": "Achird", "description": "Male, friendly, mid pitch", "sample": "https://gstatic.com/aistudio/voices/samples/Achird.wav" }, { "id": "algenib", "name": "Algenib", "description": "Male, gravelly, low pitch", "sample": "https://gstatic.com/aistudio/voices/samples/Algenib.wav" } ] } ``` Common Google Flow preset IDs include: ```text theme={null} achernar, achird, algenib, algieba, alnilam, aoede, autonoe, callirrhoe, charon, despina, enceladus, erinome, fenrir, gacrux, iapetus, kore, laomedeia, leda, orus, puck, pulcherrima, rasalgethi, sadachbia, sadaltager, schedar, sulafat, umbriel, vindemiatrix, zephyr, zubenelgenubi ``` `lapetus` is accepted as an alias for `iapetus`. ### Get Gemini TTS Voices Returns the 30 prebuilt voices accepted by `voice` and `speakers[].voice` on the [Gemini TTS models](/models/audio/google/gemini-3.8-flash-tts) (`google/gemini-3.8-flash-tts`, `google/gemini-3.8-flash-lite-tts`, `google/gemini-3.1-flash-tts`, `google/gemini-2.5-pro-tts`, `google/gemini-2.5-flash-tts`). Each voice lists Google's style label and, where one exists, the OpenAI-style alias — both forms are valid in requests. ```bash theme={null} curl https://api.unifically.com/v1/resources/google/tts/voices \ -H "Authorization: Bearer YOUR_API_KEY" ``` **Response excerpt:** ```json theme={null} { "code": 200, "success": true, "data": { "voices": [ { "name": "Kore", "style": "firm", "openai_alias": "alloy" }, { "name": "Puck", "style": "upbeat", "openai_alias": "echo" }, { "name": "Sulafat", "style": "warm", "openai_alias": "coral" } ], "total": 30 } } ``` Available voice names: ```text theme={null} Achernar, Achird, Algenib, Algieba, Alnilam, Aoede, Autonoe, Callirrhoe, Charon, Despina, Enceladus, Erinome, Fenrir, Gacrux, Iapetus, Kore, Laomedeia, Leda, Orus, Puck, Pulcherrima, Rasalgethi, Sadachbia, Sadaltager, Schedar, Sulafat, Umbriel, Vindemiatrix, Zephyr, Zubenelgenubi ``` OpenAI-style aliases: `alloy` → Kore, `ash` → Fenrir, `ballad` → Umbriel, `coral` → Sulafat, `echo` → Puck, `fable` → Aoede, `nova` → Leda, `onyx` → Charon, `sage` → Callirrhoe, `shimmer` → Zephyr, `verse` → Orus. ### Get Gemini TTS Languages Returns the BCP-47 locale codes accepted by the optional `language` parameter on the Gemini TTS models. The parameter is optional — omit it and the model auto-detects the language from the text (70+ languages). ```bash theme={null} curl https://api.unifically.com/v1/resources/google/tts/languages \ -H "Authorization: Bearer YOUR_API_KEY" ``` **Response excerpt:** ```json theme={null} { "code": 200, "success": true, "data": { "languages": [ { "code": "de-DE", "name": "German" }, { "code": "en-US", "name": "English (US)" }, { "code": "ja-JP", "name": "Japanese" } ], "total": 24, "auto_detect": true } } ``` ### Get ElevenLabs Voices ```bash theme={null} curl https://api.unifically.com/v1/resources/elevenlabs/voices \ -H "Authorization: Bearer YOUR_API_KEY" ``` **Response:** ```json theme={null} { "code": 200, "success": true, "data": { "voices": [ { "voice_id": "21m00Tcm4TlvDq8ikWAM", "name": "Rachel", "category": "premade", "labels": { "accent": "american", "age": "young", "gender": "female" }, "preview_url": "https://storage.googleapis.com/..." } ] } } ``` ### Get Suno Voice Verification Phrase Generates a verification phrase for Suno voice creation. **Query Parameters:** | Parameter | Type | Required | Description | | - | - | - | - | | `language` | string | No | Language code for the phrase. Available: `zh`, `en`, `es`, `fr`, `pt`, `de`, `ja`, `ko`, `hi`, `ru` | ```bash theme={null} curl https://api.unifically.com/v1/resources/suno-ai/voice/verification-phrase?language=ru \ -H "Authorization: Bearer YOUR_API_KEY" ``` **Response:** ```json theme={null} { "success": true, "code": 200, "data": { "phrase_id": "ea748c01-6257-45ff-a037-c8657ff5c09d", "phrase_text": "Sing a cheerful melody with your clear voice today" } } ``` *** ## Using Resources Use the `id` value from the response as the corresponding parameter when creating a task: | Resource Type | Use As Parameter | | - | - | | Voices (Grok Imagine) | `voice` | | Voices (ElevenLabs) | `voice_id` | | Voices (Kling) | `voice_id` in elements or voices array | | Voices (Google Veo) | `voice` | | Voices (Gemini TTS) | `voice` (or `speakers[].voice`) — use `name` or `openai_alias` | | Languages (Gemini TTS) | `language` — use `code` | | Voice Verification Phrase | `phrase_id` | # Base64 Upload Source: https://docs.unifically.com/api-reference/storage/base64-upload PUT https://files.unifically.com/upload Upload files as base64-encoded strings. See supported inputs, parameters, pricing, response fields, and API examples. Upload a file as a base64-encoded string in JSON format. Base64 string can be either raw or data string. **Upload limits:** * **Free users:** 1 GB per day, up to 5 uploads per minute. * **Paid users** (topped up \$5 or more): 10 GB per day, up to 50 uploads per minute. ## Request ```bash theme={null} curl --location --request PUT 'https://files.unifically.com/upload' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "base64": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==" }' ``` ## Request Body ```json theme={null} { "base64": "YOUR_BASE64_ENCODED_FILE_STRING" } ``` ## Parameters Base64-encoded file content ## Example ```bash theme={null} curl --location --request PUT 'https://files.unifically.com/upload' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "base64": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==" }' ``` ## Response ### Success Response **Status Code:** `200 OK` ```json theme={null} { "success": true, "file_url": "https://files.unifically.com/image/2b847255-e028-4cf7-a2aa-c638f3e15cbc.webp" } ``` Whether the upload was successful URL to access the uploaded file ## Use Cases * Uploading files from web applications * When file is already in base64 format * Best for: Browser-based uploads, embedded images, API integrations ## Notes * Ensure your file is properly base64-encoded before sending * Base64 encoding increases file size by approximately 33% * Maximum file size may be limited by your API plan # Direct File Upload Source: https://docs.unifically.com/api-reference/storage/direct-upload PUT https://files.unifically.com/upload Upload files directly using multipart/form-data. See supported inputs, parameters, pricing, response fields, and API examples. Upload a file directly from your local system using multipart/form-data. **Upload limits:** * **Free users:** 1 GB per day, up to 5 uploads per minute. * **Paid users** (topped up \$5 or more): 10 GB per day, up to 50 uploads per minute. ## Request ```bash theme={null} curl --location --request PUT 'https://files.unifically.com/upload' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --form 'file=@"/path/to/your/file.png"' ``` ## Parameters The file to upload. Use `@` prefix followed by the file path ## Example ```bash theme={null} curl --location --request PUT 'https://files.unifically.com/upload' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --form 'file=@"/Users/john/Documents/image.png"' ``` ## Response ### Success Response **Status Code:** `200 OK` ```json theme={null} { "success": true, "file_url": "https://files.unifically.com/image/2b847255-e028-4cf7-a2aa-c638f3e15cbc.webp" } ``` Whether the upload was successful URL to access the uploaded file ## Use Cases * Uploading files from local file system * Direct file uploads from applications * Best for: Command-line uploads, server-to-server transfers # Storage Overview Source: https://docs.unifically.com/api-reference/storage/overview Upload and store files using multiple methods. See supported inputs, parameters, pricing, response fields, and API examples. Unifically provides flexible file storage with three upload methods to suit different use cases. **Upload limits:** * **Free users:** 1 GB per day, up to 5 uploads per minute. * **Paid users** (topped up \$5 or more): 10 GB per day, up to 50 uploads per minute. ## Available Upload Methods Upload files directly from your local system using multipart/form-data Upload files as base64-encoded strings in JSON format Upload files by providing a publicly accessible URL ## Response Format All upload methods return a consistent response format: ### Success Response **Status Code:** `200 OK` ```json theme={null} { "success": true, "file_url": "https://files.unifically.com/image/2b847255-e028-4cf7-a2aa-c638f3e15cbc.webp" } ``` ### Error Response **Status Code:** `400 Bad Request` ```json theme={null} { "success": false, "message": "Error message here" } ``` ## Authentication All storage endpoints require a valid API key in the Authorization header: ``` Authorization: Bearer YOUR_API_KEY ``` Get your API key from the [Unifically Dashboard](https://unifically.com/dashboard). # URL Upload Source: https://docs.unifically.com/api-reference/storage/url-upload PUT https://files.unifically.com/upload Upload files by providing a URL. See supported inputs, parameters, pricing, response fields, and API examples. Upload a file by providing a publicly accessible URL. The server will fetch and store the file. **Upload limits:** * **Free users:** 1 GB per day, up to 5 uploads per minute. * **Paid users** (topped up \$5 or more): 10 GB per day, up to 50 uploads per minute. ## Request ```bash theme={null} curl --location --request PUT 'https://files.unifically.com/upload' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "file_url": "https://example.com/path/to/file.png" }' ``` ## Request Body ```json theme={null} { "file_url": "https://example.com/path/to/file.png" } ``` ## Parameters Publicly accessible URL of the file to upload ## Example ```bash theme={null} curl --location --request PUT 'https://files.unifically.com/upload' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "file_url": "https://file.com/images/sample.png" }' ``` ## Response ### Success Response **Status Code:** `200 OK` ```json theme={null} { "success": true, "file_url": "https://files.unifically.com/image/2b847255-e028-4cf7-a2aa-c638f3e15cbc.webp" } ``` Whether the upload was successful URL to access the uploaded file ## Use Cases * Importing files from external sources * Migrating files from other storage services * Best for: Bulk imports, file migrations, webhook integrations ## Requirements * The URL must be publicly accessible (no authentication required) * The file must be directly downloadable * HTTPS URLs are recommended # Chat Completions API Source: https://docs.unifically.com/api-reference/v1-chat-completions POST https://api.unifically.com/v1/chat/completions OpenAI-compatible chat completions for all supported LLM models. See supported inputs, parameters, pricing, response fields, and API examples. The `/v1/chat/completions` endpoint provides an **OpenAI-compatible** interface for text generation. Use the same request format as the OpenAI Chat Completions API — swap the base URL to `https://api.unifically.com` and pass any supported model ID in the `model` field. All [LLM models](/models/llm/overview) support this endpoint, including Cursor, OpenAI, and Anthropic models. ## Create Chat Completion **POST** `/v1/chat/completions` ### Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-5.4", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Explain quantum computing in one paragraph."} ] }' ``` ### Request Parameters Model identifier in `provider/model-name` format. See [Available LLM Models](/models/llm/overview). Array of message objects with `role` (`system`, `user`, or `assistant`) and `content` (string or content parts array). If `true`, the response is streamed using server-sent events. Default: `false`. Sampling temperature between `0` and `2`. Higher values produce more random output. Maximum number of tokens to generate in the completion. Nucleus sampling parameter. Alternative to temperature. Up to four sequences where the model stops generating further tokens. List of tools the model may call. Each tool requires a `type` and function definition. Controls which (if any) tool is called. Options: `none`, `auto`, `required`, or a specific tool. Set `{ "type": "json_object" }` to enable JSON mode when supported by the model. ### Response ```json 200 theme={null} { "id": "chatcmpl-abc123", "object": "chat.completion", "created": 1710000000, "model": "openai/gpt-5.4", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Quantum computing uses quantum bits..." }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 28, "completion_tokens": 64, "total_tokens": 92 } } ``` ### Streaming Response When `stream: true`, the API returns `text/event-stream` chunks in OpenAI format: ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "anthropic/claude-sonnet-4-6", "messages": [{"role": "user", "content": "Hello!"}], "stream": true }' ``` Each chunk is a `data:` line containing a partial completion object, ending with `data: [DONE]`. *** ## Supported Models | Model | Provider | | - | - | | `cursor/composer-2.5` | Cursor | | `cursor/composer-2.5-fast` | Cursor | | `openai/gpt-5.4-mini` | OpenAI | | `openai/gpt-5.4-nano` | OpenAI | | `openai/gpt-5.4` | OpenAI | | `openai/gpt-5.5` | OpenAI | | `anthropic/claude-sonnet-4-6` | Anthropic | | `anthropic/claude-opus-4-6` | Anthropic | | `anthropic/claude-opus-4-7` | Anthropic | | `anthropic/claude-opus-4-8` | Anthropic | See individual model pages under [LLM Models](/models/llm/overview) for details. *** ## SDK Compatibility Point any OpenAI SDK at Unifically by changing the base URL: ```python theme={null} from openai import OpenAI client = OpenAI( api_key="YOUR_API_KEY", base_url="https://api.unifically.com/v1" ) response = client.chat.completions.create( model="openai/gpt-5.4", messages=[{"role": "user", "content": "Hello!"}] ) ``` ```typescript theme={null} import OpenAI from "openai"; const client = new OpenAI({ apiKey: process.env.UNIFICALLY_API_KEY, baseURL: "https://api.unifically.com/v1", }); const response = await client.chat.completions.create({ model: "anthropic/claude-sonnet-4-6", messages: [{ role: "user", content: "Hello!" }], }); ``` # Messages API Source: https://docs.unifically.com/api-reference/v1-messages POST https://api.unifically.com/v1/messages Anthropic Messages-compatible API for all supported LLM models. See supported inputs, parameters, pricing, response fields, and API examples. The `/v1/messages` endpoint provides an **Anthropic Messages API-compatible** interface for text generation. Use the same request format as the Anthropic Messages API — swap the base URL to `https://api.unifically.com` and pass any supported model ID in the `model` field. All [LLM models](/models/llm/overview) support this endpoint, including Cursor, OpenAI, and Anthropic models. ## Create Message **POST** `/v1/messages` ### Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "anthropic/claude-sonnet-4-6", "max_tokens": 1024, "messages": [ {"role": "user", "content": "Explain quantum computing in one paragraph."} ] }' ``` ### Request Parameters Model identifier in `provider/model-name` format. See [Available LLM Models](/models/llm/overview). Maximum number of tokens to generate before stopping. Array of message objects with `role` (`user` or `assistant`) and `content` (string or content blocks array). System prompt providing context and instructions to the model. If `true`, the response is streamed using server-sent events. Default: `false`. Sampling temperature between `0` and `1`. Nucleus sampling parameter. Use either `temperature` or `top_p`, not both. Custom sequences that cause the model to stop generating. Definitions of tools the model may use. Each tool includes `name`, `description`, and `input_schema`. Controls tool usage. Default: `{ "type": "auto" }`. ### System Prompt Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "openai/gpt-5.4", "max_tokens": 512, "system": "You are a helpful coding assistant. Be concise.", "messages": [ {"role": "user", "content": "What is a closure in JavaScript?"} ] }' ``` ### Response ```json 200 theme={null} { "id": "msg_abc123", "type": "message", "role": "assistant", "model": "anthropic/claude-sonnet-4-6", "content": [ { "type": "text", "text": "Quantum computing harnesses quantum mechanical phenomena..." } ], "stop_reason": "end_turn", "usage": { "input_tokens": 18, "output_tokens": 72 } } ``` ### Streaming Response When `stream: true`, the API returns `text/event-stream` with Anthropic-compatible event types (`message_start`, `content_block_delta`, `message_stop`, etc.): ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "cursor/composer-2.5-fast", "max_tokens": 1024, "messages": [{"role": "user", "content": "Hello!"}], "stream": true }' ``` *** ## Supported Models | Model | Provider | | - | - | | `cursor/composer-2.5` | Cursor | | `cursor/composer-2.5-fast` | Cursor | | `openai/gpt-5.4-mini` | OpenAI | | `openai/gpt-5.4-nano` | OpenAI | | `openai/gpt-5.4` | OpenAI | | `openai/gpt-5.5` | OpenAI | | `anthropic/claude-sonnet-4-6` | Anthropic | | `anthropic/claude-opus-4-6` | Anthropic | | `anthropic/claude-opus-4-7` | Anthropic | | `anthropic/claude-opus-4-8` | Anthropic | See individual model pages under [LLM Models](/models/llm/overview) for details. *** ## SDK Compatibility Point the Anthropic SDK at Unifically by changing the base URL: ```python theme={null} import anthropic client = anthropic.Anthropic( api_key="YOUR_API_KEY", base_url="https://api.unifically.com" ) message = client.messages.create( model="anthropic/claude-opus-4-7", max_tokens=1024, messages=[{"role": "user", "content": "Hello!"}] ) print(message.content[0].text) ``` ```typescript theme={null} import Anthropic from "@anthropic-ai/sdk"; const client = new Anthropic({ apiKey: process.env.UNIFICALLY_API_KEY, baseURL: "https://api.unifically.com", }); const message = await client.messages.create({ model: "anthropic/claude-sonnet-4-6", max_tokens: 1024, messages: [{ role: "user", content: "Hello!" }], }); ``` # List Models Source: https://docs.unifically.com/api-reference/v1-models GET https://api.unifically.com/v1/models List every model available to your account, across video, image, audio, and LLM. See parameters, pricing, and API examples. Returns every enabled model your API key can access — video, image, and audio generation models alongside LLMs — in the OpenAI-compatible list format, so existing OpenAI SDK code works unchanged. This endpoint returns the raw OpenAI list shape (`{ "object": "list", "data": [...] }`), **not** the standard `{ success, code, data }` envelope used by the rest of the API. ## Request ```bash theme={null} curl https://api.unifically.com/v1/models \ -H "Authorization: Bearer YOUR_API_KEY" ``` Optional comma-separated list of model categories: `llm`, `video`, `image`, or `audio`. Values are case-insensitive. Example: `category=video,image`. To return only LLM models: ```bash theme={null} curl "https://api.unifically.com/v1/models?category=llm" \ -H "Authorization: Bearer YOUR_API_KEY" ``` To return models from more than one category, separate the categories with commas: ```bash theme={null} curl "https://api.unifically.com/v1/models?category=video,image" \ -H "Authorization: Bearer YOUR_API_KEY" ``` ## Response ```json theme={null} { "object": "list", "data": [ { "id": "elevenlabs/text-to-speech", "object": "model", "created": 1715040000, "added": 1753142400, "owned_by": "elevenlabs", "provider_display": "ElevenLabs", "display_name": "ElevenLabs Text-to-Speech", "category": "audio" }, { "id": "moonshotai/kimi-k2", "object": "model", "created": 1752278400, "added": 1752364800, "owned_by": "moonshotai", "provider_display": "Moonshot AI", "display_name": "Kimi K2", "category": "llm", "context_length": 128000, "max_output": 16384 }, { "id": "google/veo-3.1-fast", "object": "model", "created": 1760486400, "added": 1760572800, "owned_by": "google", "provider_display": "Google", "display_name": "Veo 3.1 Fast", "category": "video" } ] } ``` ## Response Fields Always `"list"`. The list of models, grouped by category and sorted by display name. Model identifier in `provider/model-name` format. This is the exact value to pass as `model` when creating tasks or LLM requests. Always `"model"`. Provider's official release date as a unix timestamp (seconds). Falls back to `added` when the release date is unknown. Unix timestamp (seconds) when the model was added to Unifically. Provider slug, e.g. `google`, `moonshotai`, `elevenlabs`. This is also the first segment of `id`. Human-readable provider name, e.g. `Google`, `Moonshot AI`, `ElevenLabs`. Use this for display instead of the raw `owned_by` slug. Human-readable model name. One of `audio`, `image`, `video`, `llm`. Provider-anchored: ElevenLabs and Suno models are always `audio` (including speech-to-text and lyrics). Maximum context window in tokens. LLM models only. Maximum output tokens per request. LLM models only. *** ## Retrieve a Model **GET** `/v1/models/{model_id}` Returns a single model object by its exact ID (OpenAI retrieve-model compatible). ```bash theme={null} curl https://api.unifically.com/v1/models/google/veo-3.1-fast \ -H "Authorization: Bearer YOUR_API_KEY" ``` ```json theme={null} { "id": "google/veo-3.1-fast", "object": "model", "created": 1760486400, "added": 1760572800, "owned_by": "google", "provider_display": "Google", "display_name": "Veo 3.1 Fast", "category": "video" } ``` ## Filter by Provider If the path segment is a provider slug instead of a model ID, the response is a list filtered to that provider: ```bash theme={null} curl https://api.unifically.com/v1/models/elevenlabs \ -H "Authorization: Bearer YOUR_API_KEY" ``` ```json theme={null} { "object": "list", "data": [ { "id": "elevenlabs/text-to-speech", "object": "model", "created": 1715040000, "added": 1753142400, "owned_by": "elevenlabs", "provider_display": "ElevenLabs", "display_name": "ElevenLabs Text-to-Speech", "category": "audio" } ] } ``` ## Errors An unknown model ID or provider returns a `404` in the OpenAI error shape: ```json 404 theme={null} { "error": { "message": "model or provider not found: foo/bar", "type": "invalid_request_error", "code": "model_not_found" } } ``` An invalid `category` value returns a `400` in the same shape: ```json 400 theme={null} { "error": { "message": "category must be a comma-separated list of: llm, video, image, audio", "type": "invalid_request_error", "code": "invalid_category" } } ``` ## Authentication All requests require a valid API key in the Authorization header: ``` Authorization: Bearer YOUR_API_KEY ``` Get your API key from the [Unifically Dashboard](https://unifically.com/dashboard). # Responses API Source: https://docs.unifically.com/api-reference/v1-responses POST https://api.unifically.com/v1/responses OpenAI Responses-compatible API for all supported LLM models. See supported inputs, parameters, pricing, response fields, and API examples. The `/v1/responses` endpoint provides an **OpenAI Responses API-compatible** interface for text generation, tool use, and multi-turn conversations. Use the same request format as the OpenAI Responses API — swap the base URL to `https://api.unifically.com` and pass any supported model ID in the `model` field. All [LLM models](/models/llm/overview) support this endpoint, including Cursor, OpenAI, and Anthropic models. ## Create Response **POST** `/v1/responses` ### Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/responses \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-5.4", "input": "Write a haiku about programming." }' ``` ### Request Parameters Model identifier in `provider/model-name` format. See [Available LLM Models](/models/llm/overview). Text prompt, or an array of input items (messages, tool results, etc.) for multi-turn conversations. System-level instructions for the model. If `true`, the response is streamed using server-sent events. Default: `false`. Sampling temperature between `0` and `2`. Maximum number of output tokens to generate. Tools available to the model. Each tool includes a `type` and definition. Controls tool usage: `none`, `auto`, `required`, or a specific tool. ID of a previous response to continue a multi-turn conversation. Whether to store the response for later retrieval. Default: `true`. ### Multi-turn Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/responses \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "anthropic/claude-opus-4-8", "instructions": "You are a concise technical writer.", "input": [ {"role": "user", "content": "What is an API gateway?"}, {"role": "assistant", "content": "An API gateway is a server that acts as an entry point for API requests..."}, {"role": "user", "content": "Give me a shorter version."} ] }' ``` ### Response ```json 200 theme={null} { "id": "resp_abc123", "object": "response", "created_at": 1710000000, "model": "openai/gpt-5.4", "status": "completed", "output": [ { "type": "message", "role": "assistant", "content": [ { "type": "output_text", "text": "Code flows like rain\nBugs hide in silent logic\nCompile, then rejoice" } ] } ], "usage": { "input_tokens": 12, "output_tokens": 24, "total_tokens": 36 } } ``` ### Streaming Response When `stream: true`, the API returns server-sent events with partial response objects: ```bash theme={null} curl -X POST https://api.unifically.com/v1/responses \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "cursor/composer-2.5", "input": "Explain recursion simply.", "stream": true }' ``` *** ## Supported Models | Model | Provider | | - | - | | `cursor/composer-2.5` | Cursor | | `cursor/composer-2.5-fast` | Cursor | | `openai/gpt-5.4-mini` | OpenAI | | `openai/gpt-5.4-nano` | OpenAI | | `openai/gpt-5.4` | OpenAI | | `openai/gpt-5.5` | OpenAI | | `anthropic/claude-sonnet-4-6` | Anthropic | | `anthropic/claude-opus-4-6` | Anthropic | | `anthropic/claude-opus-4-7` | Anthropic | | `anthropic/claude-opus-4-8` | Anthropic | See individual model pages under [LLM Models](/models/llm/overview) for details. *** ## SDK Compatibility Point any OpenAI SDK at Unifically by changing the base URL: ```python theme={null} from openai import OpenAI client = OpenAI( api_key="YOUR_API_KEY", base_url="https://api.unifically.com/v1" ) response = client.responses.create( model="openai/gpt-5.5", input="Summarize REST APIs in two sentences." ) print(response.output_text) ``` # Unified Tasks API Source: https://docs.unifically.com/api-reference/v1-tasks POST https://api.unifically.com/v1/tasks Create and manage AI generation tasks with a unified interface. See supported inputs, parameters, pricing, response fields, and API examples. The `/v1/tasks` endpoint provides a unified interface for all AI generation models (video, image, audio). This is the unified API for all AI generation models. Use this endpoint for all integrations. ## Create Task **POST** `/v1/tasks` Creates a new generation task for any supported model. ### Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/veo-3.1-fast", "input": { "prompt": "A cat walking on the beach at sunset" }, "callback_url": "https://your-server.com/webhook" }' ``` ### Request Parameters Model identifier in `provider/model-name` format. See [Available Models](#available-models) below. Model-specific input parameters. See [Input Parameters](#input-parameters) for details. Optional webhook URL. When provided, the API sends a POST request to this URL when the task completes or fails. See [Webhooks & Callbacks](/api-reference/callbacks) for payload formats and details. Optional. When set to `true`, the request is validated and the cost is calculated without actually creating a task or deducting from your balance. Useful for previewing the price of a request before committing. ### Response ```json 200 theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ### Dry Run To check the cost of a request without creating a task or deducting from your balance, set `dry_run` to `true`: ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/veo-3.1-fast", "input": { "prompt": "A cat walking on the beach at sunset" }, "dry_run": true }' ``` ```json 200 theme={null} { "code": 200, "success": true, "data": { "cost": 0.40 } } ``` *** ## Get Task Status **GET** `/v1/tasks/:task_id` Retrieves the status and output of a task. ### Request ```bash theme={null} curl https://api.unifically.com/v1/tasks/abc123def456 \ -H "Authorization: Bearer YOUR_API_KEY" ``` ### Path Parameters The unique task ID returned from the create task endpoint ### Response (Processing) ```json 200 theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ### Response (Completed) ```json 200 theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "video_url": "https://cdn.unifically.com/outputs/abc123.mp4" } } } ``` *** ## List Tasks **GET** `/v1/tasks` Lists your tasks, newest first, with pagination and filters. ### Request ```bash theme={null} curl "https://api.unifically.com/v1/tasks?status=completed&category=video&page_size=50" \ -H "Authorization: Bearer YOUR_API_KEY" ``` ### Query Parameters 1-indexed page number. Default `1`. Results per page: `10`, `25`, `50`, or `100`. Default `25`. Other values fall back to `25`. Filter by task status: `processing`, `completed`, or `failed`. Filter by exact model ID, e.g. `google/veo-3.1-fast`. Comma-separated list of model categories: `llm`, `video`, `image`, `audio`. Example: `category=video,image`. Comma-separated list of provider slugs (the part before `/` in the model ID), e.g. `provider=elevenlabs,google`. Unix timestamp in seconds. Only tasks created at or after this moment. Unix timestamp in seconds. Only tasks created at or before this moment. Must be greater than or equal to `created_after` when both are set. ### Response `data` is the array of tasks; `pagination` sits alongside it at the top level. ```json 200 theme={null} { "success": true, "code": 200, "data": [ { "task_id": "abc123def456", "model": "google/veo-3.1-fast", "category": "video", "status": "completed", "cost": 0.40, "created_at": 1752624000, "input": { "prompt": "A cat walking on the beach at sunset" }, "output": { "video_url": "https://cdn.unifically.com/outputs/abc123.mp4" }, "callback_url": "https://your-server.com/webhook", "callback_result": [ { "sent_at": 1752624060, "status": 200, "status_text": "OK" } ] } ], "pagination": { "page": 1, "page_size": 50, "total": 137, "total_pages": 3, "has_next": true, "has_previous": false } } ``` ### Task Fields Unique task identifier. Model ID the task ran on, e.g. `google/veo-3.1-fast`. Model category: `audio`, `image`, `video`, or `llm`. `null` if the model is no longer in the catalog. `processing`, `completed`, or `failed`. Amount charged for the task in USD. Unix timestamp (seconds) when the task was created. The stored request input, as submitted. The task output (e.g. `video_url`, `image_url`, `audio_url`). `null` while processing. The webhook URL provided at creation, or `null`. Webhook delivery attempt log: each entry has `sent_at` (Unix epoch seconds), `status`, `status_text`. Up to 5 automatic attempts; manual redeliveries from the dashboard extend the log up to a shared cap of 10 total. `null` if no callback was configured. Upstream failure text. Only present when `status` is `failed`. Structured provider diagnostics when available on a failed task. For Grok image edits, this includes per-attempt quota checks, stream event summaries, upstream identifiers, failure classifications, and the complete upstream response stream. Treat this field as sensitive operational data. *** ## Available Models ### Video Generation | Model | Description | | - | - | | `google/veo-3.1-fast` | Google Veo 3.1 Fast | | `google/veo-3.1-quality` | Google Veo 3.1 Quality | | `google/veo-3.1-lite` | Google Veo 3.1 Lite | | `google/veo-3.1-lite-relaxed` | Google Veo 3.1 Lite Relaxed | | `google/veo-3.1-extend` | Google Veo 3.1 Extend | | `google/veo-3.1-upscale` | Google Veo 3.1 Upscale | | `google/gemini-omni-flash-video` | Google Gemini Omni Flash Video | | `google/gemini-omni-flash-video-edit` | Google Gemini Omni Flash Video Edit | | `hailuo/minimax-2.0` | Minimax Hailuo 2.0 | | `hailuo/minimax-2.3` | Minimax Hailuo 2.3 | | `hailuo/minimax-2.3-fast` | Minimax Hailuo 2.3 Fast | | `hailuo/minimax-h3` | MiniMax Hailuo H3 | | `kuaishou/kling-3.0-omni-video` | Kling 3.0 Omni Video | | `kuaishou/kling-3.0-omni-video-edit` | Kling 3.0 Omni Video Edit | | `kuaishou/kling-o1-video` | Kling O1 Video | | `kuaishou/kling-o1-video-edit` | Kling O1 Video Edit | | `kuaishou/kling-3.0-video` | Kling 3.0 Video | | `kuaishou/kling-3.0-turbo-video` | Kling 3.0 Turbo Video | | `kuaishou/kling-2.6-video` | Kling 2.6 Video | | `kuaishou/kling-2.5-turbo-video` | Kling 2.5 Turbo Video | | `kuaishou/kling-2.1-video` | Kling 2.1 Video | | `kuaishou/kling-2.1-master-video` | Kling 2.1 Master Video | | `kuaishou/kling-2.6-motion-control` | Kling 2.6 Motion Control | | `kuaishou/kling-3.0-motion-control` | Kling 3.0 Motion Control | | `xai/grok-imagine-video` | Grok Imagine Video (speed-optimized 1.5) | | `xai/grok-imagine-1.5-video` | Grok Imagine Video 1.5 | | `xai/grok-imagine-video-extend` | Grok Imagine Video Extend | | `xai/grok-imagine-upscale` | Grok Imagine Upscale | | `topaz-labs/video-upscale` | Topaz Video Upscale | ### Image Generation | Model | Description | | - | - | | `google/nano-banana` | Nano Banana | | `google/nano-banana-pro` | Nano Banana Pro | | `google/nano-banana-2` | Nano Banana 2 | | `google/nano-banana-2-lite` | Nano Banana 2 Lite (1K, wide aspect ratios) | | `openai/gpt-image-2` | GPT Image 2 (1K/2K/4K, multiple aspect ratios) | | `black-forest-labs/flux.2-pro` | Flux.2 Pro | | `black-forest-labs/flux.2-flex` | Flux.2 Flex | | `black-forest-labs/flux.2-max` | Flux.2 Max | | `kuaishou/kling-o1-image` | Kling O1 Image | | `kuaishou/kling-3.0-omni-image` | Kling 3.0 Omni Image | | `kuaishou/kling-3.0-image` | Kling 3.0 Image | | `kuaishou/kling-2.1-image` | Kling 2.1 Image | | `topaz-labs/image-upscale` | Topaz Image Upscale | | `topaz-labs/image-generative` | Topaz Image Generative | | `alibaba/qwen-image-3.0-pro` | Qwen Image 3.0 Pro (T2I + editing, up to 3 reference images) | | `alibaba/qwen-image-3.0` | Qwen Image 3.0 (T2I + editing, up to 3 reference images) | | `alibaba/qwen-image-2.0-pro` | Qwen Image 2.0 Pro (T2I + editing) | | `alibaba/qwen-image-2.0` | Qwen Image 2.0 (T2I + editing) | | `alibaba/qwen-image-max` | Qwen Image Max (T2I + editing) | | `alibaba/qwen-image-plus` | Qwen Image Plus (T2I + editing) | | `alibaba/qwen-image` | Qwen Image (T2I + editing) | | `alibaba/z-image-turbo` | Z-Image Turbo (T2I only) | | `alibaba/wan-2.7-pro-image` | Wan 2.7 Pro Image (T2I + editing, up to 4K) | | `alibaba/wan-2.7-image` | Wan 2.7 Image (T2I + editing) | | `alibaba/wan-2.6-image` | Wan 2.6 Image (T2I + editing) | | `alibaba/wan-2.5-image` | Wan 2.5 Image (T2I + editing) | | `alibaba/wan-2.2-image` | Wan 2.2 Image (T2I only) | | `alibaba/wan-2.2-flash-image` | Wan 2.2 Flash Image (T2I only) | | `xai/grok-imagine-image` | Grok Imagine Image (speed; T2I + editing) | | `xai/grok-imagine-2.0-image` | Grok Imagine 2.0 Image (quality; T2I + editing) | ByteDance SeeDream models (`bytedance/seedream-5.0-lite`, `bytedance/seedream-4.5`, `bytedance/seedream-4.0`) accept `max_sequential_images` (integer, default `1`)—the maximum number of sequential images the model may generate. This is a ceiling, not a guarantee; the model decides how many to produce (1 up to that limit). Omit or set to `1` for a single image. Sequential images are billed per image. ### Audio Generation | Model | Description | | - | - | | `suno-ai/music` | Suno Music Generation | | `suno-ai/add-vocals` | Add Vocals to Track | | `suno-ai/add-instrumental` | Add Instrumental | | `suno-ai/extend` | Extend Audio | | `suno-ai/cover` | Create Cover | | `suno-ai/stems` | Extract Stems | | `suno-ai/stems-all` | Extract All Stems | | `suno-ai/lyrics` | Generate Lyrics | | `suno-ai/remaster` | Remaster Clip | | `suno-ai/mashup` | Mashup Two Clips | | `suno-ai/inspiration` | Generate From Inspiration Clips | | `suno-ai/sample` | Generate From Sample | | `suno-ai/infill` | Replace Section | | `suno-ai/crop` | Crop / Remove Section | | `suno-ai/fade` | Fade In / Out | | `suno-ai/speed` | Adjust Speed | | `suno-ai/reverse` | Reverse Clip | | `suno-ai/concat` | Get Full Song | | `suno-ai/cover-art` | Cover Art | | `suno-ai/video-gen` | AI Video | | `suno-ai/wav` | WAV Export | | `suno-ai/mp3` | MP3 / M4A Export | | `suno-ai/video` | Music Video Render | | `suno-ai/enhance-prompt` | Enhance Style Prompt | | `suno-ai/vox` | Extract Vocals | | `elevenlabs/text-to-speech` | ElevenLabs Text-to-Speech | | `elevenlabs/text-to-dialogue` | ElevenLabs Multi-Voice Dialogue | | `elevenlabs/sound-effect` | ElevenLabs Sound Effects | | `elevenlabs/voice-isolation` | ElevenLabs Voice Isolation | | `elevenlabs/speech-to-text` | ElevenLabs Speech-to-Text | *** ## Model Parameters All tasks support `callback_url` (outside the `input` object) for webhook notifications. See [Webhooks & Callbacks](/api-reference/callbacks) for full payload formats and best practices. ### Google Veo 3.1 #### Generate Models: `google/veo-3.1-fast`, `google/veo-3.1-quality`, `google/veo-3.1-lite`, `google/veo-3.1-lite-relaxed` Veo supports text-to-video, first-frame, first-and-last-frame, and reference-to-video workflows. Frame mode and reference mode are mutually exclusive. | Mode | Fields | Availability | | - | - | - | | **Frame mode** | `start_image_url` \[+ `end_image_url`] | All models | | **Reference mode** | `reference_image_urls`, `reference_characters` \[+ `voice`] | Image references are available on all modes. Character references are available on Fast, Lite, and Lite Relaxed only. | | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text prompt for video generation. Use `@ImageN` or `@CharacterN` to point at specific references. | | `aspect_ratio` | string | No | `"16:9"` (default) or `"9:16"` | | `duration` | integer | No | `4`, `6`, or `8` seconds. Default `4`. Must be `8` when any image or character reference is set. | | `seed` | integer | No | Reproducibility seed | | `start_image_url` | string | No | Public image URL used as the first frame. Cannot be combined with `reference_image_urls` or `reference_characters`. | | `end_image_url` | string | No | Public image URL used as the final frame. Requires `start_image_url`; cannot be used by itself. | | `reference_image_urls` | string\[] | No | Image references for reference-to-video. Max 3 total expanded image URLs across `reference_image_urls` and character images. Cannot be combined with start/end frame fields. | | `reference_characters` | array | No | Character references. Max 3 total expanded image URLs across images and character `image_urls`. Not available on Quality. | | `voice` | string | No | Voice preset ID. Requires at least 1 image or character reference. See [voices endpoint](/api-reference/resources#get-google-veo-voices). | Character items must be objects with `image_urls`, plus optional `name` and `description`. `image_url` and plain string character entries are not supported. Rejected combinations: `end_image_url` without `start_image_url`; frame fields with reference fields; `reference_characters` on `google/veo-3.1-quality`; any image or character reference with `duration` other than `8`; more than 3 total expanded image URLs; empty character `image_urls`; character `image_url`; plain string character entries. #### Extend Model: `google/veo-3.1-extend` Extend a previously generated video. Aspect ratio is inherited from the source task. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text prompt for the extended content | | `task_id` | string | Yes | Task ID of a completed generation | | `model` | string | Yes | One of: `lite`, `fast`, `quality`, `lite-relaxed` | | `duration` | integer | No | Must be `8` (only supported value for extend). Default `8`. | | `seed` | integer | No | Reproducibility seed | #### Upscale Model: `google/veo-3.1-upscale` Upscale a completed video to a higher resolution. | Parameter | Type | Required | Description | | - | - | - | - | | `task_id` | string | Yes | Task ID of a completed generation | | `resolution` | string | Yes | `"1080p"` or `"4k"` | *** ### Google Gemini Omni Flash Video Model: `google/gemini-omni-flash-video` Generate 4, 6, 8, or 10 second clips in text-to-video, start-frame, or reference-to-video mode. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Main video prompt. Use `@ImageN` or `@CharacterN` to point at specific references. | | `seed` | integer | No | Reproducibility seed. If omitted, one is generated automatically. | | `aspect_ratio` | string | No | `"16:9"` (default) or `"9:16"` | | `duration` | integer | No | `4`, `6`, `8`, or `10` seconds. Default `4`. | | `start_image_url` | string | No | Public image URL used as the first frame. Cannot be combined with `reference_image_urls` or `reference_characters`. | | `reference_image_urls` | string\[] | No | Public image reference URLs. Max 7 total expanded image + character image URLs. Cannot be combined with start/end frame fields. | | `reference_characters` | array | No | Character references. Max 3 character items; expanded image URLs count toward the total 7 reference limit. | | `voice` | string | No | Request-level voice preset ID. Requires at least one image or character reference. See [voices endpoint](/api-reference/resources#get-google-veo-voices). | Start/end frame support is now available. For now, only start frame control (`start_image_url`) is available — end frame support is not yet available on Google's end, but it's coming in an upcoming Google update. *** ### Google Gemini Omni Flash Video Edit Model: `google/gemini-omni-flash-video-edit` Edit an existing uploaded video. Provide exactly one source video URL in `reference_video_urls`. | Parameter | Type | Required | Description | | - | - | - | - | | `reference_video_urls` | string\[] | Yes | Public source video URL. Must contain exactly one URL. | | `prompt` | string | Yes | Edit instruction. Use `@Video1` to refer to the source video and `@ImageN`/`@CharacterN` for extra references. | | `reference_image_urls` | string\[] | No | Public image URLs used as edit references. | | `reference_characters` | array | No | Character references for the edit. Max 3 character items. Supports per-character `voice` or `custom_voice`. See [voices endpoint](/api-reference/resources#get-google-veo-voices). | | `seed` | integer | No | Reproducibility seed. If omitted, one is generated automatically. | | `start_frame` | integer | No | First source frame index included in the edit range. Default `0`. | | `end_frame` | integer | No | Last source frame index included in the edit range. Defaults to the detected final frame when available. | Limits: one video reference, up to 3 character references, up to 7 total video + image + character references, uploaded source video up to 1 GB and up to 30 seconds. Rejected combinations: `task_id`; missing, empty, or multiple `reference_video_urls`; `end_frame` lower than `start_frame`; more than 7 total references; empty character `image_urls`; character `image_url`; plain string character entries. *** ### Minimax Hailuo Models: `hailuo/minimax-2.0`, `hailuo/minimax-2.3`, `hailuo/minimax-2.3-fast` All three are image-to-video models. MiniMax 2.0 accepts a start frame, an end frame, or both. MiniMax 2.3 and 2.3 Fast require a start frame and do not support an end frame. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Video prompt, 1-2000 characters | | `start_frame_url` | string | Conditional | Start frame. Optional for 2.0 when `end_frame_url` is present; required for 2.3 and 2.3 Fast | | `end_frame_url` | string | No | End frame. MiniMax 2.0 only; can be used alone or with `start_frame_url` | | `duration` | integer | No | `6` (default) or `10`. `1080p` only supports `6` | | `resolution` | string | No | 2.0: `"512p"`, `"768p"` (default), or `"1080p"`. 2.3 models: `"768p"` (default) or `"1080p"` | | `prompt_optimizer` | boolean | No | MiniMax 2.0 only. Default `true`; set `false` to preserve the original prompt | The aspect ratio follows the input frame. These models do not accept `aspect_ratio`. MiniMax 2.3 and 2.3 Fast also do not accept `prompt_optimizer`. *** ### MiniMax Hailuo H3 Model: `hailuo/minimax-h3` MiniMax H3 supports text-to-video, start/end-frame control, and omni-reference generation with 1-12 images. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Video prompt, 1-2000 characters. Use `@Image1` through `@Image12` for omni references | | `image_urls` | string\[] | No | 1-12 omni-reference image URLs. Cannot be combined with frame fields | | `start_frame_url` | string | No | Start frame. Cannot be combined with `image_urls` | | `end_frame_url` | string | No | End frame. Requires `start_frame_url`; cannot be combined with `image_urls` | | `aspect_ratio` | string | No | `"auto"`, `"21:9"`, `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, or `"9:16"` | | `resolution` | string | No | `"768p"` or `"2K"` (default) | | `duration` | integer | No | Any integer from `4` through `15`. Default `5` | Text-to-video defaults to `16:9` and does not accept `auto`. Frame mode requires `aspect_ratio` to be omitted because Hailuo follows the input frame. Omni-reference mode defaults to `auto` and also accepts fixed ratios. MiniMax H3 does not accept reference videos, reference audio, `seed`, or `prompt_optimizer`. *** ### Kling 3.0 Omni Video Model: `kuaishou/kling-3.0-omni-video` | Parameter | Type | Required | Description | | - | - | - | - | | `video_mode` | string | No | `"elements"` (default), `"start_end_frame"`, `"transform"`, `"video_reference"` | | `prompt` | string | Conditional | Text prompt. Mutually exclusive with `multi_shots` | | `mode` | string | No | `"pro"` (default). `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | 3–15 seconds (default 5) | | `aspect_ratio` | string | No | `"16:9"` (default), `"9:16"`, `"1:1"`, `"auto"` (start\_end\_frame only) | | `native_audio` | boolean | No | Generate AI audio (default false) | | `keep_audio` | boolean | No | Preserve audio from source video (default true) | | `image_urls` | string\[] | No | Up to 7 reference image URLs. Use `@Image1`, `@Image2` in prompt | | `start_frame_url` | string | No | First frame image URL (start\_end\_frame mode) | | `end_frame_url` | string | No | Last frame image URL (start\_end\_frame mode) | | `video_url` | string | No | Source video URL (transform/video\_reference modes) | | `multi_shots` | array | No | 2–6 shots, each `{ "prompt": string, "duration": int }`. Mutually exclusive with `prompt` | | `elements` | array | No | Character/object elements (IMAGE + VIDEO) | *** ### Kling O1 Video Model: `kuaishou/kling-o1-video` Same parameters as Omni 3.0 but does not support `multi_shots` or `native_audio`. Max duration 10s. | Parameter | Type | Required | Description | | - | - | - | - | | `video_mode` | string | No | `"elements"` (default), `"start_end_frame"`, `"transform"`, `"video_reference"` | | `prompt` | string | Yes | Text prompt | | `mode` | string | No | `"pro"` (default). `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | 3–10 seconds (default 5) | | `aspect_ratio` | string | No | `"16:9"` (default), `"9:16"`, `"1:1"`, `"auto"` (start\_end\_frame only) | | `keep_audio` | boolean | No | Preserve audio from source video (default true) | | `image_urls` | string\[] | No | Up to 7 reference image URLs. Use `@Image1`, `@Image2` in prompt | | `start_frame_url` | string | No | First frame image URL (start\_end\_frame mode) | | `end_frame_url` | string | No | Last frame image URL (start\_end\_frame mode) | | `video_url` | string | No | Source video URL (transform/video\_reference modes) | *** ### Kling 3.0 Omni Video Edit Model: `kuaishou/kling-3.0-omni-video-edit` | Parameter | Type | Required | Description | | - | - | - | - | | `video_url` | string | Yes | Source video URL to edit | | `prompt` | string | Yes | Text prompt describing the edit | | `video_mode` | string | No | `"reference"` (default) or `"transform"` | | `keep_audio` | boolean | No | Preserve original audio (default false) | | `mode` | string | No | `"std"` (default) or `"pro"` | | `aspect_ratio` | string | No | `"16:9"` (default), `"9:16"`, `"1:1"` | | `image_urls` | string\[] | No | Up to 4 reference image URLs. Use `@Image1`, `@Image2` in prompt | | `elements` | array | No | Up to 4 character/object elements | Duration is locked to the input video length. *** ### Kling O1 Video Edit Model: `kuaishou/kling-o1-video-edit` Same parameters as Omni 3.0 video edit but does not support `elements`. | Parameter | Type | Required | Description | | - | - | - | - | | `video_url` | string | Yes | Source video URL to edit | | `prompt` | string | Yes | Text prompt describing the edit | | `video_mode` | string | No | `"reference"` (default) or `"transform"` | | `keep_audio` | boolean | No | Preserve original audio (default false) | | `mode` | string | No | `"std"` (default) or `"pro"` | | `aspect_ratio` | string | No | `"16:9"` (default), `"9:16"`, `"1:1"` | | `image_urls` | string\[] | No | Up to 4 reference image URLs. Use `@Image1`, `@Image2` in prompt | *** ### Kling 3.0 Video Model: `kuaishou/kling-3.0-video` | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Conditional | Text prompt. Mutually exclusive with `multi_shots` | | `mode` | string | No | `"pro"` (default). `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | 3–15 seconds (default 5) | | `aspect_ratio` | string | No | `"16:9"` (default), `"9:16"`, `"1:1"` | | `native_audio` | boolean | No | Generate AI audio (default true) | | `start_frame_url` | string | Yes | First frame image URL | | `end_frame_url` | string | No | Last frame image URL | | `elements` | array | No | Character/object elements | | `multi_shots` | array | No | 2–6 shots, each `{ "prompt": string, "duration": int }`. Mutually exclusive with `prompt` | *** ### Kling 3.0 Turbo Video Model: `kuaishou/kling-3.0-turbo-video` Faster variant of Kling 3.0. Text-to-video or optional start-frame image-to-video only. No native audio, multi-shot, end frame, or 4K. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text prompt | | `mode` | string | No | `"pro"` (default). `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | 3–15 seconds (default 5) | | `aspect_ratio` | string | No | `"16:9"` (default), `"9:16"`, `"1:1"` | | `start_frame_url` | string | No | First frame image URL. Omit for text-to-video | *** ### Kling 2.6 Video Model: `kuaishou/kling-2.6-video` | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text prompt | | `mode` | string | No | `"pro"` (default). `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | `5` or `10` seconds | | `native_audio` | boolean | No | Enable AI audio generation (default false). Requires pro mode | | `start_frame_url` | string | Yes | First frame image URL | | `end_frame_url` | string | No | Last frame image URL (not available with native\_audio) | | `voices` | array | No | Voice references (max 5, requires native\_audio). Each: `{ "voice_id": int }` or `{ "voice_url": string }` | *** ### Kling 2.5 Turbo Video Model: `kuaishou/kling-2.5-turbo-video` | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text prompt | | `mode` | string | No | `"pro"` (default). `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | `5` or `10` seconds | | `aspect_ratio` | string | No | `"16:9"` (default), `"9:16"`, `"1:1"`. Ignored when `start_frame_url` is set | | `start_frame_url` | string | No | First frame image URL | | `end_frame_url` | string | No | Last frame image URL | | `sound_effects` | object | No | `{ "sound": string, "music": string, "asmr_mode": boolean }`. Omit to disable audio | *** ### Kling 2.1 Video Model: `kuaishou/kling-2.1-video` Image-to-video only. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text prompt | | `start_frame_url` | string | Yes | First frame image URL | | `end_frame_url` | string | No | Last frame image URL | | `duration` | integer | No | `5` or `10` seconds | | `mode` | string | No | `"pro"` (default). `"std"` or `"pro"` | | `sound_effects` | object | No | `{ "sound": string, "music": string, "asmr_mode": boolean }`. Omit to disable audio | *** ### Kling 2.1 Master Video Model: `kuaishou/kling-2.1-master-video` Pro-only. No end frame support. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text prompt | | `duration` | integer | No | `5` or `10` seconds | | `start_frame_url` | string | No | First frame image URL (optional) | | `sound_effects` | object | No | `{ "sound": string, "music": string, "asmr_mode": boolean }`. Omit to disable audio | *** ### Kling 3.0 Motion Control Model: `kuaishou/kling-3.0-motion-control` | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text prompt describing the motion | | `image_url` | string | Yes | Character/subject image URL | | `video_url` | string | Yes | Motion reference video URL | | `mode` | string | No | `"std"` (default) or `"pro"` | | `keep_audio` | boolean | No | Preserve audio from motion video (default true) | | `character_orientation` | string | No | `"video"` (default) or `"image"` | | `elements` | array | No | Additional character/object elements | *** ### Kling 2.6 Motion Control Model: `kuaishou/kling-2.6-motion-control` | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text prompt describing the motion | | `image_url` | string | Yes | Character/subject image URL | | `video_url` | string | Yes | Motion reference video URL | | `mode` | string | No | `"std"` (default) or `"pro"` | | `keep_audio` | boolean | No | Preserve audio from motion video (default true) | | `character_orientation` | string | No | `"video"` (default) or `"image"` | *** ### Grok Imagine Video Model: `xai/grok-imagine-video` | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Video prompt. `@ImageN` addresses items in `image_urls`; `@audio1` addresses the request-level `voice` | | `aspect_ratio` | string | No | `"1:1"` (default), `"2:3"`, `"3:2"`, `"9:16"`, or `"16:9"` | | `duration` | integer | No | 1–30 seconds. Default `6` | | `resolution` | string | No | `"480p"`, `"720p"`, or `"1080p"`. Default `"720p"` | | `start_image_url` | string | No | Start frame. Cannot be combined with `image_urls` or media references | | `image_urls` | string\[] | No | 1–7 ordered image references. Cannot be combined with `start_image_url` | | `character_id` | string | No | Existing saved Grok character reference ID | | `character` | object | No | Transient character: 3 images, or 2 images plus preset `voice` | | `prop` | object | No | Transient prop with `name` and 1–3 images | | `location` | object | No | Transient location with `name` and 1–3 images | | `voice` | string | No | Case-insensitive [Grok preset voice](/api-reference/resources#get-grok-imagine-voices). Audio URLs are not supported | | `audio` | boolean | No | Generate audio. Default `true`; works with text-only video. `false` sends `skipAudio: true` | | `video_preset` | string | No | `"custom"` (default), `"spicy"`, `"fun"`, or `"normal"` | `audio: true` works with text-to-video and visual-reference requests. A preset `voice` requires a visual input and cannot be combined with `audio: false`. Transient media references are deleted automatically after success or failure; a supplied `character_id` is retained. *** ### Grok Imagine Video Extend Model: `xai/grok-imagine-video-extend` Extend a previously generated video via HTTP streaming. Only accepts task IDs from `xai/grok-imagine-video` (the speed-optimized 1.5 build) — `xai/grok-imagine-1.5-video` task IDs are not supported. Two mutually exclusive modes: | Mode | How to activate | Behaviour | | - | - | - | | **Preset** | Provide `video_preset` | The preset controls the video style; `prompt`, `extend_at`, `extend_duration` are ignored | | **Custom** | Omit `video_preset` | You control timing and prompt; `prompt`, `extend_at`, `extend_duration` are required | | Parameter | Type | Required | Description | | - | - | - | - | | `task_id` | string | Yes | Task ID of a completed video generation | | `video_preset` | string | No | `"spicy"` or `"normal"`. Enables preset mode | | `prompt` | string | No | Text prompt to guide the extension. **Required in custom mode** | | `extend_at` | float | No | Second to start the extension from. **Required in custom mode** | | `extend_duration` | int | No | `6` or `10` seconds. **Required in custom mode** | *** ### GPT Image Models: `openai/gpt-image-2` | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description | | `image_urls` | array | No | Reference image URLs for image editing mode | | `aspect_ratio` | string | No | `1:1`, `3:2`, `2:3`, `16:9`. Default: `1:1` | | `resolution` | string | No | `1K`, `2K`, `4K`. Default: `1K` | *** ### Nano Banana Models: `google/nano-banana`, `google/nano-banana-pro` | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description | | `aspect_ratio` | string | Yes | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` | | `image_urls` | array | No | Reference images | | `resolution` | string | No | Pro only: `1k`, `2k`, `4k` | *** ### Flux.2 Models: `black-forest-labs/flux.2-pro`, `black-forest-labs/flux.2-flex`, `black-forest-labs/flux.2-max` | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description | | `image_urls` | array | No | Reference images (Pro/Max: 8, Flex: 10) | | `aspect_ratio` | string | No | `auto`, `1:1`, `4:3`, `16:9`, `3:2`, `2:3`, `9:16`, `3:4` (Max also: `5:4`, `21:9`) | | `quality` | string | No | `1K` or `2K` | | `steps` | integer | No | Flex only: 1-50 (more = higher quality) | | `cfg` | number | No | Flex only: 1.5-10 (higher = follows prompt more strictly) | *** ### Qwen Image 3.0 Pro Model: `alibaba/qwen-image-3.0-pro` Highest-quality Qwen Image 3.0 model for complex layouts, accurate text rendering, photorealistic detail, and image editing. Automatically switches between text-to-image and editing based on whether `image_urls` is provided. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description or editing instruction | | `aspect_ratio` | string | No | `1:1` (default), `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3` | | `resolution` | string | No | `1K` or `2K`. Default: `2K` | | `image_urls` | string\[] | No | Omit for T2I. Provide 1-3 image URLs for editing or multi-image fusion | | `negative_prompt` | string | No | Content to avoid in the generated image | | `prompt_extend` | boolean | No | Smart prompt rewriting (default true) | | `seed` | integer | No | Seed for reproducibility | `resolution` and `aspect_ratio` are independent: resolution selects the pixel tier and aspect ratio selects the output shape. The 1K tier ranges from 768 to 1344 pixels per side for non-square outputs; the 2K tier ranges from 1536 to 2688 pixels per side. Qwen Image 3.0 Pro output pricing varies by resolution, and input/reference images are billed separately. *** ### Qwen Image 3.0 Model: `alibaba/qwen-image-3.0` Balanced Qwen Image 3.0 model for high-quality everyday generation, reliable text rendering, and image editing. Supports the same parameters and 1K/2K resolution tiers as Qwen Image 3.0 Pro. *** ### Qwen Image 2.0 Pro Model: `alibaba/qwen-image-2.0-pro` — **\$0.0525/image** Best quality. Text rendering, realistic textures. Automatically switches between T2I and editing based on whether `image_urls` is provided. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text prompt (max 800 chars) | | `aspect_ratio` | string | No | `1:1` (default), `16:9`, `9:16`, `4:3`, `3:4` | | `image_urls` | string\[] | No | Omit for T2I. Provide image URLs for editing | | `negative_prompt` | string | No | What to avoid (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default true) | | `seed` | integer | No | Seed for reproducibility | *** ### Qwen Image 2.0 Model: `alibaba/qwen-image-2.0` — **\$0.0245/image** Faster version of 2.0 Pro. Same capabilities and parameters. *** ### Qwen Image Max Model: `alibaba/qwen-image-max` — T2I **$0.0525/image** / Edit **$0.0525/image** Highest realism, fewest AI artifacts. Editing uses a specialized edit model under the hood (industrial design, geometric reasoning, character consistency). Same parameters as Qwen Image 2.0 Pro. *** ### Qwen Image Plus Model: `alibaba/qwen-image-plus` — T2I **$0.021/image** / Edit **$0.021/image** Diverse artistic styles, fast. Editing uses a specialized edit model under the hood. Same parameters as Qwen Image 2.0 Pro. *** ### Qwen Image Model: `alibaba/qwen-image` — T2I **$0.0245/image** / Edit **$0.0315/image** Older base model. Editing uses a specialized edit model under the hood. Same parameters as Qwen Image 2.0 Pro. *** ### Z-Image Turbo Model: `alibaba/z-image-turbo` — \*\*$0.0105/image** (or $0.021 with prompt rewriting) Lightweight fast T2I only. Chinese and English text rendering. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text prompt (max 800 chars) | | `aspect_ratio` | string | No | `1:1` (default), `2:3`, `3:2`, `3:4`, `4:3`, `9:16`, `16:9` | | `prompt_extend` | boolean | No | Prompt rewriting (default false, doubles cost) | | `seed` | integer | No | Seed for reproducibility | *** ### Wan 2.7 Pro Image Model: `alibaba/wan-2.7-pro-image` — **\$0.0525/image** Highest quality. Thinking mode for T2I. Supports editing with up to 9 images. Up to 4K resolution for T2I. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text prompt (max 5000 chars) | | `aspect_ratio` | string | No | `1:1` (default), `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3`. Editing preserves input ratio | | `image_urls` | string\[] | No | Omit for T2I. Up to 9 images for editing | | `thinking_mode` | boolean | No | Better quality, slower (default true). T2I only | | `seed` | integer | No | Seed for reproducibility | *** ### Wan 2.7 Image Model: `alibaba/wan-2.7-image` — **\$0.021/image** Faster variant of 2.7 Pro. Same capabilities, max 2K resolution. Same parameters as Wan 2.7 Pro Image. *** ### Wan 2.6 Image Model: `alibaba/wan-2.6-image` — **\$0.021/image** Automatically selects T2I or editing mode based on `image_urls`. Supports style transfer with 1–4 reference images. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text prompt (max 2000 chars) | | `aspect_ratio` | string | No | `1:1` (default), `2:3`, `3:2`, `3:4`, `4:3`, `9:16`, `16:9` | | `image_urls` | string\[] | No | Omit for T2I. 1–4 images for editing/style transfer | | `negative_prompt` | string | No | What to avoid (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default true) | | `seed` | integer | No | Seed for reproducibility | *** ### Wan 2.5 Image Model: `alibaba/wan-2.5-image` — **\$0.021/image** Automatically selects T2I or editing mode based on `image_urls`. Supports 1–3 reference images. Same parameters as Wan 2.6 Image. *** ### Wan 2.2 Image Model: `alibaba/wan-2.2-image` — **\$0.035/image** T2I only. Does not accept `image_urls`. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text prompt (max 500 chars) | | `aspect_ratio` | string | No | `1:1` (default), `3:4`, `4:3`, `9:16`, `16:9` | | `negative_prompt` | string | No | What to avoid | | `seed` | integer | No | Seed for reproducibility | *** ### Wan 2.2 Flash Image Model: `alibaba/wan-2.2-flash-image` — **\$0.0175/image** Fast T2I only. Cheapest Wan image model. Same parameters as Wan 2.2 Image. *** ### Grok Imagine Image Models: | Model | Mode | | - | - | | `xai/grok-imagine-image` | Speed-focused Grok Imagine image model | | `xai/grok-imagine-2.0-image` | Quality-focused Grok Imagine 2.0 image model | `enable_pro` has been removed. Choose the model explicitly: `xai/grok-imagine-image` for speed or `xai/grok-imagine-2.0-image` for quality. Both models support text-to-image and image editing. Providing `image_urls` activates edit mode on the model you selected; it does not switch from the speed model to the quality model. Text generation and edit requests each produce exactly one output image. The generation count is fixed internally and is not user-configurable. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description or edit instruction | | `aspect_ratio` | string | No | `"1:1"` (default), `"2:3"`, `"3:2"`, `"9:16"`, `"16:9"` | | `image_urls` | string\[] | No | 1–5 reference image URLs (triggers edit mode) | | `upsample_prompt` | boolean | No | Let AI enhance your prompt for better results | | `enable_nsfw` | boolean | No | Enable NSFW content generation | *** ### Suno Music Model: `suno-ai/music` | Parameter | Type | Required | Description | | - | - | - | - | | `mv` | string | Yes | Model version: `chirp-hawk` (v6), `chirp-hawk-wild` (v6 Wild), `chirp-goose` (v6 Mini) | | `custom` | boolean | Yes | `false` for simple mode, `true` for custom mode | | `gpt_description_prompt` | string | No | Simple mode: song description with lyrics | | `prompt` | string | No | Custom mode: detailed lyrics/prompt | | `tags` | string | No | Custom mode: genre/style tags | | `title` | string | No | Song title | | `make_instrumental` | boolean | No | Generate instrumental only | | `negative_tags` | string | No | Custom mode: styles to avoid | | `persona_id` | string | No | Custom voice ID from Suno voice creation; music uses that voice for vocals | *** ### Suno Audio Operations Models: `suno-ai/add-vocals`, `suno-ai/add-instrumental`, `suno-ai/extend`, `suno-ai/cover` | Parameter | Type | Required | Description | | - | - | - | - | | `mv` | string | Yes | Model version | | `clip_id` | string | Yes\* | Existing clip ID | | `audio_url` | string | Yes\* | Audio file URL (alternative to clip\_id) | | `custom` | boolean | Yes | Simple or custom mode | | `gpt_description_prompt` | string | No | Simple mode description | | `prompt` | string | No | Custom mode prompt | | `continue_at` | number | No | Extend: time in seconds to continue from | | `start_s` | number | No | Start time for overlay | | `end_s` | number | No | End time for overlay | *** ### Suno Stems Models: `suno-ai/stems`, `suno-ai/stems-all` | Parameter | Type | Required | Description | | - | - | - | - | | `clip_id` | string | Yes | Clip ID to extract stems from | | `title` | string | No | Title for extraction | *** ### Suno Lyrics Model: `suno-ai/lyrics` | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Description of lyrics to generate | | `mv` | string | Yes | Lyrics model: `remi-v1` or `default` | *** ### Suno Remix & Edits Models: `suno-ai/remaster`, `suno-ai/mashup`, `suno-ai/inspiration`, `suno-ai/sample`, `suno-ai/infill`, `suno-ai/crop`, `suno-ai/fade`, `suno-ai/speed`, `suno-ai/reverse`, `suno-ai/concat` All take a `clip_id` (mashup and inspiration take `clip_ids`). Generation models also take `mv`, `tags`, `prompt`, `title`, `make_instrumental`, and `negative_tags`. Range-based edits take seconds: `start_s` / `end_s` (infill, crop, sample), `fade_in_s` / `fade_out_s` (fade), `speed_multiplier` with `keep_pitch` (speed). Full tables: [Remaster](/models/audio/suno/remaster), [Mashup, Inspiration & Sample](/models/audio/suno/remix), [Editing](/models/audio/suno/edit). *** ### Suno Visuals Models: `suno-ai/cover-art`, `suno-ai/video-gen` | Parameter | Type | Required | Description | | - | - | - | - | | `clip_id` | string | Yes | Clip the artwork or video belongs to | | `prompt` | string | Yes | Description of the image or video | | `quality` | string | No | `basic` (default) or `advanced` | | `aspect_ratio` | string | No | Default `1:1` | | `image_urls` / `image_ids` | string\[] | No | Cover art: up to 4 references, `basic` only | | `duration` | integer | No | Video: `5`–`10` seconds, default `10` | | `clip_start_time` | number | No | Video: song offset in seconds, default `0` | | `start_image_url` / `end_image_url` | string | No | Video: optional first / last frame | Results arrive as `images` or `videos` arrays. Details: [Cover Art](/models/audio/suno/cover-art), [AI Video](/models/audio/suno/video-gen). *** ### Suno Exports & Tools Models: `suno-ai/wav`, `suno-ai/mp3`, `suno-ai/video`, `suno-ai/enhance-prompt`, `suno-ai/vox` | Parameter | Type | Required | Description | | - | - | - | - | | `clip_id` | string | Yes\* | Clip to export or process (not used by `enhance-prompt`) | | `format` | string | No | `suno-ai/mp3`: `mp3` (default) or `m4a` | | `prompt` | string | Yes\* | `suno-ai/enhance-prompt`: style description to enhance | | `vocal_start_s` / `vocal_end_s` | number | No / Yes\* | `suno-ai/vox`: vocal region in seconds | Details: [Exports](/models/audio/suno/wav), [Prompt & Vocal Tools](/models/audio/suno/tools). *** ### Rate Limit Error Response ```json theme={null} { "success": false, "code": 429, "data": { "message": "You have been ratelimited, this temporary restriction will be lifted in: 45 seconds" } } ``` *** ## Error Responses | Code | Description | | - | - | | 400 | Bad Request - Invalid parameters | | 401 | Unauthorized - Invalid or missing API key | | 402 | Payment Required - Insufficient balance | | 404 | Not Found - Task or model not found | | 429 | Too Many Requests - Rate limited | | 500 | Internal Server Error | ### Error Response Format ```json theme={null} { "success": false, "code": 400, "data": { "message": "Description of the error", "request_id": "abc123" } } ``` # Introduction Source: https://docs.unifically.com/introduction Welcome to Unifically - Your unified API for AI Models. See supported inputs, parameters, pricing, response fields, and API examples. Unifically Logo Unifically Logo ## Welcome to Unifically Unifically provides a **unified API** for accessing multiple AI models including: * **Language Models** - GPT 5.4/5.5, Claude Sonnet/Opus 4.6–4.8, Composer 2.5 * **Image Generation** - GPT Image, Nano Banana (Gemini 2.5 Flash), Flux.2 * **Video Generation** - Veo 3.1, Kling 3.0/2.6/2.1, MiniMax Hailuo 2.0/2.3/H3 * **Audio Generation** - Suno API for music and voice, ElevenLabs TTS ## For LLMs & AI Agents Unifically publishes machine-readable docs that any LLM or coding agent can ingest directly: * **`llms.txt`** — concise index of every page, ideal for in-context routing * **`llms-full.txt`** — the entire documentation site as a single plain-text file Compact link index of the docs for LLM context Full documentation as a single plain-text file ## Getting Started Sign up and get your API key to start using Unifically GPT, Claude, and Composer models via Chat Completions, Responses, and Messages Create and manage AI generation tasks with a unified interface GPT Image, Nano Banana, Flux.2, and more Veo 3.1, Kling, Hailuo, and more ## Features One API for all models — LLMs via `/v1/chat/completions`, `/v1/responses`, and `/v1/messages`; media generation via `/v1/tasks` One API key for all models - no need to manage multiple accounts High-performance infrastructure with 99.9% uptime No subscriptions - only pay for what you use. Volume discounts are available for almost all models — reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing Clean REST API with comprehensive documentation and examples ## Quick Start ```bash theme={null} # Create a task curl -X POST https://api.unifically.com/v1/tasks \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "google/veo-3.1-fast", "input": { "prompt": "A cat walking on the beach at sunset" } }' # Check status curl https://api.unifically.com/v1/tasks/{task_id} \ -H "Authorization: Bearer YOUR_API_KEY" ``` Replace `YOUR_API_KEY` with your actual API key from [unifically.com](https://unifically.com) ## Support Need help? Check out the documentation sections or contact our support team at [contact@unifically.com](mailto:contact@unifically.com) # Sound Effect Source: https://docs.unifically.com/models/audio/elevenlabs/sound-effect Generate sound effects with ElevenLabs. See supported inputs, parameters, pricing, response fields, and API examples. Generate sound effects from text descriptions using ElevenLabs AI. ## Model ``` elevenlabs/sound-effect ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `text` | string | Yes | - | Description of the sound effect | | `prompt_influence` | number | No | `0.5` | How much the prompt influences generation (0-1) | | `duration` | number/string | No | `auto` | Duration in seconds (0.5-30) or `"auto"` | | `loop` | boolean | No | `false` | If true, audio loops seamlessly | ## Duration Options | Value | Description | | - | - | | `"auto"` | Automatic duration based on the sound (default) | | `0.5` - `30` | Specific duration in seconds | ## Example - Basic Sound Effect ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/sound-effect", "input": { "text": "wolf howling at the moon" } }' ``` ## Example - With Duration ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/sound-effect", "input": { "text": "thunder rumbling in the distance", "duration": 5, "prompt_influence": 0.7 } }' ``` ## Example - Looping Sound ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/sound-effect", "input": { "text": "rain falling on a window", "loop": true, "duration": 10 } }' ``` ## Example - Ambient Sound ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/sound-effect", "input": { "text": "busy coffee shop with people chatting and cups clinking", "prompt_influence": 0.8, "duration": "auto", "loop": true } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Completed Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "audio_url": "https://files.unifically.com/abc123.mp3" } } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Speech-to-Text Source: https://docs.unifically.com/models/audio/elevenlabs/speech-to-text Transcribe audio to text with ElevenLabs. See supported inputs, parameters, pricing, response fields, and API examples. Transcribe audio files to text using ElevenLabs Scribe v2 with word-level timestamps, speaker diarization, and entity detection. ## Model ``` elevenlabs/speech-to-text ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `audio_url` | string | Yes | - | URL of the audio file to transcribe | | `language_code` | string | No | auto-detect | ISO 639-1/639-3 language code | | `diarize` | boolean | No | `false` | Identify who is speaking (speaker diarization) | | `num_speakers` | integer | No | auto | Max number of speakers (up to 32) | | `diarization_threshold` | number | No | `0.22` | Higher = fewer speakers, lower = more. Only used when `diarize` is true and `num_speakers` is not set | | `timestamps_granularity` | string | No | `word` | `"none"`, `"word"`, or `"character"` | | `tag_audio_events` | boolean | No | `true` | Tag events like (laughter), (music), (footsteps) | | `entity_detection` | string/array | No | - | Detect entities: `"all"`, or specific types like `"pii"`, `"phi"`, `"pci"`, `"offensive_language"` | | `temperature` | number | No | `0` | Randomness (0–2). Higher = more diverse output | | `seed` | integer | No | - | Seed for deterministic results (0–2147483647) | | `keyterms` | array | No | - | Words/phrases to boost recognition accuracy (max 100, each under 50 chars) | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Basic Transcription ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/speech-to-text", "input": { "audio_url": "https://example.com/audio.mp3" } }' ``` ## Example - With Diarization ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/speech-to-text", "input": { "audio_url": "https://example.com/meeting.mp3", "diarize": true, "num_speakers": 3, "language_code": "en", "timestamps_granularity": "word", "tag_audio_events": true, "entity_detection": "all", "keyterms": ["ElevenLabs", "API"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Completed Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "language_code": "eng", "language_probability": 0.97, "text": "Hello world", "words": [ { "text": "Hello", "start": 0.0, "end": 0.5, "type": "word", "speaker_id": "speaker_0" }, { "text": " ", "start": 0.5, "end": 0.6, "type": "spacing" }, { "text": "world", "start": 0.6, "end": 1.0, "type": "word", "speaker_id": "speaker_0" } ] } } } ``` ## Word Object Each word in the `words` array contains: | Field | Type | Description | | - | - | - | | `text` | string | The transcribed text | | `start` | number | Start time in seconds | | `end` | number | End time in seconds | | `type` | string | `"word"`, `"spacing"`, or audio event type | | `speaker_id` | string | Speaker identifier (when `diarize` is enabled) | **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Text-to-Dialogue Source: https://docs.unifically.com/models/audio/elevenlabs/text-to-dialogue Generate multi-voice dialogue with ElevenLabs. See supported inputs, parameters, pricing, response fields, and API examples. Generate multi-voice dialogue audio using ElevenLabs eleven\_v3 model with support for multiple speakers and emotion tags. ## Model ``` elevenlabs/text-to-dialogue ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `dialogue` | array | Yes | - | Array of dialogue objects with `text` and `voice` | | `language_code` | string | No | `en` | Language code for generation (`"auto"` defaults to `"en"`) | | `stability` | number | No | `0.5` | Voice stability 0-1 | ### Dialogue Object Each item in the `dialogue` array must contain: | Parameter | Type | Required | Description | | - | - | - | - | | `text` | string | Yes | Text for this speaker (supports emotion tags like `[excitedly]`) | | `voice` | string | Yes | [Voice ID](/api-reference/resources#elevenlabs) for this speaker | Text-to-Dialogue always uses the `eleven_v3` model - no model selection needed. ## Resources Get available voices from the [Resources API](/api-reference/resources): ``` GET /v1/resources/elevenlabs/voices ``` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/text-to-dialogue", "input": { "stability": 0.5, "language_code": "auto", "dialogue": [ { "text": "[excitedly] Hey Jessica! Have you tried the new ElevenLabs V3?", "voice": "TX3LPaxmHKxFdv7VOQHJ" }, { "text": "[curiously] Yeah, just got it! The emotion is so amazing.", "voice": "cgSgspJ2msm6clMCkdW9" } ] } }' ``` ## Example - Longer Conversation ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/text-to-dialogue", "input": { "stability": 0.6, "dialogue": [ { "text": "[warmly] Welcome to the podcast! Today we have a special guest.", "voice": "TX3LPaxmHKxFdv7VOQHJ" }, { "text": "[grateful] Thanks for having me! I am excited to be here.", "voice": "cgSgspJ2msm6clMCkdW9" }, { "text": "[interested] So tell us about your latest project.", "voice": "TX3LPaxmHKxFdv7VOQHJ" }, { "text": "[enthusiastically] Well, it all started last year when...", "voice": "cgSgspJ2msm6clMCkdW9" } ] } }' ``` ## Emotion Tags You can add emotion tags in square brackets at the start of text to control the speaker's tone: * `[excitedly]` - Excited, energetic delivery * `[curiously]` - Questioning, interested tone * `[warmly]` - Friendly, welcoming tone * `[sadly]` - Melancholic delivery * `[angrily]` - Frustrated, angry tone * `[whispered]` - Quiet, whispered speech * `[shouted]` - Loud, shouted delivery ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Completed Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "audio_url": "https://files.unifically.com/abc123.mp3" } } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Text-to-Speech Source: https://docs.unifically.com/models/audio/elevenlabs/text-to-speech Generate speech with ElevenLabs TTS using available voices or caller-hosted samples, with optional timestamps. See parameters, pricing, and API examples. Generate high-quality speech audio from text using ElevenLabs models with an available voice ID or an on-demand clone made from caller-hosted sample URLs. ## Model ``` elevenlabs/text-to-speech ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `text` | string | Yes | - | Text to convert to speech. Character limits depend on `model_id` (see models below) | | `voice` | string or array | Yes | - | Voice to use — see [Voice Options](#voice-options) | | `model_id` | string | No | `eleven_flash_v2_5` | TTS model (see models below) | | `with_timestamps` | boolean | No | `false` | Return character/word timing data alongside the audio | | `speed` | number | No | `1.0` | Speech speed. Below `1.0` slower, above `1.0` faster. Shorthand for `voice_settings.speed` | | `voice_settings` | object | No | - | Fine-tune voice behavior (see below) | | `output_format` | string | No | `mp3_44100_128` | Audio output format (see formats below) | | `language_code` | string | No | `auto` | ISO 639-1 language code to force language (e.g. `en`, `es`) | | `seed` | integer | No | - | Seed for reproducible generation (0–4294967295) | ## Voice Options The `voice` parameter accepts two forms: | Form | Example | Meaning | | - | - | - | | Voice ID | `"voice": "21m00Tcm4TlvDq8ikWAM"` | An available voice from [`GET /v1/resources/elevenlabs/voices`](/api-reference/resources). | | Sample URLs | `"voice": ["https://.../a.mp3", "https://.../b.mp3"]` | A custom voice for this request only. The caller hosts the samples; Unifically does not retain them. | ### On-Demand Voice Samples Pass sample URLs directly in the TTS request when you need a custom voice. All samples must contain the same speaker. * Send the sample URLs in `voice` on every request that uses the custom voice. * The caller is responsible for hosting and retaining the samples. * Samples are processed only for the current request and are not retained. * Up to 25 sample URLs are accepted per request. * Sample URLs must be **direct downloads** — redirects and link shorteners are rejected. * Supported audio formats: mp3, wav, ogg, opus, m4a, flac, webm. * Voice IDs must come from `GET /v1/resources/elevenlabs/voices`; IDs from a separate ElevenLabs account are not available to Unifically. ### voice\_settings | Field | Type | Default | Description | | - | - | - | - | | `stability` | number | `0.5` | 0–1. Lower = more expressive/variable, higher = more monotone | | `similarity_boost` | number | `0.75` | 0–1. How closely the output adheres to the original voice | | `style` | number | `0` | 0–1. Style exaggeration. Values other than 0 may add latency | | `speed` | number | `1.0` | Speech speed multiplier. Wins over top-level `speed` if both are set | | `use_speaker_boost` | boolean | `true` | Boost similarity to the original speaker | ## Available Models | Model | Description | Languages | Char Limit | | - | - | - | - | | `eleven_flash_v2_5` | Default. Fastest and cheapest | 32 | 40,000 | | `eleven_multilingual_v2` | Highest quality, most stable on long-form | 29 | 10,000 | | `eleven_v3` | Most expressive | 70+ | 5,000 | | `eleven_turbo_v2_5` | Deprecated by ElevenLabs — use `eleven_flash_v2_5` instead | 32 | 40,000 | ## Output Formats | Format | Description | | - | - | | `mp3_22050_32` | MP3 22.05kHz 32kbps | | `mp3_44100_64` | MP3 44.1kHz 64kbps | | `mp3_44100_96` | MP3 44.1kHz 96kbps | | `mp3_44100_128` | MP3 44.1kHz 128kbps (default) | | `mp3_44100_192` | MP3 44.1kHz 192kbps | | `opus_48000_32` | Opus 48kHz 32kbps | | `opus_48000_64` | Opus 48kHz 64kbps | | `opus_48000_96` | Opus 48kHz 96kbps | | `opus_48000_128` | Opus 48kHz 128kbps | | `opus_48000_192` | Opus 48kHz 192kbps | | `pcm_16000` | Raw PCM 16kHz | | `pcm_22050` | Raw PCM 22.05kHz | | `pcm_24000` | Raw PCM 24kHz | | `pcm_44100` | Raw PCM 44.1kHz | | `pcm_48000` | Raw PCM 48kHz | | `wav_44100` | WAV 44.1kHz | | `ulaw_8000` | μ-law 8kHz (Twilio) | | `alaw_8000` | A-law 8kHz | ## Resources Get available premade voices from the [Resources API](/api-reference/resources): ``` GET /v1/resources/elevenlabs/voices ``` ## Example — on-demand voice with timestamps ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/text-to-speech", "input": { "text": "Hello world, this is my cloned voice.", "voice": [ "https://cdn.example.com/recording1.mp3", "https://cdn.example.com/recording2.wav" ], "model_id": "eleven_multilingual_v2", "with_timestamps": true, "speed": 1.1 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Completed Response Poll `GET /v1/tasks/{task_id}` until `status` is `completed`: ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "audio_url": "https://files.unifically.com/audio/abc123.mp3", "alignment": { "characters": ["H", "e", "l", "l", "o"], "character_start_times_seconds": [0.0, 0.081, 0.15, 0.21, 0.26], "character_end_times_seconds": [0.081, 0.15, 0.21, 0.26, 0.32] }, "normalized_alignment": { "...": "same shape, for the spoken (normalized) text" }, "words": [ { "word": "Hello", "start": 0.0, "end": 0.32 }, { "word": "world,", "start": 0.38, "end": 0.79 } ] } } } ``` * `alignment` maps **your original text**; `normalized_alignment` maps the text as spoken (numbers and abbreviations expanded). * `words` is derived from `alignment` — use it directly for captions and audio/video sync. Punctuation stays attached to its word. * Without `with_timestamps`, the output contains only `audio_url`. **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Voice Changer Source: https://docs.unifically.com/models/audio/elevenlabs/voice-changer Convert voice in audio with ElevenLabs. See supported inputs, parameters, pricing, response fields, and API examples. Convert the voice in an audio file to a target ElevenLabs voice using speech-to-speech technology. ## Model ``` elevenlabs/voice-changer ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `audio_url` | string | Yes | - | URL of the source audio file to convert | | `voice_id` | string | Yes | - | Target [ElevenLabs voice ID](/api-reference/resources#elevenlabs) | | `model_id` | string | No | `eleven_multilingual_sts_v2` | ElevenLabs speech-to-speech model ID | | `output_format` | string | No | - | Audio output format (e.g. `mp3_44100_128`) | | `file_format` | string | No | - | Input audio format hint: `pcm_s16le_16` or `other` | | `remove_background_noise` | boolean | No | - | Strip background noise from input audio before conversion | | `seed` | integer | No | - | Random seed for reproducible generation (0–4294967295) | | `voice_settings` | object | No | - | Advanced voice configuration overrides (see below) | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ### voice\_settings | Field | Type | Description | | - | - | - | | `stability` | number | 0–1. Voice stability | | `similarity_boost` | number | 0–1. How closely to match the target voice | | `style` | number | 0–1. Style exaggeration | | `speed` | number | Speech speed multiplier | | `use_speaker_boost` | boolean | Boost speaker clarity | ## Resources Get available voices from the [Resources API](/api-reference/resources): ``` GET /v1/resources/elevenlabs/voices ``` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/voice-changer", "input": { "audio_url": "https://example.com/source-audio.mp3", "voice_id": "TX3LPaxmHKxFdv7VOQHJ", "model_id": "eleven_multilingual_sts_v2", "output_format": "mp3_44100_128", "remove_background_noise": true, "seed": 42, "voice_settings": { "stability": 0.5, "similarity_boost": 0.75, "style": 0.5, "speed": 1.0, "use_speaker_boost": true } } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Completed Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "audio_url": "https://files.unifically.com/audio/abc123.mp3" } } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Voice Isolation Source: https://docs.unifically.com/models/audio/elevenlabs/voice-isolation Isolate vocals from audio with ElevenLabs. See supported inputs, parameters, pricing, response fields, and API examples. Isolate vocals from audio files using ElevenLabs AI, removing background music and noise. ## Model ``` elevenlabs/voice-isolation ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `audio_url` | string | Yes | URL of the audio file to isolate vocals from | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "elevenlabs/voice-isolation", "input": { "audio_url": "https://example.com/audio.mp3" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Completed Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "audio_url": "https://files.unifically.com/abc123.mp3" } } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Gemini 2.5 Flash TTS Source: https://docs.unifically.com/models/audio/google/gemini-2.5-flash-tts Generate speech with Google's Gemini 2.5 Flash TTS model — 30 voices, two-speaker dialogue, style instructions, and 70+ languages. See parameters, voices, and API examples. The fastest and most cost-efficient Gemini voice — the best default for most text-to-speech use cases. ## Model ``` google/gemini-2.5-flash-tts ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `input` | string | Yes\* | - | Text to speak. Language is auto-detected (70+ languages). \*Provide exactly one of `input`, `text`, or `dialogue` | | `text` | string | No | - | Alias for `input` | | `dialogue` | array | No | - | Dialogue lines as `[{"text", "voice", "speaker"?}, ...]` — see [Multi-Speaker Dialogue](#multi-speaker-dialogue) | | `voice` | string | No | `alloy` | Voice name — a Gemini voice or an OpenAI-style alias (see [Voices](#voices)) | | `response_format` | string | No | `mp3` | Output container: `mp3`, `wav`, `pcm`, `opus`, `aac`, `flac` | | `speed` | number | No | `1.0` | Playback speed multiplier, `0.25`–`4.0` | | `instructions` | string | No | - | Style directions the voice follows but does not read, e.g. `"speak like a sports commentator"` | | `language` | string | No | auto | BCP-47 code to pin the output language (see [Languages](#languages)) | | `speakers` | array | No | - | Two-speaker dialogue config (see [Multi-Speaker Dialogue](#multi-speaker-dialogue)). When set, `voice` is ignored | ## Multi-Speaker Dialogue Generate a conversation between **up to 2 voices** in one request. Two equivalent forms are accepted. **Form 1 — `dialogue` array.** Each line carries its own voice; lines are spoken in order: ```json theme={null} { "dialogue": [ { "text": "Did the deploy finish?", "voice": "onyx", "speaker": "Joe" }, { "text": "Yes, all green — we are live!", "voice": "nova", "speaker": "Jane" }, { "text": "Great news.", "voice": "onyx", "speaker": "Joe" } ] } ``` `speaker` is optional — lines sharing a voice are treated as the same speaker automatically. If every line uses the same voice, the result is ordinary single-voice speech. **Form 2 — script plus `speakers` map.** Write the script in `input` with speaker names, and map each name to a voice: ```json theme={null} { "input": "Joe: Did the deploy finish? Jane: Yes, all green — we are live!", "speakers": [ { "speaker": "Joe", "voice": "onyx" }, { "speaker": "Jane", "voice": "Leda" } ] } ``` Speaker names must match the names used in `input` exactly. Both forms are limited to 2 distinct voices — a third voice is rejected with a `400`. ## Voices 30 prebuilt voices. Use either the Gemini name or the OpenAI-style alias in `voice` and `speakers[].voice`: | Voice | Style | OpenAI alias | | - | - | - | | `Achernar` | Soft | - | | `Achird` | Friendly | - | | `Algenib` | Gravelly | - | | `Algieba` | Smooth | - | | `Alnilam` | Firm | - | | `Aoede` | Breezy | `fable` | | `Autonoe` | Bright | - | | `Callirrhoe` | Easy-going | `sage` | | `Charon` | Informative | `onyx` | | `Despina` | Smooth | - | | `Enceladus` | Breathy | - | | `Erinome` | Clear | - | | `Fenrir` | Excitable | `ash` | | `Gacrux` | Mature | - | | `Iapetus` | Clear | - | | `Kore` | Firm | `alloy` | | `Laomedeia` | Upbeat | - | | `Leda` | Youthful | `nova` | | `Orus` | Firm | `verse` | | `Puck` | Upbeat | `echo` | | `Pulcherrima` | Forward | - | | `Rasalgethi` | Informative | - | | `Sadachbia` | Lively | - | | `Sadaltager` | Knowledgeable | - | | `Schedar` | Even | - | | `Sulafat` | Warm | `coral` | | `Umbriel` | Easy-going | `ballad` | | `Vindemiatrix` | Gentle | - | | `Zephyr` | Bright | `shimmer` | | `Zubenelgenubi` | Casual | - | ## Languages Language is **auto-detected** from `input` (70+ languages). Set `language` only to force a specific locale: | Code | Language | | - | - | | `ar-EG` | Arabic (Egyptian) | | `bn-BD` | Bengali | | `de-DE` | German | | `en-IN` | English (India) | | `en-US` | English (US) | | `es-US` | Spanish (US) | | `fr-FR` | French | | `hi-IN` | Hindi | | `id-ID` | Indonesian | | `it-IT` | Italian | | `ja-JP` | Japanese | | `ko-KR` | Korean | | `mr-IN` | Marathi | | `nl-NL` | Dutch | | `pl-PL` | Polish | | `pt-BR` | Portuguese (Brazil) | | `ro-RO` | Romanian | | `ru-RU` | Russian | | `ta-IN` | Tamil | | `te-IN` | Telugu | | `th-TH` | Thai | | `tr-TR` | Turkish | | `uk-UA` | Ukrainian | | `vi-VN` | Vietnamese | ## Output Formats | Format | Description | | - | - | | `mp3` | MP3 (default) | | `wav` | WAV, 24kHz 16-bit | | `pcm` | Raw PCM, 24kHz 16-bit mono | | `opus` | Opus in an Ogg container | | `aac` | AAC (ADTS) | | `flac` | FLAC lossless | ## Resources List voices and languages from the [Resources API](/api-reference/resources): ``` GET /v1/resources/google/tts/voices GET /v1/resources/google/tts/languages ``` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-2.5-flash-tts", "input": { "input": "Welcome back! Your order has shipped and arrives tomorrow.", "voice": "nova", "response_format": "mp3", "instructions": "Speak cheerfully, like a friendly support agent." } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Completed Response Poll `GET /v1/tasks/{task_id}` until `status` is `completed`: ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "audio_url": "https://files.unifically.com/audio/abc123.mp3" } } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Gemini 2.5 Pro TTS Source: https://docs.unifically.com/models/audio/google/gemini-2.5-pro-tts Generate speech with Google's Gemini 2.5 Pro TTS model — 30 voices, two-speaker dialogue, style instructions, and 70+ languages. See parameters, voices, and API examples. The highest-quality stable Gemini voice — best for narration, audiobooks, and long-form reads. ## Model ``` google/gemini-2.5-pro-tts ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `input` | string | Yes\* | - | Text to speak. Language is auto-detected (70+ languages). \*Provide exactly one of `input`, `text`, or `dialogue` | | `text` | string | No | - | Alias for `input` | | `dialogue` | array | No | - | Dialogue lines as `[{"text", "voice", "speaker"?}, ...]` — see [Multi-Speaker Dialogue](#multi-speaker-dialogue) | | `voice` | string | No | `alloy` | Voice name — a Gemini voice or an OpenAI-style alias (see [Voices](#voices)) | | `response_format` | string | No | `mp3` | Output container: `mp3`, `wav`, `pcm`, `opus`, `aac`, `flac` | | `speed` | number | No | `1.0` | Playback speed multiplier, `0.25`–`4.0` | | `instructions` | string | No | - | Style directions the voice follows but does not read, e.g. `"speak like a sports commentator"` | | `language` | string | No | auto | BCP-47 code to pin the output language (see [Languages](#languages)) | | `speakers` | array | No | - | Two-speaker dialogue config (see [Multi-Speaker Dialogue](#multi-speaker-dialogue)). When set, `voice` is ignored | ## Multi-Speaker Dialogue Generate a conversation between **up to 2 voices** in one request. Two equivalent forms are accepted. **Form 1 — `dialogue` array.** Each line carries its own voice; lines are spoken in order: ```json theme={null} { "dialogue": [ { "text": "Did the deploy finish?", "voice": "onyx", "speaker": "Joe" }, { "text": "Yes, all green — we are live!", "voice": "nova", "speaker": "Jane" }, { "text": "Great news.", "voice": "onyx", "speaker": "Joe" } ] } ``` `speaker` is optional — lines sharing a voice are treated as the same speaker automatically. If every line uses the same voice, the result is ordinary single-voice speech. **Form 2 — script plus `speakers` map.** Write the script in `input` with speaker names, and map each name to a voice: ```json theme={null} { "input": "Joe: Did the deploy finish? Jane: Yes, all green — we are live!", "speakers": [ { "speaker": "Joe", "voice": "onyx" }, { "speaker": "Jane", "voice": "Leda" } ] } ``` Speaker names must match the names used in `input` exactly. Both forms are limited to 2 distinct voices — a third voice is rejected with a `400`. ## Voices 30 prebuilt voices. Use either the Gemini name or the OpenAI-style alias in `voice` and `speakers[].voice`: | Voice | Style | OpenAI alias | | - | - | - | | `Achernar` | Soft | - | | `Achird` | Friendly | - | | `Algenib` | Gravelly | - | | `Algieba` | Smooth | - | | `Alnilam` | Firm | - | | `Aoede` | Breezy | `fable` | | `Autonoe` | Bright | - | | `Callirrhoe` | Easy-going | `sage` | | `Charon` | Informative | `onyx` | | `Despina` | Smooth | - | | `Enceladus` | Breathy | - | | `Erinome` | Clear | - | | `Fenrir` | Excitable | `ash` | | `Gacrux` | Mature | - | | `Iapetus` | Clear | - | | `Kore` | Firm | `alloy` | | `Laomedeia` | Upbeat | - | | `Leda` | Youthful | `nova` | | `Orus` | Firm | `verse` | | `Puck` | Upbeat | `echo` | | `Pulcherrima` | Forward | - | | `Rasalgethi` | Informative | - | | `Sadachbia` | Lively | - | | `Sadaltager` | Knowledgeable | - | | `Schedar` | Even | - | | `Sulafat` | Warm | `coral` | | `Umbriel` | Easy-going | `ballad` | | `Vindemiatrix` | Gentle | - | | `Zephyr` | Bright | `shimmer` | | `Zubenelgenubi` | Casual | - | ## Languages Language is **auto-detected** from `input` (70+ languages). Set `language` only to force a specific locale: | Code | Language | | - | - | | `ar-EG` | Arabic (Egyptian) | | `bn-BD` | Bengali | | `de-DE` | German | | `en-IN` | English (India) | | `en-US` | English (US) | | `es-US` | Spanish (US) | | `fr-FR` | French | | `hi-IN` | Hindi | | `id-ID` | Indonesian | | `it-IT` | Italian | | `ja-JP` | Japanese | | `ko-KR` | Korean | | `mr-IN` | Marathi | | `nl-NL` | Dutch | | `pl-PL` | Polish | | `pt-BR` | Portuguese (Brazil) | | `ro-RO` | Romanian | | `ru-RU` | Russian | | `ta-IN` | Tamil | | `te-IN` | Telugu | | `th-TH` | Thai | | `tr-TR` | Turkish | | `uk-UA` | Ukrainian | | `vi-VN` | Vietnamese | ## Output Formats | Format | Description | | - | - | | `mp3` | MP3 (default) | | `wav` | WAV, 24kHz 16-bit | | `pcm` | Raw PCM, 24kHz 16-bit mono | | `opus` | Opus in an Ogg container | | `aac` | AAC (ADTS) | | `flac` | FLAC lossless | ## Resources List voices and languages from the [Resources API](/api-reference/resources): ``` GET /v1/resources/google/tts/voices GET /v1/resources/google/tts/languages ``` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-2.5-pro-tts", "input": { "input": "Welcome back! Your order has shipped and arrives tomorrow.", "voice": "nova", "response_format": "mp3", "instructions": "Speak cheerfully, like a friendly support agent." } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Completed Response Poll `GET /v1/tasks/{task_id}` until `status` is `completed`: ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "audio_url": "https://files.unifically.com/audio/abc123.mp3" } } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Gemini 3.1 Flash TTS Source: https://docs.unifically.com/models/audio/google/gemini-3.1-flash-tts Generate speech with Google's Gemini 3.1 Flash TTS model — 30 voices, two-speaker dialogue, style instructions, and 70+ languages. See parameters, voices, and API examples. Google's newest and most expressive text-to-speech model. ## Model ``` google/gemini-3.1-flash-tts ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `input` | string | Yes\* | - | Text to speak. Language is auto-detected (70+ languages). \*Provide exactly one of `input`, `text`, or `dialogue` | | `text` | string | No | - | Alias for `input` | | `dialogue` | array | No | - | Dialogue lines as `[{"text", "voice", "speaker"?}, ...]` — see [Multi-Speaker Dialogue](#multi-speaker-dialogue) | | `voice` | string | No | `alloy` | Voice name — a Gemini voice or an OpenAI-style alias (see [Voices](#voices)) | | `response_format` | string | No | `mp3` | Output container: `mp3`, `wav`, `pcm`, `opus`, `aac`, `flac` | | `speed` | number | No | `1.0` | Playback speed multiplier, `0.25`–`4.0` | | `instructions` | string | No | - | Style directions the voice follows but does not read, e.g. `"speak like a sports commentator"` | | `language` | string | No | auto | BCP-47 code to pin the output language (see [Languages](#languages)) | | `speakers` | array | No | - | Two-speaker dialogue config (see [Multi-Speaker Dialogue](#multi-speaker-dialogue)). When set, `voice` is ignored | ## Audio Tags This model understands **inline audio tags** written directly inside `input` for line-level delivery control: ```json theme={null} { "input": "[whispering] I have a secret. [excited] And you will love it!" } ``` Common tags: `[whispering]`, `[excited]`, `[laughing]`, `[sighs]`, `[sarcastic]`, `[calm]`. Tags are performed, not spoken. ## Multi-Speaker Dialogue Generate a conversation between **up to 2 voices** in one request. Two equivalent forms are accepted. **Form 1 — `dialogue` array.** Each line carries its own voice; lines are spoken in order: ```json theme={null} { "dialogue": [ { "text": "Did the deploy finish?", "voice": "onyx", "speaker": "Joe" }, { "text": "Yes, all green — we are live!", "voice": "nova", "speaker": "Jane" }, { "text": "Great news.", "voice": "onyx", "speaker": "Joe" } ] } ``` `speaker` is optional — lines sharing a voice are treated as the same speaker automatically. If every line uses the same voice, the result is ordinary single-voice speech. **Form 2 — script plus `speakers` map.** Write the script in `input` with speaker names, and map each name to a voice: ```json theme={null} { "input": "Joe: Did the deploy finish? Jane: Yes, all green — we are live!", "speakers": [ { "speaker": "Joe", "voice": "onyx" }, { "speaker": "Jane", "voice": "Leda" } ] } ``` Speaker names must match the names used in `input` exactly. Both forms are limited to 2 distinct voices — a third voice is rejected with a `400`. ## Voices 30 prebuilt voices. Use either the Gemini name or the OpenAI-style alias in `voice` and `speakers[].voice`: | Voice | Style | OpenAI alias | | - | - | - | | `Achernar` | Soft | - | | `Achird` | Friendly | - | | `Algenib` | Gravelly | - | | `Algieba` | Smooth | - | | `Alnilam` | Firm | - | | `Aoede` | Breezy | `fable` | | `Autonoe` | Bright | - | | `Callirrhoe` | Easy-going | `sage` | | `Charon` | Informative | `onyx` | | `Despina` | Smooth | - | | `Enceladus` | Breathy | - | | `Erinome` | Clear | - | | `Fenrir` | Excitable | `ash` | | `Gacrux` | Mature | - | | `Iapetus` | Clear | - | | `Kore` | Firm | `alloy` | | `Laomedeia` | Upbeat | - | | `Leda` | Youthful | `nova` | | `Orus` | Firm | `verse` | | `Puck` | Upbeat | `echo` | | `Pulcherrima` | Forward | - | | `Rasalgethi` | Informative | - | | `Sadachbia` | Lively | - | | `Sadaltager` | Knowledgeable | - | | `Schedar` | Even | - | | `Sulafat` | Warm | `coral` | | `Umbriel` | Easy-going | `ballad` | | `Vindemiatrix` | Gentle | - | | `Zephyr` | Bright | `shimmer` | | `Zubenelgenubi` | Casual | - | ## Languages Language is **auto-detected** from `input` (70+ languages). Set `language` only to force a specific locale: | Code | Language | | - | - | | `ar-EG` | Arabic (Egyptian) | | `bn-BD` | Bengali | | `de-DE` | German | | `en-IN` | English (India) | | `en-US` | English (US) | | `es-US` | Spanish (US) | | `fr-FR` | French | | `hi-IN` | Hindi | | `id-ID` | Indonesian | | `it-IT` | Italian | | `ja-JP` | Japanese | | `ko-KR` | Korean | | `mr-IN` | Marathi | | `nl-NL` | Dutch | | `pl-PL` | Polish | | `pt-BR` | Portuguese (Brazil) | | `ro-RO` | Romanian | | `ru-RU` | Russian | | `ta-IN` | Tamil | | `te-IN` | Telugu | | `th-TH` | Thai | | `tr-TR` | Turkish | | `uk-UA` | Ukrainian | | `vi-VN` | Vietnamese | ## Output Formats | Format | Description | | - | - | | `mp3` | MP3 (default) | | `wav` | WAV, 24kHz 16-bit | | `pcm` | Raw PCM, 24kHz 16-bit mono | | `opus` | Opus in an Ogg container | | `aac` | AAC (ADTS) | | `flac` | FLAC lossless | ## Resources List voices and languages from the [Resources API](/api-reference/resources): ``` GET /v1/resources/google/tts/voices GET /v1/resources/google/tts/languages ``` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-3.1-flash-tts", "input": { "input": "Welcome back! Your order has shipped and arrives tomorrow.", "voice": "nova", "response_format": "mp3", "instructions": "Speak cheerfully, like a friendly support agent." } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Completed Response Poll `GET /v1/tasks/{task_id}` until `status` is `completed`: ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "audio_url": "https://files.unifically.com/audio/abc123.mp3" } } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Gemini 3.8 Flash Lite TTS Source: https://docs.unifically.com/models/audio/google/gemini-3.8-flash-lite-tts Generate speech with Google's Gemini 3.8 Flash Lite TTS model — fast, high-volume speech with vocal bursts, two-speaker dialogue, and 100+ languages. See parameters, voices, and API examples. Google's fast, high-volume Gemini 3.8 text-to-speech model for narration, dubbing, read-aloud features, and voice agents. Same request body as Gemini 3.8 Flash TTS. Released September 2026. ## Model ``` google/gemini-3.8-flash-lite-tts ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `input` | string | Yes\* | - | Text to speak. Language is auto-detected (100+ languages). \*Provide exactly one of `input`, `text`, or `dialogue` | | `text` | string | No | - | Alias for `input` | | `dialogue` | array | No | - | Dialogue lines as `[{"text", "voice", "speaker"?}, ...]` — see [Multi-Speaker Dialogue](#multi-speaker-dialogue) | | `voice` | string | No | `alloy` | Voice name — a Gemini voice or an OpenAI-style alias (see [Voices](#voices)) | | `response_format` | string | No | `mp3` | Output container: `mp3`, `wav`, `pcm`, `opus`, `aac`, `flac` | | `speed` | number | No | `1.0` | Playback speed multiplier, `0.25`–`4.0` | | `instructions` | string | No | - | Style directions the voice follows but does not read, e.g. `"speak like a sports commentator"` | | `language` | string | No | auto | BCP-47 code to pin the output language (see [Languages](#languages)) | | `speakers` | array | No | - | Two-speaker dialogue config (see [Multi-Speaker Dialogue](#multi-speaker-dialogue)). When set, `voice` is ignored | ## Vocal Bursts Gemini 3.8 TTS places short non-speech sounds written in **angle brackets** at the exact point they appear in `input`: ```json theme={null} { "input": "Did you see that? I can't believe it worked. Okay, again." } ``` Supported bursts include ``, ``, ``, ``, ``, `` and ``. In two-speaker scripts, listener sounds go between pipes, like `|mhm|` or `|yeah|`. Bursts are performed, not spoken. The square-bracket tags of Gemini 3.1 Flash TTS (`[whispering]`, `[excited]`) are not part of the 3.8 syntax. Use `instructions` for the overall delivery style instead. ## Multi-Speaker Dialogue Generate a conversation between **up to 2 voices** in one request. Two equivalent forms are accepted. **Form 1 — `dialogue` array.** Each line carries its own voice; lines are spoken in order: ```json theme={null} { "dialogue": [ { "text": "Did the deploy finish?", "voice": "onyx", "speaker": "Joe" }, { "text": "Yes, all green — we are live!", "voice": "nova", "speaker": "Jane" }, { "text": "Great news.", "voice": "onyx", "speaker": "Joe" } ] } ``` `speaker` is optional — lines sharing a voice are treated as the same speaker automatically. If every line uses the same voice, the result is ordinary single-voice speech. **Form 2 — script plus `speakers` map.** Write the script in `input` with speaker names, and map each name to a voice: ```json theme={null} { "input": "Joe: Did the deploy finish? Jane: Yes, all green — we are live!", "speakers": [ { "speaker": "Joe", "voice": "onyx" }, { "speaker": "Jane", "voice": "Leda" } ] } ``` Speaker names must match the names used in `input` exactly. Both forms are limited to 2 distinct voices — a third voice is rejected with a `400`. ## Voices 30 prebuilt voices. Use either the Gemini name or the OpenAI-style alias in `voice` and `speakers[].voice`: | Voice | Style | OpenAI alias | | - | - | - | | `Achernar` | Soft | - | | `Achird` | Friendly | - | | `Algenib` | Gravelly | - | | `Algieba` | Smooth | - | | `Alnilam` | Firm | - | | `Aoede` | Breezy | `fable` | | `Autonoe` | Bright | - | | `Callirrhoe` | Easy-going | `sage` | | `Charon` | Informative | `onyx` | | `Despina` | Smooth | - | | `Enceladus` | Breathy | - | | `Erinome` | Clear | - | | `Fenrir` | Excitable | `ash` | | `Gacrux` | Mature | - | | `Iapetus` | Clear | - | | `Kore` | Firm | `alloy` | | `Laomedeia` | Upbeat | - | | `Leda` | Youthful | `nova` | | `Orus` | Firm | `verse` | | `Puck` | Upbeat | `echo` | | `Pulcherrima` | Forward | - | | `Rasalgethi` | Informative | - | | `Sadachbia` | Lively | - | | `Sadaltager` | Knowledgeable | - | | `Schedar` | Even | - | | `Sulafat` | Warm | `coral` | | `Umbriel` | Easy-going | `ballad` | | `Vindemiatrix` | Gentle | - | | `Zephyr` | Bright | `shimmer` | | `Zubenelgenubi` | Casual | - | ## Languages Language is **auto-detected** from `input` (100+ languages). Set `language` only to force a specific locale: | Code | Language | | - | - | | `ar-EG` | Arabic (Egyptian) | | `bn-BD` | Bengali | | `de-DE` | German | | `en-IN` | English (India) | | `en-US` | English (US) | | `es-US` | Spanish (US) | | `fr-FR` | French | | `hi-IN` | Hindi | | `id-ID` | Indonesian | | `it-IT` | Italian | | `ja-JP` | Japanese | | `ko-KR` | Korean | | `mr-IN` | Marathi | | `nl-NL` | Dutch | | `pl-PL` | Polish | | `pt-BR` | Portuguese (Brazil) | | `ro-RO` | Romanian | | `ru-RU` | Russian | | `ta-IN` | Tamil | | `te-IN` | Telugu | | `th-TH` | Thai | | `tr-TR` | Turkish | | `uk-UA` | Ukrainian | | `vi-VN` | Vietnamese | ## Output Formats | Format | Description | | - | - | | `mp3` | MP3 (default) | | `wav` | WAV, 24kHz 16-bit | | `pcm` | Raw PCM, 24kHz 16-bit mono | | `opus` | Opus in an Ogg container | | `aac` | AAC (ADTS) | | `flac` | FLAC lossless | ## Resources List voices and languages from the [Resources API](/api-reference/resources): ``` GET /v1/resources/google/tts/voices GET /v1/resources/google/tts/languages ``` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-3.8-flash-lite-tts", "input": { "input": "Your order has shipped and arrives tomorrow.", "voice": "nova", "response_format": "mp3", "instructions": "Speak cheerfully, like a friendly support agent." } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Completed Response Poll `GET /v1/tasks/{task_id}` until `status` is `completed`: ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "audio_url": "https://files.unifically.com/audio/abc123.mp3" } } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Gemini 3.8 Flash TTS Source: https://docs.unifically.com/models/audio/google/gemini-3.8-flash-tts Generate speech with Google's Gemini 3.8 Flash TTS model — vocal bursts, two-speaker dialogue, style instructions, and 130+ languages. See parameters, voices, and API examples. Google's highest-quality text-to-speech model, with inline vocal bursts and two-speaker dialogue. Released September 2026. ## Model ``` google/gemini-3.8-flash-tts ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `input` | string | Yes\* | - | Text to speak. Language is auto-detected (130+ languages). \*Provide exactly one of `input`, `text`, or `dialogue` | | `text` | string | No | - | Alias for `input` | | `dialogue` | array | No | - | Dialogue lines as `[{"text", "voice", "speaker"?}, ...]` — see [Multi-Speaker Dialogue](#multi-speaker-dialogue) | | `voice` | string | No | `alloy` | Voice name — a Gemini voice or an OpenAI-style alias (see [Voices](#voices)) | | `response_format` | string | No | `mp3` | Output container: `mp3`, `wav`, `pcm`, `opus`, `aac`, `flac` | | `speed` | number | No | `1.0` | Playback speed multiplier, `0.25`–`4.0` | | `instructions` | string | No | - | Style directions the voice follows but does not read, e.g. `"speak like a sports commentator"` | | `language` | string | No | auto | BCP-47 code to pin the output language (see [Languages](#languages)) | | `speakers` | array | No | - | Two-speaker dialogue config (see [Multi-Speaker Dialogue](#multi-speaker-dialogue)). When set, `voice` is ignored | ## Vocal Bursts Gemini 3.8 TTS places short non-speech sounds written in **angle brackets** at the exact point they appear in `input`: ```json theme={null} { "input": "Did you see that? I can't believe it worked. Okay, again." } ``` Supported bursts include ``, ``, ``, ``, ``, `` and ``. In two-speaker scripts, listener sounds go between pipes, like `|mhm|` or `|yeah|`. Bursts are performed, not spoken. The square-bracket tags of Gemini 3.1 Flash TTS (`[whispering]`, `[excited]`) are not part of the 3.8 syntax. Use `instructions` for the overall delivery style instead. ## Multi-Speaker Dialogue Generate a conversation between **up to 2 voices** in one request. Two equivalent forms are accepted. **Form 1 — `dialogue` array.** Each line carries its own voice; lines are spoken in order: ```json theme={null} { "dialogue": [ { "text": "Did the deploy finish?", "voice": "onyx", "speaker": "Joe" }, { "text": "Yes, all green — we are live!", "voice": "nova", "speaker": "Jane" }, { "text": "Great news.", "voice": "onyx", "speaker": "Joe" } ] } ``` `speaker` is optional — lines sharing a voice are treated as the same speaker automatically. If every line uses the same voice, the result is ordinary single-voice speech. **Form 2 — script plus `speakers` map.** Write the script in `input` with speaker names, and map each name to a voice: ```json theme={null} { "input": "Joe: Did the deploy finish? Jane: Yes, all green — we are live!", "speakers": [ { "speaker": "Joe", "voice": "onyx" }, { "speaker": "Jane", "voice": "Leda" } ] } ``` Speaker names must match the names used in `input` exactly. Both forms are limited to 2 distinct voices — a third voice is rejected with a `400`. ## Voices 30 prebuilt voices. Use either the Gemini name or the OpenAI-style alias in `voice` and `speakers[].voice`: | Voice | Style | OpenAI alias | | - | - | - | | `Achernar` | Soft | - | | `Achird` | Friendly | - | | `Algenib` | Gravelly | - | | `Algieba` | Smooth | - | | `Alnilam` | Firm | - | | `Aoede` | Breezy | `fable` | | `Autonoe` | Bright | - | | `Callirrhoe` | Easy-going | `sage` | | `Charon` | Informative | `onyx` | | `Despina` | Smooth | - | | `Enceladus` | Breathy | - | | `Erinome` | Clear | - | | `Fenrir` | Excitable | `ash` | | `Gacrux` | Mature | - | | `Iapetus` | Clear | - | | `Kore` | Firm | `alloy` | | `Laomedeia` | Upbeat | - | | `Leda` | Youthful | `nova` | | `Orus` | Firm | `verse` | | `Puck` | Upbeat | `echo` | | `Pulcherrima` | Forward | - | | `Rasalgethi` | Informative | - | | `Sadachbia` | Lively | - | | `Sadaltager` | Knowledgeable | - | | `Schedar` | Even | - | | `Sulafat` | Warm | `coral` | | `Umbriel` | Easy-going | `ballad` | | `Vindemiatrix` | Gentle | - | | `Zephyr` | Bright | `shimmer` | | `Zubenelgenubi` | Casual | - | ## Languages Language is **auto-detected** from `input` (130+ languages). Set `language` only to force a specific locale: | Code | Language | | - | - | | `ar-EG` | Arabic (Egyptian) | | `bn-BD` | Bengali | | `de-DE` | German | | `en-IN` | English (India) | | `en-US` | English (US) | | `es-US` | Spanish (US) | | `fr-FR` | French | | `hi-IN` | Hindi | | `id-ID` | Indonesian | | `it-IT` | Italian | | `ja-JP` | Japanese | | `ko-KR` | Korean | | `mr-IN` | Marathi | | `nl-NL` | Dutch | | `pl-PL` | Polish | | `pt-BR` | Portuguese (Brazil) | | `ro-RO` | Romanian | | `ru-RU` | Russian | | `ta-IN` | Tamil | | `te-IN` | Telugu | | `th-TH` | Thai | | `tr-TR` | Turkish | | `uk-UA` | Ukrainian | | `vi-VN` | Vietnamese | ## Output Formats | Format | Description | | - | - | | `mp3` | MP3 (default) | | `wav` | WAV, 24kHz 16-bit | | `pcm` | Raw PCM, 24kHz 16-bit mono | | `opus` | Opus in an Ogg container | | `aac` | AAC (ADTS) | | `flac` | FLAC lossless | ## Resources List voices and languages from the [Resources API](/api-reference/resources): ``` GET /v1/resources/google/tts/voices GET /v1/resources/google/tts/languages ``` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-3.8-flash-tts", "input": { "input": "Welcome back! Your order has shipped and arrives tomorrow.", "voice": "nova", "response_format": "mp3", "instructions": "Speak cheerfully, like a friendly support agent." } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Completed Response Poll `GET /v1/tasks/{task_id}` until `status` is `completed`: ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "audio_url": "https://files.unifically.com/audio/abc123.mp3" } } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Add Instrumental Source: https://docs.unifically.com/models/audio/suno/add-instrumental Add instrumental backing to uploaded music. See supported inputs, parameters, pricing, response fields, and API examples. Add instrumental backing to uploaded music. Only works with uploaded audio, not Suno-generated clips. ## Model ``` suno-ai/add-instrumental ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `mv` | string | Yes | Model version | | `clip_id` | string | Yes | Clip ID from uploaded audio | | `audio_url` | string | No | Audio file URL | | `gpt_description_prompt` | string | No | Simple mode description | | `prompt` | string | No | Custom mode prompt | | `start_s` | number | No | Start time in seconds | | `end_s` | number | No | End time in seconds | | `title` | string | No | Title for result | | `custom_model` | object | No | Required when `mv` is `chirp-custom`. Inline custom model — `{ "name": string, "audio_urls": string[] }`. See [Music Generation › Custom Model](/models/audio/suno/music#custom-model) | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Simple Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/add-instrumental", "input": { "mv": "chirp-hawk", "clip_id": "ec0be483-2de2-4abc-a5ce-3d8258f52ed4", "gpt_description_prompt": "Hip-hop beats with 808 bass", "start_s": 0, "end_s": 60 } }' ``` ## Example - Custom Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/add-instrumental", "input": { "mv": "chirp-hawk", "clip_id": "ec0be483-2de2-4abc-a5ce-3d8258f52ed4", "prompt": "Rock guitar and drums with heavy bass", "title": "With Instrumental", "start_s": 0, "end_s": 60 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Add Vocals Source: https://docs.unifically.com/models/audio/suno/add-vocals Add vocals to uploaded music. See supported inputs, parameters, pricing, response fields, and API examples. Add vocals to uploaded music. Only works with uploaded audio, not Suno-generated clips. ## Model ``` suno-ai/add-vocals ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `mv` | string | Yes | Model version | | `clip_id` | string | Yes | Clip ID from uploaded audio | | `audio_url` | string | No | Audio file URL | | `gpt_description_prompt` | string | No | Vocal description/lyrics | | `prompt` | string | No | Custom mode prompt | | `start_s` | number | No | Start time in seconds | | `end_s` | number | No | End time in seconds | | `make_instrumental` | boolean | No | Generate instrumental | | `title` | string | No | Title for result | | `custom_model` | object | No | Required when `mv` is `chirp-custom`. Inline custom model — `{ "name": string, "audio_urls": string[] }`. See [Music Generation › Custom Model](/models/audio/suno/music#custom-model) | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/add-vocals", "input": { "mv": "chirp-hawk", "clip_id": "ec0be483-2de2-4abc-a5ce-3d8258f52ed4", "gpt_description_prompt": "[Verse 1]\nNew vocal lyrics here", "start_s": 10, "end_s": 60 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Cover Generation Source: https://docs.unifically.com/models/audio/suno/cover Create cover versions with Suno AI. See supported inputs, parameters, pricing, response fields, and API examples. Generate a cover version of an existing song or uploaded audio. ## Model ``` suno-ai/cover ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `mv` | string | Yes | Model version | | `custom` | boolean | Yes | Simple or custom mode | | `clip_id` | string | No | Existing Suno clip ID | | `audio_url` | string | No | Audio file URL | | `gpt_description_prompt` | string | No | Simple mode description | | `prompt` | string | No | Custom mode prompt | | `title` | string | No | Title for cover | | `make_instrumental` | boolean | No | Generate instrumental | | `custom_model` | object | No | Required when `mv` is `chirp-custom`. Inline custom model — `{ "name": string, "audio_urls": string[] }`. See [Music Generation › Custom Model](/models/audio/suno/music#custom-model) | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Cover Existing Clip ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/cover", "input": { "mv": "chirp-hawk", "custom": false, "clip_id": "5a6bb955-1536-4f43-877a-b4aa9fb18a4e", "gpt_description_prompt": "Jazz style cover with saxophone" } }' ``` ## Example - Upload and Cover ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/cover", "input": { "mv": "chirp-hawk", "custom": true, "audio_url": "https://example.com/audio.mp3", "prompt": "Acoustic guitar cover with soft vocals", "title": "Acoustic Cover" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Cover Art Source: https://docs.unifically.com/models/audio/suno/cover-art Generate album artwork for a Suno clip from a prompt, optionally guided by reference images. See parameters, pricing, response fields, and API examples. Generate artwork for a clip. Each request returns two images. The `basic` tier is free and accepts up to four reference images. The `advanced` tier produces more detailed images, is billed, and works from the prompt alone. ## Model ``` suno-ai/cover-art ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `clip_id` | string | Yes | Clip the artwork belongs to | | `prompt` | string | Yes | Description of the artwork | | `quality` | string | No | `basic` (default) or `advanced` | | `aspect_ratio` | string | No | Aspect ratio such as `1:1`. Default: `1:1` | | `image_urls` | string\[] | No | Up to 4 reference image URLs (PNG, JPEG, or WebP, 10 MB max each). `basic` only | | `image_ids` | string\[] | No | Up to 4 IDs of images from earlier cover-art results, to remix them. `basic` only | `image_urls` and `image_ids` count toward the same limit of four references. Reference images go through content moderation before generation. ## Example - Prompt only ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/cover-art", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d", "prompt": "melancholic cinematic album cover, empty room, soft light", "quality": "advanced" } }' ``` ## Example - Reference images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/cover-art", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d", "prompt": "same mood, painted style", "image_urls": [ "https://example.com/reference-1.jpg", "https://example.com/reference-2.jpg" ] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Result ```json theme={null} { "task_id": "abc123def456", "status": "completed", "images": [ { "id": "e36f8b72-…", "url": "https://…/cover-1.jpeg", "thumbnail_url": "https://…/cover-1.jpeg" }, { "id": "19b12b6e-…", "url": "https://…/cover-2.jpeg", "thumbnail_url": "https://…/cover-2.jpeg" } ] } ``` Use an image `id` in `image_ids` to iterate on a result. **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Editing Source: https://docs.unifically.com/models/audio/suno/edit Edit Suno clips: replace a section, crop, remove a section, fade, change speed, reverse, or stitch an extended song together. See parameters, pricing, and API examples. Edit an existing clip. Every operation returns a new clip and leaves the original untouched. All edits are free except **Replace Section**, which generates new audio. ## Models | Model | What it does | Billed | | - | - | - | | `suno-ai/infill` | Regenerates a time range with new lyrics (replace section) | Yes | | `suno-ai/crop` | Keeps only a range, or removes a range | No | | `suno-ai/fade` | Adds a fade in, a fade out, or both | No | | `suno-ai/speed` | Changes tempo, optionally keeping pitch | No | | `suno-ai/reverse` | Reverses the clip | No | | `suno-ai/concat` | Stitches an extended clip into one full song | No | ## Replace Section Model: `suno-ai/infill` | Parameter | Type | Required | Description | | - | - | - | - | | `clip_id` | string | Yes | Clip to edit | | `mv` | string | Yes | Model version, see [Model Versions](/models/audio/suno/music#model-versions) | | `start_s` | number | Yes | Start of the section to replace, in seconds | | `end_s` | number | Yes | End of the section to replace, in seconds | | `lyrics` | string | No | Lyrics for the new section. Omit for instrumental | | `context_start_s` | number | No | Start of the surrounding context. Default: `start_s` | | `context_end_s` | number | No | End of the surrounding context. Default: end of the clip | | `tags` | string | No | Genre/style tags | | `title` | string | No | Title for the new clip | | `make_instrumental` | boolean | No | Replace with instrumental only | | `negative_tags` | string | No | Styles to avoid | Ranges that fall outside the clip are rejected before generation. Sections that start and end on bar boundaries blend best. ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/infill", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d", "mv": "chirp-hawk", "start_s": 15, "end_s": 35, "lyrics": "Hello darkness, my old friend" } }' ``` ## Crop / Remove Section Model: `suno-ai/crop` | Parameter | Type | Required | Description | | - | - | - | - | | `clip_id` | string | Yes | Clip to edit | | `start_s` | number | Yes | Range start in seconds | | `end_s` | number | Yes | Range end in seconds | | `remove` | boolean | No | `false` keeps only the range (crop). `true` cuts the range out (remove section). Default: `false` | | `title` | string | No | Title for the new clip | ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/crop", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d", "start_s": 0, "end_s": 30 } }' ``` ## Fade Model: `suno-ai/fade` | Parameter | Type | Required | Description | | - | - | - | - | | `clip_id` | string | Yes | Clip to edit | | `fade_in_s` | number | No\* | Fade-in length in seconds from the start | | `fade_out_s` | number | No\* | Fade-out length in seconds before the end | | `title` | string | No | Title for the new clip | \* Provide at least one of `fade_in_s` or `fade_out_s`. ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/fade", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d", "fade_in_s": 3, "fade_out_s": 5 } }' ``` ## Speed Model: `suno-ai/speed` | Parameter | Type | Required | Description | | - | - | - | - | | `clip_id` | string | Yes | Clip to edit | | `speed_multiplier` | number | Yes | `0.25` to `4.0` | | `keep_pitch` | boolean | No | Preserve pitch while changing tempo. Default: `false` | | `title` | string | No | Title for the new clip | ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/speed", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d", "speed_multiplier": 1.25, "keep_pitch": true } }' ``` ## Reverse Model: `suno-ai/reverse` | Parameter | Type | Required | Description | | - | - | - | - | | `clip_id` | string | Yes | Clip to reverse | | `title` | string | No | Title for the new clip | ## Get Full Song Model: `suno-ai/concat` [Extend](/models/audio/suno/extend) returns only the new segment. Pass that extended clip here to receive one continuous song. | Parameter | Type | Required | Description | | - | - | - | - | | `clip_id` | string | Yes | ID of the extended clip | ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/concat", "input": { "clip_id": "e69f5332-af8d-489e-b6ce-4a08a7f6429a" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` The completed task returns `clips` with the edited result, the same shape as [Music Generation](/models/audio/suno/music). **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Extend Music Source: https://docs.unifically.com/models/audio/suno/extend Extend existing songs with Suno AI. See supported inputs, parameters, pricing, response fields, and API examples. Extend an existing song or uploaded audio. ## Model ``` suno-ai/extend ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `mv` | string | Yes | Model version | | `custom` | boolean | Yes | Simple or custom mode | | `clip_id` | string | No | Existing Suno clip ID to extend | | `audio_url` | string | No | Audio file URL to extend | | `continue_at` | number | Yes | Time in seconds where extension should begin | | `gpt_description_prompt` | string | No | Simple mode description | | `prompt` | string | No | Custom mode lyrics/prompt | | `title` | string | No | Title for extended version | | `make_instrumental` | boolean | No | Generate instrumental | | `custom_model` | object | No | Required when `mv` is `chirp-custom`. Inline custom model — `{ "name": string, "audio_urls": string[] }`. See [Music Generation › Custom Model](/models/audio/suno/music#custom-model) | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | Provide either `clip_id` (for Suno-generated clips) or `audio_url` (for uploaded audio). ## Example - Extend Existing Clip ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/extend", "input": { "mv": "chirp-hawk", "custom": false, "clip_id": "69ad968a-23c4-40e0-9cdc-80f9649c5209", "continue_at": 99.6, "gpt_description_prompt": "Continue the epic chorus" } }' ``` ## Example - Upload and Extend ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/extend", "input": { "mv": "chirp-hawk", "custom": true, "audio_url": "https://example.com/audio.mp3", "continue_at": 60, "prompt": "[Verse 3]\nExtended lyrics here...", "title": "Extended Version" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Generate Lyrics Source: https://docs.unifically.com/models/audio/suno/lyrics Generate lyrics with Suno AI. See supported inputs, parameters, pricing, response fields, and API examples. Generate AI-powered lyrics based on a description. ## Model ``` suno-ai/lyrics ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Description of lyrics to generate | | `mv` | string | Yes | Lyrics model: `remi-v1` or `default` | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/lyrics", "input": { "prompt": "A chill rock song about summer days at the beach", "mv": "remi-v1" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Completed Response The API returns two variations of lyrics (a and b): ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "fd743167-d03d-4c48-84c1-2ca01002562b", "status": "completed", "output": { "a": { "text": "[Verse]\nOut in the yard\nCrawlin' with all the animals...", "title": "All the Days", "tags": ["chill rock", "rock"] }, "b": { "text": "[Verse]\nGimme those nights on a beach somewhere...", "title": "Summer Days", "tags": ["rock", "electric guitar", "chill"] } } } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Music Generation Source: https://docs.unifically.com/models/audio/suno/music Generate music with Suno AI. See supported inputs, parameters, pricing, response fields, and API examples. Generate complete songs using Suno AI with simple or custom mode. To sing with a voice you created via [Voice Creation](/models/audio/suno/voice), pass its `persona_id` in the request input. ## Model ``` suno-ai/music ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `mv` | string | Yes | Model version (see below) | | `custom` | boolean | Yes | `false` for simple mode, `true` for custom mode | | `gpt_description_prompt` | string | No | Simple mode: song description with lyrics | | `prompt` | string | No | Custom mode: detailed lyrics/prompt | | `tags` | string | No | Custom mode: genre/style tags | | `title` | string | No | Song title | | `make_instrumental` | boolean | No | Generate instrumental only | | `negative_tags` | string | No | Custom mode: styles to avoid | | `persona_id` | string | No | ID of a custom voice from [Voice Creation](/models/audio/suno/voice). When set, the generated music uses that voice for vocals | | `custom_model` | object | No | Required when `mv` is `chirp-custom`. Inline custom model definition — see [Custom Model](#custom-model) | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Model Versions | Version | Description | | - | - | | `chirp-hawk` | Version 6 — powerful, versatile, refined. The default choice | | `chirp-hawk-wild` | Version 6 Wild — the same model tuned for experimental, unpredictable output | | `chirp-goose` | Version 6 Mini — faster and lighter than v6 | | `chirp-custom` | Inline custom model trained from your own tracks (see [Custom Model](#custom-model)) | Suno retired every model before v6. The old ids — `chirp-v3-0`, `chirp-v3-5`, `chirp-v4`, `chirp-auk`, `chirp-auk-turbo`, `chirp-bluejay`, `chirp-crow`, `chirp-fenix` — are still accepted so existing integrations keep working, and each one now generates on `chirp-hawk`. ## Model Limits | Version | Prompt Limit | Style Limit | | - | - | - | | v6, v6 Wild, v6 Mini | 5,000 chars | 1,000 chars | | Simple Mode | 500 chars | - | ## Example - Simple Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/music", "input": { "mv": "chirp-hawk", "custom": false, "gpt_description_prompt": "[Verse 1]\nHello world\n[Chorus]\nThis is my song", "make_instrumental": false, "title": "My First Song" } }' ``` ## Example - Custom Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/music", "input": { "mv": "chirp-hawk", "custom": true, "prompt": "[Verse 1]\nWalking down the street at night...", "tags": "pop, electronic, upbeat", "title": "Night Walk", "negative_tags": "metal, jazz" } }' ``` ## Custom Model Set `mv` to `chirp-custom` and pass an inline `custom_model` object to generate music in the style of your own reference tracks. The custom model is ephemeral — it's trained for the request and discarded once generation completes. Pass the same `custom_model` payload on every request you want to use that style. ### `custom_model` fields | Field | Type | Required | Description | | - | - | - | - | | `name` | string | Yes | Model name | | `audio_urls` | list\[string] | Yes | 6–24 audio URLs to train on | ### Example - Custom Model ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/music", "input": { "mv": "chirp-custom", "custom": true, "custom_model": { "name": "audio model v1", "audio_urls": [ "https://example.com/track1.mp3", "https://example.com/track2.mp3", "https://example.com/track3.mp3", "https://example.com/track4.mp3", "https://example.com/track5.mp3", "https://example.com/track6.mp3" ] }, "prompt": "[Verse 1]\nWalking down the street at night...", "tags": "pop, electronic, upbeat", "title": "Night Walk" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Remaster Source: https://docs.unifically.com/models/audio/suno/remaster Remaster an existing Suno clip with a newer model and quality sliders. See supported inputs, parameters, pricing, response fields, and API examples. Re-render an existing clip through Suno's remaster model. The song stays the same; production quality, tone, and stereo image are refreshed. Each request returns a pair of remastered clips. ## Model ``` suno-ai/remaster ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `clip_id` | string | Yes | Clip ID to remaster | | `tags` | string | No | Style tags to steer the remaster | | `variation_category` | string | No | Variation strength. Default: `normal` | | `freedom` | number | No | Creative freedom, `0`–`1` | | `tone` | number | No | Tonal balance, `0`–`1` | | `strength` | number | No | Remaster strength, `0`–`1` | | `stereo_width` | number | No | Stereo width, `0`–`1` | | `clarity` | number | No | Clarity, `0`–`1` | Omit a slider to keep Suno's default for it. ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/remaster", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d", "clarity": 0.8, "stereo_width": 0.6 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` The completed task returns `clips`, the same shape as [Music Generation](/models/audio/suno/music). **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Mashup, Inspiration & Sample Source: https://docs.unifically.com/models/audio/suno/remix Create new songs from existing Suno clips: blend two songs, draw inspiration from up to four, or build around a sampled section. See parameters, pricing, and API examples. Three ways to generate a new song from clips you already have. Each request returns a pair of new clips, like [Music Generation](/models/audio/suno/music). ## Models | Model | What it does | | - | - | | `suno-ai/mashup` | Blends exactly two clips into one new song | | `suno-ai/inspiration` | Generates a new song guided by one to four reference clips | | `suno-ai/sample` | Builds a new song around a sampled window of one clip | ## Shared parameters | Parameter | Type | Required | Description | | - | - | - | - | | `mv` | string | Yes | Model version, see [Model Versions](/models/audio/suno/music#model-versions) | | `tags` | string | No | Genre/style tags | | `prompt` | string | No | Custom lyrics | | `title` | string | No | Song title | | `make_instrumental` | boolean | No | Generate instrumental only | | `negative_tags` | string | No | Styles to avoid | ## Model-specific parameters | Model | Parameter | Type | Required | Description | | - | - | - | - | - | | `suno-ai/mashup` | `clip_ids` | string\[] | Yes | Exactly 2 clip IDs | | `suno-ai/inspiration` | `clip_ids` | string\[] | Yes | 1 to 4 clip IDs | | `suno-ai/sample` | `clip_id` | string | Yes | Clip to sample from | | `suno-ai/sample` | `start_s` | number | No | Sample window start in seconds. Default: `0` | | `suno-ai/sample` | `end_s` | number | No | Sample window end in seconds. Default: `60` | ## Example - Mashup ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/mashup", "input": { "mv": "chirp-hawk", "clip_ids": [ "1901ec96-72c6-4c26-8e56-91028ca6070d", "5a6bb955-1536-4f43-877a-b4aa9fb18a4e" ], "tags": "lofi piano, late night" } }' ``` ## Example - Inspiration ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/inspiration", "input": { "mv": "chirp-hawk", "clip_ids": ["1901ec96-72c6-4c26-8e56-91028ca6070d"], "tags": "rainy night, ambient", "make_instrumental": true } }' ``` ## Example - Sample ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/sample", "input": { "mv": "chirp-hawk", "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d", "start_s": 0, "end_s": 30, "tags": "boom bap, vinyl" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Sound Effects Source: https://docs.unifically.com/models/audio/suno/sound Generate sound effects with Suno AI. See supported inputs, parameters, pricing, response fields, and API examples. Generate sound effects (not music) using Suno AI. ## Model ``` suno-ai/sound ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | — | Sound description (e.g. `"dog barking in street"`) | | `mv` | string | Yes | — | Model version (e.g. `chirp-hawk`) | | `title` | string | No | — | Sound title | | `negative_tags` | string | No | — | Tags to avoid | | `bpm` | int | No | — | Tempo / beats per minute (1–300) | | `key` | string | No | — | Musical key (see Valid Keys) | | `type` | string | No | `"one-shot"` | `"one-shot"` or `"loop"` | | `custom_model` | object | No | — | Required when `mv` is `chirp-custom`. Inline custom model — `{ "name": string, "audio_urls": string[] }`. See [Music Generation › Custom Model](/models/audio/suno/music#custom-model) | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Valid Keys | Mode | Keys | | - | - | | Major | `C` `C#` `D` `D#` `E` `F` `F#` `G` `G#` `A` `A#` `B` | | Minor | `Cm` `C#m` `Dm` `D#m` `Em` `Fm` `F#m` `Gm` `G#m` `Am` `A#m` `Bm` | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/sound", "input": { "prompt": "dog barking in street", "mv": "chirp-hawk", "title": "Dog Bark", "type": "one-shot", "bpm": 120, "key": "Am" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` Status response uses the same clip format as [Music Generation](/models/audio/suno/music). **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Extract Stems Source: https://docs.unifically.com/models/audio/suno/stems Extract vocals and instrumental tracks. See supported inputs, parameters, pricing, response fields, and API examples. Extract vocals and instrumental tracks from a song. ## Models | Model | Description | | - | - | | `suno-ai/stems` | Extract vocals + instrumental | | `suno-ai/stems-all` | Extract all stems | ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `clip_id` | string | Yes | Clip ID to extract stems from | | `title` | string | No | Title for extraction | ## Available Stems (stems-all) * Vocals * Backing Vocals * Drums * Bass * Guitar * Keyboard * Percussion * Strings * Synth * FX * Brass * Woodwinds ## Example - Basic Stems ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/stems", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d", "title": "My Stems" } }' ``` ## Example - All Stems ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/stems-all", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d", "title": "All My Stems" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Prompt & Vocal Tools Source: https://docs.unifically.com/models/audio/suno/tools Free Suno helpers: enhance a style prompt before generating, or isolate the vocals from a clip. See parameters, response fields, and API examples. Two free helpers that fit around generation. ## Models | Model | What it does | | - | - | | `suno-ai/enhance-prompt` | Rewrites a short style description into a richer prompt | | `suno-ai/vox` | Isolates the vocals from a time range of a clip | ## Enhance Prompt Model: `suno-ai/enhance-prompt` | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Style description to enhance | ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/enhance-prompt", "input": { "prompt": "lofi" } }' ``` The completed task returns `prompt` with the enhanced text. Pass it as `tags` to [Music Generation](/models/audio/suno/music). ## Extract Vocals Model: `suno-ai/vox` | Parameter | Type | Required | Description | | - | - | - | - | | `clip_id` | string | Yes | Clip to isolate vocals from | | `vocal_start_s` | number | No | Start of the vocal region in seconds. Default: `0` | | `vocal_end_s` | number | Yes | End of the vocal region in seconds | ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/vox", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d", "vocal_start_s": 45, "vocal_end_s": 74 } }' ``` The completed task returns `vox_audio_id`, `source_clip_id`, `vocal_start_s`, and `vocal_end_s`. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # AI Video Source: https://docs.unifically.com/models/audio/suno/video-gen Generate a short AI video for a segment of a Suno clip, with optional first and last frames. See parameters, pricing, response fields, and API examples. Generate a 5 to 10 second AI video set to a segment of your song. Each request returns two videos. Pricing is per second of video and depends on the quality tier. ## Model ``` suno-ai/video-gen ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `clip_id` | string | Yes | Clip whose audio drives the video | | `prompt` | string | Yes | Description of the video | | `quality` | string | No | `basic` (default) or `advanced` | | `duration` | integer | No | Video length in seconds, `5` to `10`. Default: `10` | | `clip_start_time` | number | No | Where in the song the segment starts, in seconds. Default: `0`. The segment ends `duration` seconds later | | `aspect_ratio` | string | No | Aspect ratio such as `1:1`. Default: `1:1` | | `start_image_url` | string | No | First-frame image URL | | `end_image_url` | string | No | Last-frame image URL | | `start_image_id` | string | No | First frame from a [Cover Art](/models/audio/suno/cover-art) result | | `end_image_id` | string | No | Last frame from a [Cover Art](/models/audio/suno/cover-art) result | Frames are optional. Give a start frame, an end frame, both, or neither. For each frame use either the URL or the ID form, not both. Prompts and frames go through content moderation; rejected requests fail with the moderation reasons in the task error. ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/video-gen", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d", "prompt": "slow dolly through a rain-soaked neon street", "quality": "basic", "duration": 10, "clip_start_time": 42, "start_image_url": "https://example.com/first-frame.jpg" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Result ```json theme={null} { "task_id": "abc123def456", "status": "completed", "videos": [ { "id": "73235b76-…", "url": "https://…/video-1.mp4", "thumbnail_url": "https://…/video-1.jpeg" }, { "id": "683befe3-…", "url": "https://…/video-2.mp4", "thumbnail_url": "https://…/video-2.jpeg" } ] } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Voice Creation Source: https://docs.unifically.com/models/audio/suno/voice Create custom voices with Suno AI. See supported inputs, parameters, pricing, response fields, and API examples. Create a custom voice from audio recordings. This is an async operation — returns a `task_id`, poll for the result. When the task completes, use the returned `persona_id` as `persona_id` in [Music Generation](/models/audio/suno/music) so tracks use your custom voice. ## Model ``` suno-ai/voice ``` ## Flow 1. Call [`GET /v1/resources/suno-ai/voice/verification-phrase`](/api-reference/resources#get-suno-voice-verification-phrase) to get a `phrase_id` and `phrase_text` 2. Record two audio files: a voice sample and the user reading the verification phrase 3. Host both as publicly accessible URLs 4. Call this endpoint with both URLs and the `phrase_id` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `voice_audio_url` | string | Yes | — | URL to voice recording | | `verification_audio_url` | string | Yes | — | URL to verification phrase recording | | `phrase_id` | string | Yes | — | Phrase ID from verification-phrase endpoint | | `name` | string | Yes | — | Voice name | | `description` | string | No | `""` | Voice description | | `styles` | string | No | `""` | Genre tags (e.g. `"funk edm"`) | | `singer_skill_level` | string | No | `"Beginner"` | `Beginner`, `Intermediate`, `Advanced`, `Professional` | | `vocal_start_s` | float | No | `0` | Vocal start time in voice audio | | `vocal_end_s` | float | No | auto | Vocal end time in voice audio | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/voice", "input": { "voice_audio_url": "https://example.com/my-voice.wav", "verification_audio_url": "https://example.com/my-verification.wav", "phrase_id": "35989bb7-9fe5-4be2-b7d2-ef8124ae3e8b", "name": "My Voice", "description": "Warm male vocal", "styles": "funk edm", "singer_skill_level": "Intermediate" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Status Response (Completed) ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "...", "status": "completed", "persona_id": "44706829-...", "name": "My Voice", "image_url": "https://...", "styles": "funk edm" } } ``` ## Status Response (Failed — Verification Rejected) ```json theme={null} { "success": false, "data": { "message": "Voice verification rejected: didnt_say_verification_phrase", "status": "failed" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Exports Source: https://docs.unifically.com/models/audio/suno/wav Export Suno clips as WAV, MP3, or M4A audio, or render a music video. See supported inputs, parameters, pricing, response fields, and API examples. Turn a finished Suno clip into a downloadable file. All exports are free. Audio is decoded from Suno's streaming copy, which is Opus at roughly 150 kbps, so the WAV is that stream written as 48 kHz 16-bit PCM: convenient for DAWs and editors, but not a lossless master. ## Models | Model | Output | | - | - | | `suno-ai/wav` | 48 kHz 16-bit WAV decoded from the streaming copy | | `suno-ai/mp3` | MP3 or M4A audio, 192 kbps, from the streaming copy | | `suno-ai/video` | MP4 music video with the clip's artwork | ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `clip_id` | string | Yes | Clip ID to export | | `format` | string | No | `suno-ai/mp3` only: `mp3` (default) or `m4a` | ## Example - WAV ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/wav", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d" } }' ``` ## Example - M4A ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/mp3", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d", "format": "m4a" } }' ``` ## Example - Music Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "suno-ai/video", "input": { "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` ## Result When the task completes, the result carries the file URL: | Model | Result fields | | - | - | | `suno-ai/wav` | `wav_url`, `source` | | `suno-ai/mp3` | `audio_url`, `format` | | `suno-ai/video` | `video_url` | **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Qwen Image Source: https://docs.unifically.com/models/image/alibaba/qwen-image Base Qwen image model with text-to-image and editing support. See supported inputs, parameters, pricing, response fields, and API examples. Generate AI images using Qwen Image, the base model in the Qwen image family. Supports text-to-image and image editing via a specialized edit model under the hood. ## Model ``` alibaba/qwen-image ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image (max 800 chars) | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4` (default: `1:1`) | | `image_urls` | array | No | Input image URLs for editing. Omit for text-to-image | | `negative_prompt` | string | No | What to avoid in the image (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image", "input": { "prompt": "A serene Japanese garden with cherry blossoms", "aspect_ratio": "16:9" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image", "input": { "prompt": "Add snow falling in the scene", "image_urls": ["https://example.com/photo.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Qwen Image 2.0 Source: https://docs.unifically.com/models/image/alibaba/qwen-image-2.0 Balanced quality and speed image generation with editing support. See supported inputs, parameters, pricing, response fields, and API examples. Generate AI images using Qwen Image 2.0, a faster accelerated version of 2.0 Pro. Supports text-to-image and image editing via reference images with the same capabilities at a lower price. ## Model ``` alibaba/qwen-image-2.0 ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image (max 800 chars) | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4` (default: `1:1`) | | `image_urls` | array | No | Input image URLs for editing or multi-image fusion | | `negative_prompt` | string | No | What to avoid in the image (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-2.0", "input": { "prompt": "Watercolor painting of a cozy bookshop interior", "aspect_ratio": "1:1" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-2.0", "input": { "prompt": "Add a rainbow in the sky behind the mountains", "image_urls": ["https://example.com/landscape.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Qwen Image 2.0 Pro Source: https://docs.unifically.com/models/image/alibaba/qwen-image-2.0-pro Best quality image generation with text rendering and image editing. See supported inputs, parameters, pricing, response fields, and API examples. Generate the highest quality AI images using Qwen Image 2.0 Pro with best-in-class text rendering, semantic adherence, and realistic textures. Supports text-to-image and image editing via reference images. ## Model ``` alibaba/qwen-image-2.0-pro ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image (max 800 chars) | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4` (default: `1:1`) | | `image_urls` | array | No | Input image URLs for editing or multi-image fusion | | `negative_prompt` | string | No | What to avoid in the image (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-2.0-pro", "input": { "prompt": "A cinematic portrait of a fox in autumn forest, golden hour lighting", "aspect_ratio": "16:9" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-2.0-pro", "input": { "prompt": "Change the background to a beach at sunset", "image_urls": ["https://example.com/photo.jpg"], "aspect_ratio": "4:3" } }' ``` ## Example - Multi-Image Fusion ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-2.0-pro", "input": { "prompt": "The girl from Image 1 wears the dress from Image 2", "image_urls": ["https://example.com/girl.jpg", "https://example.com/dress.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Qwen Image 3.0 Source: https://docs.unifically.com/models/image/alibaba/qwen-image-3.0 Balanced image generation, text rendering, and editing with up to three references Generate high-quality images with Qwen Image 3.0. The standard model balances quality and speed for everyday creative work, including posters, interfaces, and text-heavy compositions. It supports text-to-image, image editing, and multi-image fusion with up to three reference images. ## Model ``` alibaba/qwen-image-3.0 ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description or editing instruction | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3` (default: `1:1`) | | `resolution` | string | No | `1K` or `2K` (default: `2K`) | | `image_urls` | array | No | 1-3 public image URLs for editing or multi-image fusion | | `negative_prompt` | string | No | Content to avoid in the generated image | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | Omit `image_urls` for text-to-image generation. Providing one to three images automatically enables image editing or multi-image fusion. ## Resolution `resolution` selects the output pixel tier while `aspect_ratio` controls its shape. Use `1K` for faster generation or `2K` for maximum detail. Qwen Image 3.0 has the same output-image price at both tiers, while input/reference images are billed separately. | Aspect ratio | 1K dimensions | 2K dimensions | | - | - | - | | `1:1` | 1024×1024 | 2048×2048 | | `16:9` | 1344×768 | 2688×1536 | | `9:16` | 768×1344 | 1536×2688 | | `4:3` | 1184×864 | 2368×1728 | | `3:4` | 864×1184 | 1728×2368 | | `3:2` | 1248×832 | 2496×1664 | | `2:3` | 832×1248 | 1664×2496 | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-3.0", "input": { "prompt": "A clean editorial infographic explaining how a solar panel works, precise labels and crisp typography", "aspect_ratio": "16:9", "resolution": "2K" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-3.0", "input": { "prompt": "Turn this product photo into a premium magazine advertisement with elegant studio lighting", "image_urls": ["https://example.com/product.png"], "aspect_ratio": "3:2" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Qwen Image 3.0 Pro Source: https://docs.unifically.com/models/image/alibaba/qwen-image-3.0-pro Professional image generation and editing for complex layouts and photorealistic detail Generate professional images with Qwen Image 3.0 Pro. It is optimized for complex layouts, accurate small-text rendering, photorealistic detail, and demanding commercial compositions. It supports text-to-image, image editing, and multi-image fusion with up to three reference images. ## Model ``` alibaba/qwen-image-3.0-pro ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description or editing instruction | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3` (default: `1:1`) | | `resolution` | string | No | `1K` or `2K` (default: `2K`) | | `image_urls` | array | No | 1-3 public image URLs for editing or multi-image fusion | | `negative_prompt` | string | No | Content to avoid in the generated image | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | Omit `image_urls` for text-to-image generation. Providing one to three images automatically enables image editing or multi-image fusion. ## Resolution `resolution` selects the output pixel tier while `aspect_ratio` controls its shape. Use `1K` for faster generation or `2K` for maximum detail. Qwen Image 3.0 Pro output pricing varies by tier, and each input/reference image is billed separately. | Aspect ratio | 1K dimensions | 2K dimensions | | - | - | - | | `1:1` | 1024×1024 | 2048×2048 | | `16:9` | 1344×768 | 2688×1536 | | `9:16` | 768×1344 | 1536×2688 | | `4:3` | 1184×864 | 2368×1728 | | `3:4` | 864×1184 | 1728×2368 | | `3:2` | 1248×832 | 2496×1664 | | `2:3` | 832×1248 | 1664×2496 | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-3.0-pro", "input": { "prompt": "A luxury skincare campaign photographed in a sunlit marble studio, fine product lettering, realistic glass and water droplets", "aspect_ratio": "4:3", "resolution": "2K", "negative_prompt": "blurry text, distorted packaging" } }' ``` ## Example - Multi-Image Fusion ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-3.0-pro", "input": { "prompt": "Create a polished fashion campaign featuring the person from Image 1 wearing the outfit from Image 2 in the location from Image 3", "image_urls": [ "https://example.com/person.jpg", "https://example.com/outfit.jpg", "https://example.com/location.jpg" ], "aspect_ratio": "2:3" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Qwen Image Max Source: https://docs.unifically.com/models/image/alibaba/qwen-image-max Highest realism image generation with fewest AI artifacts and image editing. See parameters, pricing, and API examples. Generate photorealistic AI images using Qwen Image Max. Produces the highest realism with the fewest AI artifacts. Supports text-to-image and image editing via a specialized edit model under the hood (industrial design, geometric reasoning, character consistency). ## Model ``` alibaba/qwen-image-max ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image (max 800 chars) | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4` (default: `1:1`) | | `image_urls` | array | No | Input image URLs for editing. Omit for text-to-image | | `negative_prompt` | string | No | What to avoid in the image (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-max", "input": { "prompt": "Photorealistic close-up of a bumblebee on a lavender flower", "aspect_ratio": "4:3" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-max", "input": { "prompt": "Change the dress to red", "image_urls": ["https://example.com/photo.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Qwen Image Plus Source: https://docs.unifically.com/models/image/alibaba/qwen-image-plus Diverse artistic styles with fast image generation and editing. See supported inputs, parameters, pricing, response fields, and API examples. Generate AI images in diverse artistic styles using Qwen Image Plus. Fast generation optimized for creative and stylistic variety. Supports text-to-image and image editing via a specialized edit model under the hood. ## Model ``` alibaba/qwen-image-plus ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image (max 800 chars) | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4` (default: `1:1`) | | `image_urls` | array | No | Input image URLs for editing. Omit for text-to-image | | `negative_prompt` | string | No | What to avoid in the image (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-plus", "input": { "prompt": "Art deco poster of a jazz musician playing saxophone", "aspect_ratio": "9:16" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/qwen-image-plus", "input": { "prompt": "Replace the background with a neon-lit cityscape", "image_urls": ["https://example.com/photo.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Wan 2.2 Flash Source: https://docs.unifically.com/models/image/alibaba/wan-2.2-flash-image Fast and affordable text-to-image generation. See supported inputs, parameters, pricing, response fields, and API examples. Generate AI images quickly using Wan 2.2 Flash Image. The fastest and cheapest Wan image model. Text-to-image only — does not support image editing. ## Model ``` alibaba/wan-2.2-flash-image ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image (max 500 chars) | | `aspect_ratio` | string | No | `1:1`, `3:4`, `4:3`, `9:16`, `16:9` (default: `1:1`) | | `negative_prompt` | string | No | What to avoid in the image | | `seed` | integer | No | Seed for reproducibility | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.2-flash-image", "input": { "prompt": "A minimalist logo design for a coffee shop" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Wan 2.2 Source: https://docs.unifically.com/models/image/alibaba/wan-2.2-image Text-to-image generation with Wan 2.2. See supported inputs, parameters, pricing, response fields, and API examples. Generate AI images using Wan 2.2 Image. Text-to-image only — does not support image editing. ## Model ``` alibaba/wan-2.2-image ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image (max 500 chars) | | `aspect_ratio` | string | No | `1:1`, `3:4`, `4:3`, `9:16`, `16:9` (default: `1:1`) | | `negative_prompt` | string | No | What to avoid in the image | | `seed` | integer | No | Seed for reproducibility | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.2-image", "input": { "prompt": "Aurora borealis over a snowy chapel, soft light", "aspect_ratio": "16:9" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Wan 2.5 Source: https://docs.unifically.com/models/image/alibaba/wan-2.5-image Image generation with text-to-image and editing support. See supported inputs, parameters, pricing, response fields, and API examples. Generate AI images using Wan 2.5 Image. Automatically selects T2I or editing mode based on whether `image_urls` is provided. Supports 1–3 reference images for editing. ## Model ``` alibaba/wan-2.5-image ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image (max 2000 chars) | | `aspect_ratio` | string | No | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `9:16`, `16:9` (default: `1:1`) | | `image_urls` | array | No | Omit for T2I. 1–3 images for editing | | `negative_prompt` | string | No | What to avoid in the image (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.5-image", "input": { "prompt": "A flower shop with a beautiful wooden door" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.5-image", "input": { "prompt": "Change the floral dress to a vintage lace dress", "image_urls": ["https://example.com/photo.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Wan 2.6 Source: https://docs.unifically.com/models/image/alibaba/wan-2.6-image Image generation with style transfer and editing support. See supported inputs, parameters, pricing, response fields, and API examples. Generate AI images using Wan 2.6 Image. Automatically selects T2I or editing mode based on whether `image_urls` is provided. Supports style transfer with 1–4 reference images. ## Model ``` alibaba/wan-2.6-image ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image (max 2000 chars) | | `aspect_ratio` | string | No | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `9:16`, `16:9` (default: `1:1`) | | `image_urls` | array | No | Omit for T2I. 1–4 images for editing/style transfer | | `negative_prompt` | string | No | What to avoid in the image (max 500 chars) | | `prompt_extend` | boolean | No | Smart prompt rewriting (default: `true`) | | `seed` | integer | No | Seed for reproducibility | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-image", "input": { "prompt": "A cozy reading nook with warm lighting" } }' ``` ## Example - Style Transfer ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-image", "input": { "prompt": "Generate a tomato stir-fry in the style of this image", "image_urls": ["https://example.com/style.png"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Wan 2.7 Source: https://docs.unifically.com/models/image/alibaba/wan-2.7-image Fast variant of Wan 2.7 Pro with text-to-image and editing. See supported inputs, parameters, pricing, response fields, and API examples. Generate AI images using Wan 2.7 Image, a faster variant of Wan 2.7 Pro. Same capabilities with max 2K resolution. Supports text-to-image and editing. ## Model ``` alibaba/wan-2.7-image ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image (max 5000 chars) | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3` (default: `1:1`). Editing preserves input ratio | | `image_urls` | array | No | Omit for T2I. Up to 9 images for editing | | `thinking_mode` | boolean | No | Better quality, slower (default: `true`). T2I only | | `seed` | integer | No | Seed for reproducibility | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-image", "input": { "prompt": "A cozy cabin in the mountains surrounded by pine trees", "aspect_ratio": "16:9" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-image", "input": { "prompt": "Add a sunset sky behind the mountains", "image_urls": ["https://example.com/landscape.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Wan 2.7 Pro Source: https://docs.unifically.com/models/image/alibaba/wan-2.7-pro-image Highest quality image generation with thinking mode and up to 4K. See supported inputs, parameters, pricing, response fields, and API examples. Generate the highest quality AI images using Wan 2.7 Pro Image. Features thinking mode for text-to-image, supports editing with up to 9 reference images, and up to 4K resolution. ## Model ``` alibaba/wan-2.7-pro-image ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image (max 5000 chars) | | `aspect_ratio` | string | No | `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3` (default: `1:1`). Editing preserves input ratio | | `image_urls` | array | No | Omit for T2I. Up to 9 images for editing | | `thinking_mode` | boolean | No | Better quality, slower (default: `true`). T2I only | | `seed` | integer | No | Seed for reproducibility | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-pro-image", "input": { "prompt": "A flower shop with exquisite windows and flowers on display", "aspect_ratio": "16:9" } }' ``` ## Example - Image Editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-pro-image", "input": { "prompt": "Change the dress to a red evening gown", "image_urls": ["https://example.com/photo.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Z-Image Turbo Source: https://docs.unifically.com/models/image/alibaba/z-image-turbo Lightweight fast text-to-image with text rendering support. See supported inputs, parameters, pricing, response fields, and API examples. Generate AI images quickly using Z-Image Turbo. Lightweight and fast text-to-image model with Chinese and English text rendering. Does not support image editing. ## Model ``` alibaba/z-image-turbo ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image (max 800 chars) | | `aspect_ratio` | string | No | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `9:16`, `16:9` (default: `1:1`) | | `prompt_extend` | boolean | No | Prompt rewriting (default: `false`). Enabling doubles cost | | `seed` | integer | No | Seed for reproducibility | ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/z-image-turbo", "input": { "prompt": "Stylish young woman in front of a cartoon mural", "aspect_ratio": "3:4" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # SeeDream 4.0 Source: https://docs.unifically.com/models/image/bytedance/seedream-4.0 Image generation and editing with up to 14 reference images and 1K/2K/4K resolution. See parameters, pricing, and API examples. Generate images using ByteDance SeeDream 4.0. Supports text-to-image and image editing with up to 14 reference images and resolution tiers up to 4K. ## Model ``` bytedance/seedream-4.0 ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | **Yes** | — | Text prompt describing the desired image (max 6000 chars). Recommended: ≤ 300 Chinese characters or ≤ 600 English words | | `image_urls` | string\[] | No | `null` | Reference image URLs for image editing (max 14). Omit for text-to-image. Max 10 MB each; max 60,000,000 pixels; min side > 14 px; aspect ratio 1/16–16. Formats: jpeg, jpg, png, webp, bmp, tiff, gif, heic, heif | | `resolution` | string | No | `"4K"` | `1K`, `2K`, `4K` (case-insensitive) | | `output_format` | string | No | `"jpeg"` | `jpeg`, `jpg` | | `max_sequential_images` | integer | No | `1` | Omit or set to `1` for a single image. Set to 2–15 for a sequential set (billed per image). When sequential: reference image count + `max_sequential_images` must not exceed 15 | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-4.0", "input": { "prompt": "A futuristic cityscape at night with neon lights", "resolution": "4K" } }' ``` ## Example - Image-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-4.0", "input": { "prompt": "Add dramatic lighting and cinematic atmosphere", "image_urls": ["https://example.com/reference.jpg"], "resolution": "2K" } }' ``` `max_sequential_images` is the maximum number of sequential images the model may generate—not a fixed batch size. The model chooses how many to produce (from 1 up to that limit). Omit the parameter or set `max_sequential_images` to `1` for a single image. Sequential images are billed per image. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "9d489f02-316f-4386-8188-dc19540d56f5", "status": "completed", "output": { "image_urls": [ "https://files.unifically.com/image/92116e95-8dd4-4cbb-b53f-ee643e1045d8.jpg" ] } } } ``` The number of URLs in `image_urls` reflects how many sequential images the model generated (up to your `max_sequential_images` ceiling). **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # SeeDream 4.5 Source: https://docs.unifically.com/models/image/bytedance/seedream-4.5 Image generation and editing with up to 14 reference images and 2K/4K resolution. See parameters, pricing, and API examples. Generate images using ByteDance SeeDream 4.5. Supports text-to-image and image editing with up to 14 reference images and resolution tiers up to 4K. ## Model ``` bytedance/seedream-4.5 ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | **Yes** | — | Text prompt describing the desired image (max 6000 chars). Recommended: ≤ 300 Chinese characters or ≤ 600 English words | | `image_urls` | string\[] | No | `null` | Reference image URLs for image editing (max 14). Omit for text-to-image. Max 10 MB each; max 60,000,000 pixels; min side > 14 px; aspect ratio 1/16–16. Formats: jpeg, jpg, png, webp, bmp, tiff, gif, heic, heif | | `resolution` | string | No | `"4K"` | `2K`, `4K` (case-insensitive) | | `output_format` | string | No | `"jpeg"` | `jpeg`, `jpg` | | `max_sequential_images` | integer | No | `1` | Omit or set to `1` for a single image. Set to 2–15 for a sequential set (billed per image). When sequential: reference image count + `max_sequential_images` must not exceed 15 | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-4.5", "input": { "prompt": "A magical forest with glowing mushrooms and fireflies", "resolution": "4K" } }' ``` ## Example - Image-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-4.5", "input": { "prompt": "Transform into a fantasy art style with vibrant colors", "image_urls": ["https://example.com/reference.jpg"], "resolution": "2K" } }' ``` `max_sequential_images` is the maximum number of sequential images the model may generate—not a fixed batch size. The model chooses how many to produce (from 1 up to that limit). Omit the parameter or set `max_sequential_images` to `1` for a single image. Sequential images are billed per image. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "9d489f02-316f-4386-8188-dc19540d56f5", "status": "completed", "output": { "image_urls": [ "https://files.unifically.com/image/92116e95-8dd4-4cbb-b53f-ee643e1045d8.jpg" ] } } } ``` The number of URLs in `image_urls` reflects how many sequential images the model generated (up to your `max_sequential_images` ceiling). **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # SeeDream 5.0 Lite Source: https://docs.unifically.com/models/image/bytedance/seedream-5.0-lite Lightweight image generation and editing with up to 14 reference images and 2K/3K resolution. See parameters, pricing, and API examples. Generate images using ByteDance SeeDream 5.0 Lite. Supports text-to-image and image editing with up to 14 reference images and resolution tiers up to 3K. ## Model ``` bytedance/seedream-5.0-lite ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | **Yes** | — | Text prompt describing the desired image (max 6000 chars). Recommended: ≤ 300 Chinese characters or ≤ 600 English words | | `image_urls` | string\[] | No | `null` | Reference image URLs for image editing (max 14). Omit for text-to-image. Max 10 MB each; max 60,000,000 pixels; min side > 14 px; aspect ratio 1/16–16. Formats: jpeg, jpg, png, webp, bmp, tiff, gif, heic, heif | | `resolution` | string | No | `"3K"` | `2K`, `3K` (case-insensitive) | | `output_format` | string | No | `"png"` | `jpeg`, `jpg`, `png` | | `max_sequential_images` | integer | No | `1` | Omit or set to `1` for a single image. Set to 2–15 for a sequential set (billed per image). When sequential: reference image count + `max_sequential_images` must not exceed 15 | | `web_search` | boolean | No | `true` | When enabled, the model may search the web for up-to-date facts when the prompt needs them. Disable for faster, fully offline generation | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-5.0-lite", "input": { "prompt": "A cyberpunk city at sunset, neon lights reflecting on wet streets", "resolution": "3K" } }' ``` ## Example - Image-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-5.0-lite", "input": { "prompt": "Place the animal inside the vintage car", "image_urls": [ "https://example.com/animal.jpg", "https://example.com/car.jpg" ], "resolution": "2K" } }' ``` `max_sequential_images` is the maximum number of sequential images the model may generate—not a fixed batch size. The model chooses how many to produce (from 1 up to that limit). Omit the parameter or set `max_sequential_images` to `1` for a single image. Sequential images are billed per image. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "9d489f02-316f-4386-8188-dc19540d56f5", "status": "completed", "output": { "image_urls": [ "https://files.unifically.com/image/92116e95-8dd4-4cbb-b53f-ee643e1045d8.jpg" ] } } } ``` The number of URLs in `image_urls` reflects how many sequential images the model generated (up to your `max_sequential_images` ceiling). **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # SeeDream 5.0 Pro Source: https://docs.unifically.com/models/image/bytedance/seedream-5.0-pro Flagship image generation and editing with up to 10 reference images and 2K resolution. See parameters, pricing, and API examples. Generate images using ByteDance SeeDream 5.0 Pro. Supports text-to-image and image editing with up to 10 reference images, 8 aspect ratios, and resolution tiers up to 2K. ## Model ``` bytedance/seedream-5.0-pro ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | **Yes** | — | Text prompt describing the desired image (max 6000 chars). Recommended: ≤ 300 Chinese characters or ≤ 600 English words | | `aspect_ratio` | string | No | `"1:1"` | `1:1`, `4:3`, `3:4`, `16:9`, `9:16`, `3:2`, `2:3`, `21:9`. Combined with `resolution` to pick the output pixel size (e.g. 2K + 16:9 → 2624x1472) | | `image_urls` | string\[] | No | `null` | Reference image URLs for image editing (max 10). Omit for text-to-image. Max 10 MB each; max 36,000,000 pixels; min side > 14 px; aspect ratio 1/16–16. Formats: jpeg, jpg, png, webp, bmp, tiff, gif, heic, heif | | `resolution` | string | No | `"2K"` | `1K`, `1.5K`, `2K` (case-insensitive) | | `output_format` | string | No | `"png"` | `jpeg`, `jpg`, `png` | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-5.0-pro", "input": { "prompt": "A cyberpunk city at sunset, neon lights reflecting on wet streets", "aspect_ratio": "16:9", "resolution": "2K" } }' ``` ## Example - Image-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedream-5.0-pro", "input": { "prompt": "Place the animal inside the vintage car", "image_urls": [ "https://example.com/animal.jpg", "https://example.com/car.jpg" ], "resolution": "2K" } }' ``` SeeDream 5.0 Pro generates exactly one image per request — it has no sequential mode. The `max_sequential_images` and `web_search` parameters available on SeeDream 5.0 Lite are rejected on this model. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "9d489f02-316f-4386-8188-dc19540d56f5", "status": "completed", "output": { "image_urls": [ "https://files.unifically.com/image/92116e95-8dd4-4cbb-b53f-ee643e1045d8.png" ] } } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Flux.2 Flex Source: https://docs.unifically.com/models/image/flux/flux.2-flex Flexible image generation with advanced controls. See supported inputs, parameters, pricing, response fields, and API examples. Generate images using Flux.2 Flex with advanced controls for guidance, steps, and reproducibility. ## Model ``` black-forest-labs/flux.2-flex ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | - | Text description of the image | | `aspect_ratio` | string | No | `"16:9"` | `"21:9"`, `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, `"9:16"`, `"9:21"` | | `resolution` | string | No | `"1mp"` | `"0.6mp"`, `"1mp"`, `"2mp"`, `"4mp"` | | `image_urls` | string\[] | No | `null` | Reference image URLs | | `guidance` | float | No | - | Guidance scale (e.g. `1.5`) | | `steps` | integer | No | - | Number of generation steps | | `seed` | integer | No | random | Seed for reproducibility | | `prompt_upsampling` | boolean | No | `true` | Auto-enhance prompt for more creative output | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "black-forest-labs/flux.2-flex", "input": { "prompt": "A cyberpunk city at night with neon reflections", "aspect_ratio": "21:9", "resolution": "2mp", "guidance": 1.5, "steps": 30, "seed": 124242, "prompt_upsampling": false } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Flux.2 Klein 4B Source: https://docs.unifically.com/models/image/flux/flux.2-klein-4b Fastest image generation with Flux.2 Klein 4B. See supported inputs, parameters, pricing, response fields, and API examples. Generate images using the smallest and fastest Flux.2 Klein 4B model. ## Model ``` black-forest-labs/flux.2-klein-4b ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | - | Text description of the image | | `aspect_ratio` | string | No | `"16:9"` | `"21:9"`, `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, `"9:16"`, `"9:21"` | | `resolution` | string | No | `"1mp"` | `"0.6mp"`, `"1mp"`, `"2mp"`, `"4mp"` | | `image_urls` | string\[] | No | `null` | Reference image URLs | | `seed` | integer | No | random | Seed for reproducibility | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | Klein models do not support `guidance`, `steps`, or `prompt_upsampling`. ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "black-forest-labs/flux.2-klein-4b", "input": { "prompt": "A simple icon of a coffee cup", "aspect_ratio": "1:1" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Flux.2 Klein 9B Source: https://docs.unifically.com/models/image/flux/flux.2-klein-9b Lightweight image generation with Flux.2 Klein 9B. See supported inputs, parameters, pricing, response fields, and API examples. Generate images using the lightweight Flux.2 Klein 9B model for fast results. ## Model ``` black-forest-labs/flux.2-klein-9b ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | - | Text description of the image | | `aspect_ratio` | string | No | `"16:9"` | `"21:9"`, `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, `"9:16"`, `"9:21"` | | `resolution` | string | No | `"1mp"` | `"0.6mp"`, `"1mp"`, `"2mp"`, `"4mp"` | | `image_urls` | string\[] | No | `null` | Reference image URLs | | `seed` | integer | No | random | Seed for reproducibility | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | Klein models do not support `guidance`, `steps`, or `prompt_upsampling`. ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "black-forest-labs/flux.2-klein-9b", "input": { "prompt": "A minimalist line drawing of a mountain landscape", "aspect_ratio": "16:9", "resolution": "1mp", "seed": 42 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Flux.2 Max Source: https://docs.unifically.com/models/image/flux/flux.2-max Maximum quality image generation. See supported inputs, parameters, pricing, response fields, and API examples. Generate the highest quality images using Flux.2 Max. ## Model ``` black-forest-labs/flux.2-max ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | - | Text description of the image | | `aspect_ratio` | string | No | `"16:9"` | `"21:9"`, `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, `"9:16"`, `"9:21"` | | `resolution` | string | No | `"1mp"` | `"0.6mp"`, `"1mp"`, `"2mp"`, `"4mp"` | | `image_urls` | string\[] | No | `null` | Reference image URLs | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "black-forest-labs/flux.2-max", "input": { "prompt": "A beautiful sunset over mountains", "aspect_ratio": "21:9", "resolution": "2mp" } }' ``` ## With Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "black-forest-labs/flux.2-max", "input": { "prompt": "Make him dance", "image_urls": ["https://example.com/photo.jpg"], "aspect_ratio": "9:16", "resolution": "2mp" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Flux.2 Pro Source: https://docs.unifically.com/models/image/flux/flux.2-pro High-quality image generation with Flux.2 Pro. See supported inputs, parameters, pricing, response fields, and API examples. Generate high-quality images using Flux.2 Pro with balanced quality and speed. ## Model ``` black-forest-labs/flux.2-pro ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | - | Text description of the image | | `aspect_ratio` | string | No | `"16:9"` | `"21:9"`, `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, `"9:16"`, `"9:21"` | | `resolution` | string | No | `"1mp"` | `"0.6mp"`, `"1mp"`, `"2mp"`, `"4mp"` | | `image_urls` | string\[] | No | `null` | Reference image URLs | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "black-forest-labs/flux.2-pro", "input": { "prompt": "A photorealistic portrait of a woman in golden hour light", "aspect_ratio": "9:16", "resolution": "2mp" } }' ``` ## With Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "black-forest-labs/flux.2-pro", "input": { "prompt": "A portrait in this style", "image_urls": ["https://example.com/ref1.jpg", "https://example.com/ref2.jpg"], "resolution": "2mp" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Nano Banana Source: https://docs.unifically.com/models/image/google/nano-banana Fast image generation with Google Gemini 2.5 Flash. See supported inputs, parameters, pricing, response fields, and API examples. Generate images quickly using Nano Banana powered by Gemini 2.5 Flash. ## Model ``` google/nano-banana ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image | | `aspect_ratio` | string | No | `default`, `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9`. Default: `1:1` | | `image_urls` | array | No | Reference images | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/nano-banana", "input": { "prompt": "A futuristic city skyline at sunset with flying cars", "aspect_ratio": "16:9" } }' ``` ## With Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/nano-banana", "input": { "prompt": "Transform this into anime style", "aspect_ratio": "1:1", "image_urls": ["https://example.com/reference.jpg"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Nano Banana 2 Source: https://docs.unifically.com/models/image/google/nano-banana-2 Next-generation image generation with Google Gemini. See supported inputs, parameters, pricing, response fields, and API examples. Generate high-quality images using Nano Banana 2, the latest generation of the Nano Banana Pro model. ## Model ``` google/nano-banana-2 ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image | | `aspect_ratio` | string | No | `1:1`, `1:4`, `1:8`, `2:3`, `3:2`, `3:4`, `4:1`, `4:3`, `4:5`, `5:4`, `8:1`, `9:16`, `16:9`, `21:9`, `match_input_image`. Default: `1:1` | | `image_urls` | array | No | Reference image URLs | | `resolution` | string | No | `1K`, `2K`, `4K`. Default: `1K` | | `seed` | integer | No | Seed for reproducible generation | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/nano-banana-2", "input": { "prompt": "A photorealistic portrait in golden hour lighting", "aspect_ratio": "3:4", "resolution": "4k" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Nano Banana 2 Lite Source: https://docs.unifically.com/models/image/google/nano-banana-2-lite Lightweight image generation with wide aspect ratio support and 1K output. See parameters, pricing, and API examples. Nano Banana 2 Lite is the lightweight variant in the Nano Banana family. Compared to [Nano Banana 2](/models/image/google/nano-banana-2) and [Nano Banana Pro](/models/image/google/nano-banana-pro), it supports a wider set of aspect ratios (including `auto` and ultra-wide/tall formats) but is limited to **1K** output resolution. ## Model ``` google/nano-banana-2-lite ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image | | `aspect_ratio` | string | No | See [supported aspect ratios](#supported-aspect-ratios) below. Default: `auto` | | `image_urls` | array | No | Reference image URLs | | `resolution` | string | No | `1K` only | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Supported aspect ratios | Aspect ratio | Notes | | - | - | | `auto` | **Default.** Lets the model pick an appropriate ratio for the prompt | | `1:1` | Square | | `9:16` | Portrait (stories / phone) | | `16:9` | Landscape (widescreen) | | `3:4` | Portrait | | `4:3` | Landscape | | `3:2` | Landscape | | `2:3` | Portrait | | `5:4` | Landscape | | `4:5` | Portrait | | `21:9` | Ultra-wide | | `4:1` | Very wide banner | | `1:4` | Very tall banner | | `8:1` | Extreme wide | | `1:8` | Extreme tall | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/nano-banana-2-lite", "input": { "prompt": "A photorealistic portrait in golden hour lighting", "aspect_ratio": "auto" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Nano Banana Pro Source: https://docs.unifically.com/models/image/google/nano-banana-pro Advanced image generation with Google Gemini 3. See supported inputs, parameters, pricing, response fields, and API examples. Generate high-quality images using Nano Banana Pro powered by Gemini 3. ## Model ``` google/nano-banana-pro ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image | | `aspect_ratio` | string | No | `auto`, `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9`. Default: `1:1` | | `image_urls` | array | No | Reference image URLs | | `resolution` | string | No | `1K`, `2K`, `4K`. Default: `1K` | | `seed` | integer | No | Seed for reproducible generation | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/nano-banana-pro", "input": { "prompt": "A photorealistic portrait in golden hour lighting", "aspect_ratio": "3:4", "resolution": "4k" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Kling 2.1 Image Source: https://docs.unifically.com/models/image/kling/kling-2.1-image Generate images with 4 reference modes: restyle, portrait, character, and elements. See parameters, pricing, and API examples. Generate high-quality AI images using Kling 2.1 Image with 4 reference modes for flexible image generation. ## Model ``` kuaishou/kling-2.1-image ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | - | Text description of the image to generate | | `reference_mode` | string | No | `"restyle"` | Reference strategy: `"restyle"`, `"portrait"`, `"character"`, or `"elements"` | | `image_url` | string | Conditional | - | Source image URL. Required for restyle, portrait, and character modes | | `aspect_ratio` | string | No | `"1:1"` | `"21:9"`, `"16:9"`, `"3:2"`, `"4:3"`, `"1:1"`, `"3:4"`, `"2:3"`, `"9:16"` | | `fidelity` | float | No | `0.5` | How closely to follow the reference image (0.0–1.0) | | `human_fidelity` | float | No | `0.65` | Face similarity preservation strength (0.0–1.0, portrait mode only) | | `elements` | string\[] | Conditional | - | Element image/video URLs (2–4 required for elements mode) | | `scene_url` | string | No | - | Background scene image URL (elements mode only) | | `style_url` | string | No | - | Style reference image URL (elements mode only) | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Mode Requirements * **`restyle`** — requires `image_url`. Uses `fidelity` to control reference adherence * **`portrait`** — requires `image_url`. Uses `fidelity` and `human_fidelity` for face control * **`character`** — requires `image_url`. Uses `fidelity` only * **`elements`** — requires 2–4 `elements` URLs. Optionally accepts `scene_url` and `style_url` ## Example - Restyle Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.1-image", "input": { "prompt": "Transform into an oil painting with vivid colors", "reference_mode": "restyle", "image_url": "https://example.com/photo.jpg", "fidelity": 0.7, "aspect_ratio": "16:9" } }' ``` ## Example - Portrait Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.1-image", "input": { "prompt": "Professional headshot in a modern office setting", "reference_mode": "portrait", "image_url": "https://example.com/face.jpg", "fidelity": 0.5, "human_fidelity": 0.8, "aspect_ratio": "1:1" } }' ``` ## Example - Elements Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.1-image", "input": { "prompt": "Two characters standing in a futuristic city", "reference_mode": "elements", "elements": [ "https://example.com/character1.jpg", "https://example.com/character2.jpg" ], "scene_url": "https://example.com/city-bg.jpg", "style_url": "https://example.com/cyberpunk-style.jpg", "aspect_ratio": "16:9" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Kling 3.0 Image Source: https://docs.unifically.com/models/image/kling/kling-3.0-image Generate high-quality images with batch generation support. See supported inputs, parameters, pricing, response fields, and API examples. Generate high-quality AI images using Kling 3.0 Image with up to 10 reference images. ## Model ``` kuaishou/kling-3.0-image ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | - | Text description. Use `@Image1`, `@Image2` to reference inputs | | `resolution` | string | No | `"2k"` | `"1k"` or `"2k"` | | `aspect_ratio` | string | No | `"auto"` | `"auto"`, `"1:1"`, `"16:9"`, `"9:16"`, `"4:3"`, `"3:4"`, `"3:2"`, `"2:3"`, `"21:9"` | | `image_urls` | string\[] | No | - | Reference image URLs (max 10). Use `@Image1`, `@Image2` in prompt | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-image", "input": { "prompt": "A serene mountain landscape at sunset, photorealistic", "aspect_ratio": "16:9", "resolution": "2k" } }' ``` ## Example - With Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-image", "input": { "prompt": "Transform @Image1 into a watercolor painting style", "image_urls": ["https://example.com/reference.jpg"], "aspect_ratio": "1:1", "resolution": "2k" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Kling Omni Image Source: https://docs.unifically.com/models/image/kling/kling-omni-image Generate high-quality images with reference image support. See supported inputs, parameters, pricing, response fields, and API examples. Generate high-quality AI images using Kling Omni Image models with support for up to 10 reference images. ## Models | Model | Resolution | Aspect Ratio | | - | - | - | | `kuaishou/kling-o1-image` | `1k`, `2k` | No `4k` | | `kuaishou/kling-3.0-omni-image` | `1k`, `2k`, `4k` | Adds `auto` (default) | *** ## Parameters ### O1 Image (`kuaishou/kling-o1-image`) | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | - | Text description. Use `@Image1`, `@Image2` to reference inputs | | `resolution` | string | No | `"1k"` | `"1k"`, `"2k"` | | `aspect_ratio` | string | No | `"auto"` | `"auto"`, `"1:1"`, `"16:9"`, `"9:16"`, `"4:3"`, `"3:4"`, `"3:2"`, `"2:3"`, `"21:9"` | | `image_urls` | string\[] | No | - | Reference image URLs (max 10). Use `@Image1`, `@Image2` in prompt | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ### 3.0 Omni Image (`kuaishou/kling-3.0-omni-image`) | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | - | Text description. Use `@Image1`, `@Image2` to reference inputs | | `resolution` | string | No | `"1k"` | `"1k"`, `"2k"`, `"4k"` | | `aspect_ratio` | string | No | `"auto"` | `"auto"`, `"1:1"`, `"16:9"`, `"9:16"`, `"4:3"`, `"3:4"`, `"3:2"`, `"2:3"`, `"21:9"` | | `image_urls` | string\[] | No | - | Reference image URLs (max 10). Use `@Image1`, `@Image2` in prompt | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Text-to-Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-o1-image", "input": { "prompt": "A serene mountain landscape at sunset, photorealistic", "aspect_ratio": "16:9", "resolution": "2k" } }' ``` ## Example - With Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-omni-image", "input": { "prompt": "Transform @Image1 into a watercolor painting style", "image_urls": ["https://example.com/reference.jpg"], "aspect_ratio": "auto", "resolution": "2k" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # GPT Image 2 Source: https://docs.unifically.com/models/image/openai/gpt-image-2 Generate images with OpenAI's GPT Image 2 model. See supported inputs, parameters, pricing, response fields, and API examples. Generate high-quality images using GPT Image 2 with improved capabilities. ## Model ``` openai/gpt-image-2 ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image to generate | | `aspect_ratio` | string | No | `1:1`, `3:2`, `2:3`, `16:9`. Default: `1:1` | | `image_urls` | array | No | Reference image URLs for image editing mode | | `resolution` | string | No | `1K`, `2K`, `4K`. Default: `1K` | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-image-2", "input": { "prompt": "A serene mountain landscape", "aspect_ratio": "16:9", "resolution": "2K" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # GPT Image 2.5 Source: https://docs.unifically.com/models/image/openai/gpt-image-2.5 Generate and edit images with OpenAI's GPT Image 2.5 Flare and Sunburst. See supported inputs, parameters, pricing, response fields, and API examples. Generate and edit images with GPT Image 2.5, OpenAI's image model in two variants. **Flare** is the fast tier for everyday generation and editing. **Sunburst** is the precision tier — finer detail and closer adherence to your reference images, at longer generation times. Both take the same parameters, so switching is a model id change. ## Models ``` openai/gpt-image-2.5-flare openai/gpt-image-2.5-sunburst ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the image to generate. Max 5,000 characters | | `aspect_ratio` | string | No | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `9:21`, `21:9`, `1:2`, `2:1`, `1:3`, `3:1`. Default: `1:1` | | `resolution` | string | No | `1K`, `2K`, `4K`. Default: `1K` | | `image_urls` | array | No | Reference image URLs for image editing mode. Up to 16 | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Pricing Billed per image by output resolution, plus each reference image. The aspect ratio does not change the price. | Resolution | Flare | Sunburst | | - | - | - | | 1K | \$0.03 | \$0.04 | | 2K | \$0.05 | \$0.07 | | 4K | \$0.08 | \$0.11 | Each reference image adds **\$0.015**. ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-image-2.5-flare", "input": { "prompt": "A serene mountain landscape", "aspect_ratio": "16:9", "resolution": "2K" } }' ``` ## Editing With Reference Images Pass `image_urls` to edit an existing image, combine subjects, or carry a style across generations. Sunburst holds reference detail more closely. ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-image-2.5-sunburst", "input": { "prompt": "Place the product on a marble kitchen counter in morning light", "aspect_ratio": "4:5", "resolution": "2K", "image_urls": ["https://example.com/product.png"] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Topaz Image Upscale Source: https://docs.unifically.com/models/image/topaz-labs/image-upscale AI-powered image upscaling with selectable presets, face recovery, and per-preset tuning. See parameters, pricing, and API examples. Upscale and enhance images using Topaz Labs AI models. Pick a preset for your source type, set an output size via `upscale_factor`, and optionally fine-tune the result through `extra_settings`. ## Model ``` topaz-labs/image-upscale ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `image_url` | string | Yes | - | Publicly-accessible URL of the source image | | `preset` | string | No | `standard-v2` | Topaz model variant. One of `standard-v2`, `low-resolution-v2`, `cgi`, `high-fidelity-v2`, `text-refine` | | `upscale_factor` | string \| number | No | - | Output-dimension multiplier. Accepts a number (e.g. `2`, `2.5`, `4`) or a string suffix (e.g. `"2x"`, `"4x"`). The source image is probed automatically to derive output dimensions | | `crop_to_fill` | boolean | No | `false` | Crop to fill output dimensions instead of letterboxing | | `face_enhancement` | boolean | No | `false` | Enable face recovery. When `true`, set `face_enhancement_strength` and `face_enhancement_creativity` inside `extra_settings` | | `output_format` | string | No | - | Output image format. One of `jpeg`, `jpg`, `png`, `tiff`, `tif` | | `extra_settings` | object | No | - | Model-specific tuning. See [Extra settings](#extra-settings) | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | Maximum output is **1024 MP** (megapixels). Requests whose computed output exceeds this are rejected pre-flight. ## Presets | Preset | Best for | | - | - | | `standard-v2` (default) | General-purpose upscaling for most photos and graphics. Balances detail, sharpness, and noise reduction | | `low-resolution-v2` | Small, heavily compressed, or degraded inputs. Recovers usable detail from difficult sources | | `cgi` | Illustrations, digital art, renders, and stylised graphics. Preserves clean edges and flat colour regions. Adds `deblur_strength` | | `high-fidelity-v2` | Already high-resolution sources. Enlarges while preserving fine detail and natural texture without over-sharpening | | `text-refine` | Images with typography, logos, UI elements, and geometric shapes. Preserves edge clarity and shape accuracy. Adds `denoise_strength`, `deblur_strength`, `decompression_strength`, `opacity` | ## Extra settings Pass any of these inside `extra_settings`. Anything omitted is auto-configured by Topaz. ### Common (all presets) | Key | Type | Range | Description | | - | - | - | - | | `face_enhancement_strength` | float | 0–1 | Required when `face_enhancement: true`. Strength of face recovery | | `face_enhancement_creativity` | float | 0–1 | Required when `face_enhancement: true`. `0` = realistic, `1` = creative | | `subject_detection` | string | `foreground`, `background`, `all` | Where enhancements are applied | | `sharpen` | float | 0–1 | Slightly sharpens the output | | `denoise` | float | 0–1 | Reduces noise | | `fix_compression` | float | 0–1 | Reduces JPEG compression artifacts | | `strength` | float | 0.01–1 | Overall model strength. Too high can look unrealistic | ### CGI-only | Key | Type | Range | Default | Description | | - | - | - | - | - | | `deblur_strength` | float | 0–1 | 0.5 | Deblur pass strength | ### Text Refine-only | Key | Type | Range | Default | Description | | - | - | - | - | - | | `denoise_strength` | float | 0–1 | 0.5 | Noise reduction strength | | `deblur_strength` | float | 0–1 | 0.5 | Deblur pass strength | | `decompression_strength` | float | 0–1 | 0.5 | Compression-artifact recovery strength | | `opacity` | float | 0–1 | 1.0 | Blend amount between source and processed output | ## Example - Basic upscale ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/image-upscale", "input": { "image_url": "https://example.com/photo.jpg", "upscale_factor": "2x" } }' ``` ## Example - Recovering a low-resolution source ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/image-upscale", "input": { "image_url": "https://example.com/old-photo.jpg", "preset": "low-resolution-v2", "upscale_factor": "4x", "extra_settings": { "fix_compression": 0.6, "denoise": 0.4 } } }' ``` ## Example - CGI / illustration ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/image-upscale", "input": { "image_url": "https://example.com/illustration.png", "preset": "cgi", "upscale_factor": 2, "extra_settings": { "deblur_strength": 0.4 } } }' ``` ## Example - High-fidelity portrait with face recovery ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/image-upscale", "input": { "image_url": "https://example.com/portrait.jpg", "preset": "high-fidelity-v2", "upscale_factor": "2x", "face_enhancement": true, "extra_settings": { "face_enhancement_strength": 0.7, "face_enhancement_creativity": 0.2, "subject_detection": "foreground" } } }' ``` ## Example - Text, logos, and UI screenshots ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/image-upscale", "input": { "image_url": "https://example.com/screenshot.png", "preset": "text-refine", "upscale_factor": "2x", "output_format": "png", "extra_settings": { "decompression_strength": 0.7, "deblur_strength": 0.4, "opacity": 0.9 } } }' ``` ## Example - Fixed output framing with `crop_to_fill` ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/image-upscale", "input": { "image_url": "https://example.com/photo.jpg", "upscale_factor": "4x", "crop_to_fill": true, "output_format": "png" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Grok Imagine 2.0 Image (Quality) Source: https://docs.unifically.com/models/image/xai/grok-imagine-2.0-image Generate and edit images with the quality-focused xAI Grok Imagine 2.0 image model. Generate and edit images using Grok Imagine 2.0, the quality-focused Grok image model. The API produces exactly one output image per task. The `enable_pro` parameter has been removed. Select this model explicitly for quality. For faster generation, use [`xai/grok-imagine-image`](/models/image/xai/grok-imagine-image). ## Model ``` xai/grok-imagine-2.0-image ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | — | Text description or edit instruction | | `aspect_ratio` | string | No | `"1:1"` | `"1:1"`, `"2:3"`, `"3:2"`, `"9:16"`, or `"16:9"` | | `image_urls` | string\[] | No | `null` | 1–5 reference image URLs. Providing this field activates edit mode | | `upsample_prompt` | boolean | No | `true` | Let AI enhance the prompt | | `enable_nsfw` | boolean | No | `true` | Allow NSFW content generation | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | Text-to-image and image-edit requests each generate exactly **one image**. Providing `image_urls` activates editing but does not change the selected model. ## Example requests ### Text to image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-2.0-image", "input": { "prompt": "A cinematic portrait with natural skin texture and detailed lighting", "aspect_ratio": "2:3" } }' ``` ### Image editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-2.0-image", "input": { "prompt": "Merge these images into one photorealistic scene", "image_urls": [ "https://example.com/img1.jpg", "https://example.com/img2.jpg" ] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "image_url": "https://files.unifically.com/image/92116e95-8dd4-4cbb-b53f-ee643e1045d8.jpg" } } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Grok Imagine Image (Speed) Source: https://docs.unifically.com/models/image/xai/grok-imagine-image Generate and edit images with the speed-focused xAI Grok Imagine image model. Generate and edit images using the speed-focused Grok Imagine image model. The API produces exactly one output image per task. The `enable_pro` parameter has been removed. Speed and quality are now separate models: use `xai/grok-imagine-image` for speed or [`xai/grok-imagine-2.0-image`](/models/image/xai/grok-imagine-2.0-image) for Grok Imagine 2.0 quality. ## Model ``` xai/grok-imagine-image ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | — | Text description or edit instruction | | `aspect_ratio` | string | No | `"1:1"` | `"1:1"`, `"2:3"`, `"3:2"`, `"9:16"`, or `"16:9"` | | `image_urls` | string\[] | No | `null` | 1–5 reference image URLs. Providing this field activates edit mode | | `upsample_prompt` | boolean | No | `true` | Let AI enhance the prompt | | `enable_nsfw` | boolean | No | `true` | Allow NSFW content generation | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | Text-to-image and image-edit requests each generate exactly **one image**. The generation count is fixed internally and cannot be changed by callers. Providing `image_urls` changes the operation to image editing but does **not** switch models. This endpoint remains on `xai/grok-imagine-image`. ## Example requests ### Text to image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-image", "input": { "prompt": "A robot dancing in a field of sunflowers", "aspect_ratio": "16:9" } }' ``` ### Image editing ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-image", "input": { "prompt": "Merge these images into one scene", "image_urls": [ "https://example.com/img1.jpg", "https://example.com/img2.jpg" ] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "completed", "output": { "image_url": "https://files.unifically.com/image/92116e95-8dd4-4cbb-b53f-ee643e1045d8.jpg" } } } ``` ## Image-edit failure diagnostics Before uploading edit references, the API checks Grok's reported `imageEdit` quota. If the selected account explicitly has no edit quota, the request is retried with another available account. A quota response that does not expose an image-edit allowance is recorded as `unknown` rather than treated as exhausted. When an edit task fails, its `debug_response` includes diagnostics from every upstream attempt. These may include: | Field | Description | | - | - | | `attempt_diagnostics` | Ordered diagnostics for each attempted Grok account | | `diagnosed_reason` | Machine-readable classification of the failure | | `quota_precheck` | Grok's image-edit quota status and the quota feature used for the decision | | `http_status` | HTTP status returned by Grok | | `event_sequence` / `event_counts` | Stream events received before the failure | | `conversation_ids` / `response_ids` | Upstream identifiers useful for support investigations | | `stream_errors` | Errors emitted inside Grok's response stream | | `progress_events` | Any image-generation progress events received | | `raw_upstream_stream` | Complete upstream response stream for that attempt | Common `diagnosed_reason` values: | Reason | Meaning | | - | - | | `accepted_without_generation_events` | Grok accepted the edit message but emitted neither progress nor an image result | | `conversation_created_without_response_events` | Grok created a conversation but did not emit response events | | `quota_or_rate_limit_signal` | The response stream contained a quota or rate-limit signal | | `upstream_stream_error` | Grok emitted one or more stream errors | | `empty_or_unparseable_stream` | Grok returned no usable stream objects | | `model_response_without_image` | A model response arrived without a generated image URL | | `no_image_generation_events` | The stream completed without recognizable image-generation events | The API retains the complete upstream stream to make provider-side failures diagnosable. Avoid exposing `debug_response` publicly if prompts or upstream metadata may be sensitive. **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Claude Fable 5 Source: https://docs.unifically.com/models/llm/anthropic/claude-fable-5 Anthropic's Claude Fable 5 language model. See supported inputs, parameters, pricing, response fields, and API examples. Claude Fable 5 is part of Anthropic's Claude 5 family, designed for creative and expressive generation tasks. ## Model ``` anthropic/claude-fable-5 ``` | | | | - | - | | **Provider** | Anthropic | | **Name** | Claude Fable 5 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "anthropic/claude-fable-5", "max_tokens": 1024, "messages": [ {"role": "user", "content": "Write a short fable about a curious fox."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Claude Fable 5.1 Source: https://docs.unifically.com/models/llm/anthropic/claude-fable-5-1 Anthropic's Claude Fable 5.1 language model. See supported inputs, parameters, pricing, response fields, and API examples. Claude Fable 5.1 is Anthropic's top Claude 5 family model, built for long-running agentic coding, multistep research, and document, spreadsheet, and slide work. It takes text and image input, outputs text, and carries a 1M token context window with up to 128k output tokens. Adaptive thinking is always on. ## Model ``` anthropic/claude-fable-5-1 ``` | | | | - | - | | **Provider** | Anthropic | | **Name** | Claude Fable 5.1 | | **Context window** | 1M tokens | | **Max output** | 128k tokens | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "anthropic/claude-fable-5-1", "max_tokens": 4096, "messages": [ {"role": "user", "content": "This service crashes about once in a million runs. Here are the logs. Find the root cause."} ] }' ``` Forced tool use (`tool_choice` set to `any` or a named tool) is not supported on this model and returns a 400. Keep `tool_choice` on `auto` and name the tool in the prompt. Thinking blocks are bound to the model that produced them, so keep conversation history append-only. **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Claude Haiku 4.5 Source: https://docs.unifically.com/models/llm/anthropic/claude-haiku-4-5 Anthropic's Claude Haiku 4.5 language model. See supported inputs, parameters, pricing, response fields, and API examples. Claude Haiku 4.5 is Anthropic's fastest and most cost-efficient model, optimized for low-latency and high-volume tasks. ## Model ``` anthropic/claude-haiku-4-5 ``` | | | | - | - | | **Provider** | Anthropic | | **Name** | Claude Haiku 4.5 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "anthropic/claude-haiku-4-5", "max_tokens": 1024, "messages": [ {"role": "user", "content": "Summarize this paragraph in one sentence."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Claude Opus 4.5 Source: https://docs.unifically.com/models/llm/anthropic/claude-opus-4-5 Anthropic's Claude Opus 4.5 language model. See supported inputs, parameters, pricing, response fields, and API examples. Claude Opus 4.5 is a highly capable Anthropic model designed for complex reasoning, research, and agentic workflows. ## Model ``` anthropic/claude-opus-4-5 ``` | | | | - | - | | **Provider** | Anthropic | | **Name** | Claude Opus 4.5 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "anthropic/claude-opus-4-5", "max_tokens": 4096, "messages": [ {"role": "user", "content": "Plan a multi-step research workflow for analyzing market trends."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Claude Opus 4.6 Source: https://docs.unifically.com/models/llm/anthropic/claude-opus-4-6 Anthropic's Claude Opus 4.6 language model. See supported inputs, parameters, pricing, response fields, and API examples. Claude Opus 4.6 is Anthropic's high-capability model for demanding reasoning, analysis, and coding tasks. ## Model ``` anthropic/claude-opus-4-6 ``` | | | | - | - | | **Provider** | Anthropic | | **Name** | Claude Opus 4.6 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "anthropic/claude-opus-4-6", "max_tokens": 2048, "messages": [ {"role": "user", "content": "Architect a microservices system for an e-commerce platform."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Claude Opus 4.7 Source: https://docs.unifically.com/models/llm/anthropic/claude-opus-4-7 Anthropic's Claude Opus 4.7 language model. See supported inputs, parameters, pricing, response fields, and API examples. Claude Opus 4.7 is an advanced Anthropic model with enhanced reasoning and long-context capabilities. ## Model ``` anthropic/claude-opus-4-7 ``` | | | | - | - | | **Provider** | Anthropic | | **Name** | Claude Opus 4.7 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "anthropic/claude-opus-4-7", "max_tokens": 2048, "messages": [ {"role": "user", "content": "Analyze the trade-offs between SQL and NoSQL databases."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Claude Opus 4.8 Source: https://docs.unifically.com/models/llm/anthropic/claude-opus-4-8 Anthropic's Claude Opus 4.8 language model. See supported inputs, parameters, pricing, response fields, and API examples. Claude Opus 4.8 is Anthropic's most capable model, designed for the most complex reasoning, research, and agentic workflows. ## Model ``` anthropic/claude-opus-4-8 ``` | | | | - | - | | **Provider** | Anthropic | | **Name** | Claude Opus 4.8 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "anthropic/claude-opus-4-8", "max_tokens": 4096, "messages": [ {"role": "user", "content": "Plan a multi-step research workflow for analyzing market trends."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Claude Opus 5 Source: https://docs.unifically.com/models/llm/anthropic/claude-opus-5 Anthropic's Claude Opus 5 language model. See supported inputs, parameters, pricing, response fields, and API examples. Claude Opus 5 is Anthropic's flagship Claude 5 family model, built for the most complex reasoning, research, and agentic workflows. ## Model ``` anthropic/claude-opus-5 ``` | | | | - | - | | **Provider** | Anthropic | | **Name** | Claude Opus 5 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "anthropic/claude-opus-5", "max_tokens": 4096, "messages": [ {"role": "user", "content": "Design a distributed job queue with exactly-once semantics."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Claude Opus 5.5 Source: https://docs.unifically.com/models/llm/anthropic/claude-opus-5-5 Anthropic's Claude Opus 5.5 language model. See supported inputs, parameters, pricing, response fields, and API examples. Claude Opus 5.5 is Anthropic's Opus model from the Claude 5.5 family, released September 22, 2026, for agentic coding, long-running agents, and knowledge work. It takes text and image input, outputs text, and carries a 1M token context window with up to 128k output tokens. Adaptive thinking is always on and cannot be disabled; effort defaults to `medium`. ## Model ``` anthropic/claude-opus-5-5 ``` | | | | - | - | | **Provider** | Anthropic | | **Name** | Claude Opus 5.5 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "anthropic/claude-opus-5-5", "max_tokens": 4096, "messages": [ {"role": "user", "content": "Design a distributed job queue with exactly-once semantics."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Claude Sonnet 4.5 Source: https://docs.unifically.com/models/llm/anthropic/claude-sonnet-4-5 Anthropic's Claude Sonnet 4.5 language model. See supported inputs, parameters, pricing, response fields, and API examples. Claude Sonnet 4.5 is Anthropic's balanced model offering strong performance at efficient cost for a wide range of tasks. ## Model ``` anthropic/claude-sonnet-4-5 ``` | | | | - | - | | **Provider** | Anthropic | | **Name** | Claude Sonnet 4.5 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "anthropic/claude-sonnet-4-5", "max_tokens": 1024, "messages": [ {"role": "user", "content": "Review this function for potential bugs."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Claude Sonnet 4.6 Source: https://docs.unifically.com/models/llm/anthropic/claude-sonnet-4-6 Anthropic's Claude Sonnet 4.6 language model. See supported inputs, parameters, pricing, response fields, and API examples. Claude Sonnet 4.6 is Anthropic's balanced model offering strong performance at efficient cost for a wide range of tasks. ## Model ``` anthropic/claude-sonnet-4-6 ``` | | | | - | - | | **Provider** | Anthropic | | **Name** | Claude Sonnet 4.6 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "anthropic/claude-sonnet-4-6", "max_tokens": 1024, "messages": [ {"role": "user", "content": "Review this function for potential bugs."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Claude Sonnet 5 Source: https://docs.unifically.com/models/llm/anthropic/claude-sonnet-5 Anthropic's Claude Sonnet 5 language model. See supported inputs, parameters, pricing, response fields, and API examples. Claude Sonnet 5 is part of Anthropic's Claude 5 family, offering balanced performance and efficiency across a wide range of tasks. ## Model ``` anthropic/claude-sonnet-5 ``` | | | | - | - | | **Provider** | Anthropic | | **Name** | Claude Sonnet 5 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "anthropic/claude-sonnet-5", "max_tokens": 1024, "messages": [ {"role": "user", "content": "Review this function for potential bugs."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Claude Sonnet 5.5 Source: https://docs.unifically.com/models/llm/anthropic/claude-sonnet-5-5 Anthropic's Claude Sonnet 5.5 language model. See supported inputs, parameters, pricing, response fields, and API examples. Claude Sonnet 5.5 is Anthropic's Sonnet model from the Claude 5.5 family, released September 28, 2026, for everyday coding, bug fixing, and document, slide, and spreadsheet work. It takes text and image input, outputs text, and carries a 1M token context window with up to 128k output tokens. It uses adaptive thinking steered by effort, which defaults to `high`; to keep up-front thinking off, use the `between_tools` setting. ## Model ``` anthropic/claude-sonnet-5-5 ``` | | | | - | - | | **Provider** | Anthropic | | **Name** | Claude Sonnet 5.5 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "anthropic/claude-sonnet-5-5", "max_tokens": 4096, "messages": [ {"role": "user", "content": "Design a distributed job queue with exactly-once semantics."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Composer 2.5 Source: https://docs.unifically.com/models/llm/cursor/composer-2.5 Cursor's Composer 2.5 coding model. See supported inputs, parameters, pricing, response fields, and API examples. Composer 2.5 is Cursor's flagship coding model, optimized for agentic software development tasks. ## Model ``` cursor/composer-2.5 ``` | | | | - | - | | **Provider** | Cursor | | **Name** | Composer 2.5 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "cursor/composer-2.5", "messages": [ {"role": "user", "content": "Write a Python function to merge two sorted lists."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Composer 2.5 Fast Source: https://docs.unifically.com/models/llm/cursor/composer-2.5-fast Cursor's Composer 2.5 Fast coding model. See supported inputs, parameters, pricing, response fields, and API examples. Composer 2.5 Fast is a lower-latency variant of Composer 2.5, optimized for quick coding tasks and interactive workflows. ## Model ``` cursor/composer-2.5-fast ``` | | | | - | - | | **Provider** | Cursor | | **Name** | Composer 2.5 Fast | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "cursor/composer-2.5-fast", "messages": [ {"role": "user", "content": "Explain this error: TypeError: Cannot read property of undefined"} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # DeepSeek V4.1 Flash Source: https://docs.unifically.com/models/llm/deepseek/deepseek-flash DeepSeek's DeepSeek V4.1 Flash language model. See supported inputs, parameters, pricing, response fields, and API examples. DeepSeek V4.1 Flash is DeepSeek's September 2026 Flash model for agentic coding and long-context work, with a 1M-token context window, 384K max output, and thinking on by default. The `deepseek/deepseek-flash` ID always points at DeepSeek's latest Flash model. ## Model ``` deepseek/deepseek-flash ``` | | | | - | - | | **Provider** | DeepSeek | | **Name** | DeepSeek V4.1 Flash | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` DeepSeek models bill at 2x during peak hours: Monday to Friday, 01:00–04:00 and 06:00–10:00 UTC. The rate is fixed when the request starts. See [pricing](https://unifically.com/pricing) for current rates. ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer YOUR_API_KEY" -d '{ "model": "deepseek/deepseek-flash", "messages": [ {"role": "user", "content": "Refactor this function to be more testable."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # DeepSeek V4 Flash Source: https://docs.unifically.com/models/llm/deepseek/deepseek-v4-flash DeepSeek's versioned V4 Flash model ID. See supported inputs, parameters, pricing, response fields, and API examples. DeepSeek V4 Flash is the versioned `deepseek-v4-flash` model ID. DeepSeek retired the 0731 model on September 10, 2026 and now answers this ID with DeepSeek V4.1 Flash, so existing integrations keep working. New code should use `deepseek/deepseek-flash`. ## Model ``` deepseek/deepseek-v4-flash ``` | | | | - | - | | **Provider** | DeepSeek | | **Name** | DeepSeek V4 Flash | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` DeepSeek models bill at 2x during peak hours: Monday to Friday, 01:00–04:00 and 06:00–10:00 UTC. The rate is fixed when the request starts. See [pricing](https://unifically.com/pricing) for current rates. ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer YOUR_API_KEY" -d '{ "model": "deepseek/deepseek-v4-flash", "messages": [ {"role": "user", "content": "Summarize this changelog in three bullet points."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # DeepSeek V4 Pro Source: https://docs.unifically.com/models/llm/deepseek/deepseek-v4-pro DeepSeek's DeepSeek V4 Pro language model. See supported inputs, parameters, pricing, response fields, and API examples. DeepSeek V4 Pro is DeepSeek's 1.6T-parameter V4 model (the August 2026 GA release) for agent work and knowledge-heavy tasks, with a 1M-token context window, 384K max output, and thinking on by default. ## Model ``` deepseek/deepseek-v4-pro ``` | | | | - | - | | **Provider** | DeepSeek | | **Name** | DeepSeek V4 Pro | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` DeepSeek models bill at 2x during peak hours: Monday to Friday, 01:00–04:00 and 06:00–10:00 UTC. The rate is fixed when the request starts. See [pricing](https://unifically.com/pricing) for current rates. ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer YOUR_API_KEY" -d '{ "model": "deepseek/deepseek-v4-pro", "messages": [ {"role": "user", "content": "Explain the trade-offs between these two database schemas."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Gemini 3.5 Flash Source: https://docs.unifically.com/models/llm/google/gemini-3.5-flash Google's Gemini 3.5 Flash language model. See supported inputs, parameters, pricing, response fields, and API examples. Gemini 3.5 Flash is Google's May 2026 Flash reasoning model for agentic workflows, coding, and multimodal understanding. It accepts text, image, audio, and video input with a 1M-token context window and returns up to 64K output tokens. Reasoning effort is tunable with `reasoning_effort` set to `minimal`, `low`, `medium`, `high`, or `max`. ## Model ``` google/gemini-3.5-flash ``` | | | | - | - | | **Provider** | Google | | **Name** | Gemini 3.5 Flash | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-3.5-flash", "messages": [ {"role": "user", "content": "Summarize this document in three bullet points."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Gemini 3.6 Flash Source: https://docs.unifically.com/models/llm/google/gemini-3.6-flash Google's Gemini 3.6 Flash language model. See supported inputs, parameters, pricing, response fields, and API examples. Gemini 3.6 Flash is Google's fast, cost-efficient language model for high-throughput reasoning, coding, and long-context tasks. ## Model ``` google/gemini-3.6-flash ``` | | | | - | - | | **Provider** | Google | | **Name** | Gemini 3.6 Flash | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-3.6-flash", "messages": [ {"role": "user", "content": "Summarize this document in three bullet points."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Gemini 3.7 Flash Source: https://docs.unifically.com/models/llm/google/gemini-3.7-flash Google's Gemini 3.7 Flash language model. See supported inputs, parameters, pricing, response fields, and API examples. Gemini 3.7 Flash is Google's fast, cost-efficient language model for high-throughput reasoning, coding, and long-context tasks. ## Model ``` google/gemini-3.7-flash ``` | | | | - | - | | **Provider** | Google | | **Name** | Gemini 3.7 Flash | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-3.7-flash", "messages": [ {"role": "user", "content": "Summarize this document in three bullet points."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Gemini 3.8 Flash Source: https://docs.unifically.com/models/llm/google/gemini-3.8-flash Google's Gemini 3.8 Flash language model. See supported inputs, parameters, pricing, response fields, and API examples. Gemini 3.8 Flash is Google's newest Flash language model for long-horizon coding, agentic workflows, and multi-step reasoning, at the same speed and price as Gemini 3.7 Flash. It accepts text, image, audio, and video input with a 1M-token context window and returns up to 64K output tokens. Reasoning effort is tunable with `reasoning_effort` set to `low`, `medium`, `high`, or `max`. ## Model ``` google/gemini-3.8-flash ``` | | | | - | - | | **Provider** | Google | | **Name** | Gemini 3.8 Flash | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-3.8-flash", "messages": [ {"role": "user", "content": "Summarize this document in three bullet points."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Kimi K3 Source: https://docs.unifically.com/models/llm/moonshotai/kimi-k3 Moonshot AI's Kimi K3 language model. See supported inputs, parameters, pricing, response fields, and API examples. Kimi K3 is Moonshot AI's flagship language model, with strong reasoning, coding, and agentic capabilities. ## Model ``` moonshotai/kimi-k3 ``` | | | | - | - | | **Provider** | Moonshot AI | | **Name** | Kimi K3 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "moonshotai/kimi-k3", "messages": [ {"role": "user", "content": "Refactor this function to be more testable."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # GPT 5.4 Source: https://docs.unifically.com/models/llm/openai/gpt-5.4 OpenAI's GPT 5.4 language model. See supported inputs, parameters, pricing, response fields, and API examples. GPT 5.4 is OpenAI's flagship general-purpose language model for complex reasoning, coding, and analysis tasks. ## Model ``` openai/gpt-5.4 ``` | | | | - | - | | **Provider** | OpenAI | | **Name** | GPT 5.4 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-5.4", "messages": [ {"role": "user", "content": "Design a REST API for a todo application."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # GPT 5.4 Mini Source: https://docs.unifically.com/models/llm/openai/gpt-5.4-mini OpenAI's GPT 5.4 Mini language model. See supported inputs, parameters, pricing, response fields, and API examples. GPT 5.4 Mini is a compact, cost-efficient model from OpenAI suitable for everyday text generation tasks. ## Model ``` openai/gpt-5.4-mini ``` | | | | - | - | | **Provider** | OpenAI | | **Name** | GPT 5.4 Mini | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-5.4-mini", "messages": [ {"role": "user", "content": "Summarize the benefits of unit testing."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # GPT 5.4 Nano Source: https://docs.unifically.com/models/llm/openai/gpt-5.4-nano OpenAI's GPT 5.4 Nano language model. See supported inputs, parameters, pricing, response fields, and API examples. GPT 5.4 Nano is OpenAI's smallest GPT 5.4 variant, designed for high-throughput, low-cost inference. ## Model ``` openai/gpt-5.4-nano ``` | | | | - | - | | **Provider** | OpenAI | | **Name** | GPT 5.4 Nano | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-5.4-nano", "messages": [ {"role": "user", "content": "Classify this text as positive or negative: Great product!"} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # GPT 5.5 Source: https://docs.unifically.com/models/llm/openai/gpt-5.5 OpenAI's GPT 5.5 language model. See supported inputs, parameters, pricing, response fields, and API examples. GPT 5.5 is OpenAI's latest general-purpose language model with improved reasoning and instruction following. ## Model ``` openai/gpt-5.5 ``` | | | | - | - | | **Provider** | OpenAI | | **Name** | GPT 5.5 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-5.5", "messages": [ {"role": "user", "content": "Explain the CAP theorem with a real-world example."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # GPT 5.6 Luna Source: https://docs.unifically.com/models/llm/openai/gpt-5.6-luna OpenAI's GPT 5.6 Luna language model. See supported inputs, parameters, pricing, response fields, and API examples. GPT 5.6 Luna is a variant in OpenAI's GPT 5.6 line with strong general-purpose reasoning and instruction following. ## Model ``` openai/gpt-5.6-luna ``` | | | | - | - | | **Provider** | OpenAI | | **Name** | GPT 5.6 Luna | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-5.6-luna", "messages": [ {"role": "user", "content": "Summarize the trade-offs between REST and GraphQL."} ] }' ``` **Long-context surcharge.** Once a request's prompt exceeds 272,000 tokens, the whole request bills at the long-context rate: input, cache read, and cache write at double the standard rate, and output at 1.5x. Both rates are listed on the [pricing page](https://unifically.com/pricing). **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # GPT 5.6 Sol Source: https://docs.unifically.com/models/llm/openai/gpt-5.6-sol OpenAI's GPT 5.6 Sol language model. See supported inputs, parameters, pricing, response fields, and API examples. GPT 5.6 Sol is a variant in OpenAI's GPT 5.6 line with strong general-purpose reasoning and instruction following. ## Model ``` openai/gpt-5.6-sol ``` | | | | - | - | | **Provider** | OpenAI | | **Name** | GPT 5.6 Sol | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-5.6-sol", "messages": [ {"role": "user", "content": "Explain eventual consistency with a practical example."} ] }' ``` **Long-context surcharge.** Once a request's prompt exceeds 272,000 tokens, the whole request bills at the long-context rate: input, cache read, and cache write at double the standard rate, and output at 1.5x. Both rates are listed on the [pricing page](https://unifically.com/pricing). **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # GPT 5.6 Terra Source: https://docs.unifically.com/models/llm/openai/gpt-5.6-terra OpenAI's GPT 5.6 Terra language model. See supported inputs, parameters, pricing, response fields, and API examples. GPT 5.6 Terra is a variant in OpenAI's GPT 5.6 line with strong general-purpose reasoning and instruction following. ## Model ``` openai/gpt-5.6-terra ``` | | | | - | - | | **Provider** | OpenAI | | **Name** | GPT 5.6 Terra | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-5.6-terra", "messages": [ {"role": "user", "content": "Write a migration plan for moving a monolith to microservices."} ] }' ``` **Long-context surcharge.** Once a request's prompt exceeds 272,000 tokens, the whole request bills at the long-context rate: input, cache read, and cache write at double the standard rate, and output at 1.5x. Both rates are listed on the [pricing page](https://unifically.com/pricing). **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # GPT 6 Astra Source: https://docs.unifically.com/models/llm/openai/gpt-6-astra OpenAI's GPT 6 Astra language model. See supported inputs, parameters, pricing, response fields, and API examples. GPT 6 Astra is OpenAI's top model for computer use, agentic coding, multi-step business workflows, and scientific work. It accepts text and image input, returns text, and has a context window of about 1 million tokens with reasoning effort from low up to max. ## Model ``` openai/gpt-6-astra ``` | | | | - | - | | **Provider** | OpenAI | | **Name** | GPT 6 Astra | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-6-astra", "messages": [ {"role": "user", "content": "Plan and apply a migration that splits this orders table, then run the test suite."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # GPT 6 Luna Source: https://docs.unifically.com/models/llm/openai/gpt-6-luna OpenAI's GPT 6 Luna language model. See supported inputs, parameters, pricing, response fields, and API examples. GPT 6 Luna is OpenAI's fastest and cheapest GPT-6 model, built for high-volume tasks like classification, extraction, and short chat replies. It accepts text and image input, returns text, and has a context window of about 1 million tokens. ## Model ``` openai/gpt-6-luna ``` | | | | - | - | | **Provider** | OpenAI | | **Name** | GPT 6 Luna | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-6-luna", "messages": [ {"role": "user", "content": "Classify this support ticket as billing, bug, or feature request: My card was charged twice."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # GPT 6 Sol Source: https://docs.unifically.com/models/llm/openai/gpt-6-sol OpenAI's GPT 6 Sol language model. See supported inputs, parameters, pricing, response fields, and API examples. GPT 6 Sol is OpenAI's balanced GPT-6 model for coding, agents, and everyday production work at half the cost of the GPT 5.6 generation. It accepts text and image input, returns text, and has a context window of about 1 million tokens. ## Model ``` openai/gpt-6-sol ``` | | | | - | - | | **Provider** | OpenAI | | **Name** | GPT 6 Sol | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-6-sol", "messages": [ {"role": "user", "content": "Review this pull request and list any bugs you find."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # GPT 6.1 Sol Source: https://docs.unifically.com/models/llm/openai/gpt-6.1-sol OpenAI's GPT 6.1 Sol language model. See supported inputs, parameters, pricing, response fields, and API examples. GPT 6.1 Sol is OpenAI's upgrade to GPT 6 Sol, released on September 29, 2026. It comes close to GPT 6 Astra on agentic coding, computer use, and professional work. It accepts text and image input, returns text, has a context window of about 1 million tokens with up to 128,000 output tokens, and supports `reasoning_effort` from `low` to `max`. ## Model ``` openai/gpt-6.1-sol ``` | | | | - | - | | **Provider** | OpenAI | | **Name** | GPT 6.1 Sol | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "openai/gpt-6.1-sol", "messages": [ {"role": "user", "content": "Review this pull request and list any bugs you find."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # LLM Models Overview Source: https://docs.unifically.com/models/llm/overview Supported language models and compatible API endpoints. See supported inputs, parameters, pricing, response fields, and API examples. Unifically provides access to leading language models from **Cursor**, **OpenAI**, **Anthropic**, **Google**, **xAI**, **Moonshot AI**, and **DeepSeek** through three compatible API formats. Every model listed below supports all three endpoints. ## Supported Endpoints | Endpoint | Format | Documentation | | - | - | - | | `POST /v1/chat/completions` | OpenAI Chat Completions | [Chat Completions API](/api-reference/v1-chat-completions) | | `POST /v1/responses` | OpenAI Responses | [Responses API](/api-reference/v1-responses) | | `POST /v1/messages` | Anthropic Messages | [Messages API](/api-reference/v1-messages) | Use whichever API format fits your existing codebase. All three endpoints accept the same model IDs and return provider-compatible response formats. ## Available Models | Model | Provider | Name | | - | - | - | | `cursor/composer-2.5` | Cursor | Composer 2.5 | | `cursor/composer-2.5-fast` | Cursor | Composer 2.5 Fast | | `openai/gpt-5.4-mini` | OpenAI | GPT 5.4 Mini | | `openai/gpt-5.4-nano` | OpenAI | GPT 5.4 Nano | | `openai/gpt-5.4` | OpenAI | GPT 5.4 | | `openai/gpt-5.5` | OpenAI | GPT 5.5 | | `openai/gpt-5.6-luna` | OpenAI | GPT 5.6 Luna | | `openai/gpt-5.6-terra` | OpenAI | GPT 5.6 Terra | | `openai/gpt-5.6-sol` | OpenAI | GPT 5.6 Sol | | `openai/gpt-6-astra` | OpenAI | GPT 6 Astra | | `openai/gpt-6-sol` | OpenAI | GPT 6 Sol | | `openai/gpt-6-luna` | OpenAI | GPT 6 Luna | | `openai/gpt-6.1-sol` | OpenAI | GPT 6.1 Sol | | `anthropic/claude-sonnet-5-5` | Anthropic | Claude Sonnet 5.5 | | `anthropic/claude-opus-5-5` | Anthropic | Claude Opus 5.5 | | `anthropic/claude-fable-5-1` | Anthropic | Claude Fable 5.1 | | `anthropic/claude-fable-5` | Anthropic | Claude Fable 5 | | `anthropic/claude-opus-5` | Anthropic | Claude Opus 5 | | `anthropic/claude-haiku-4-5` | Anthropic | Claude Haiku 4.5 | | `anthropic/claude-opus-4-5` | Anthropic | Claude Opus 4.5 | | `anthropic/claude-sonnet-4-5` | Anthropic | Claude Sonnet 4.5 | | `anthropic/claude-sonnet-5` | Anthropic | Claude Sonnet 5 | | `anthropic/claude-sonnet-4-6` | Anthropic | Claude Sonnet 4.6 | | `anthropic/claude-opus-4-6` | Anthropic | Claude Opus 4.6 | | `anthropic/claude-opus-4-7` | Anthropic | Claude Opus 4.7 | | `anthropic/claude-opus-4-8` | Anthropic | Claude Opus 4.8 | | `google/gemini-3.5-flash` | Google | Gemini 3.5 Flash | | `google/gemini-3.6-flash` | Google | Gemini 3.6 Flash | | `google/gemini-3.7-flash` | Google | Gemini 3.7 Flash | | `google/gemini-3.8-flash` | Google | Gemini 3.8 Flash | | `xai/grok-4.5` | xAI | Grok 4.5 | | `xai/grok-4.6` | xAI | Grok 4.6 | | `xai/grok-4.7` | xAI | Grok 4.7 | | `xai/grok-4.3` | xAI | Grok 4.3 | | `xai/grok-build-0.1` | xAI | Grok Build 0.1 | | `xai/grok-4.20-0309-reasoning` | xAI | Grok 4.20 Reasoning | | `xai/grok-4.20-0309-non-reasoning` | xAI | Grok 4.20 Non-Reasoning | | `xai/grok-4.20-multi-agent-0309` | xAI | Grok 4.20 Multi-Agent | | `moonshotai/kimi-k3` | Moonshot AI | Kimi K3 | | `deepseek/deepseek-flash` | DeepSeek | DeepSeek V4.1 Flash | | `deepseek/deepseek-v4-pro` | DeepSeek | DeepSeek V4 Pro | | `deepseek/deepseek-v4-flash` | DeepSeek | DeepSeek V4 Flash | ## Quick Start ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "anthropic/claude-sonnet-4-6", "messages": [ {"role": "user", "content": "Hello!"} ] }' ``` ## Authentication All LLM endpoints use the same Bearer token authentication as the rest of the Unifically API. See [Authentication](/api-reference/authentication) for details. **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Grok 4.20 Non-Reasoning Source: https://docs.unifically.com/models/llm/xai/grok-4.20-0309-non-reasoning xAI's Grok 4.20 Non-Reasoning language model. See supported inputs, parameters, pricing, response fields, and API examples. Grok 4.20 Non-Reasoning is xAI's Grok 4.20 with thinking off: a 1M context window, image input, and sub-second time to first token. ## Model ``` xai/grok-4.20-0309-non-reasoning ``` | | | | - | - | | **Provider** | xAI | | **Name** | Grok 4.20 Non-Reasoning | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-4.20-0309-non-reasoning", "messages": [ {"role": "user", "content": "Classify this support message as billing, bug, or feature request and reply with one word."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Grok 4.20 Reasoning Source: https://docs.unifically.com/models/llm/xai/grok-4.20-0309-reasoning xAI's Grok 4.20 Reasoning language model. See supported inputs, parameters, pricing, response fields, and API examples. Grok 4.20 Reasoning is xAI's Grok 4.20 with thinking on: a 1M context window, image input, and agentic tool calling. ## Model ``` xai/grok-4.20-0309-reasoning ``` | | | | - | - | | **Provider** | xAI | | **Name** | Grok 4.20 Reasoning | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-4.20-0309-reasoning", "messages": [ {"role": "user", "content": "Summarize the open risks in this incident thread and rank them by blast radius."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Grok 4.20 Multi-Agent Source: https://docs.unifically.com/models/llm/xai/grok-4.20-multi-agent-0309 xAI's Grok 4.20 Multi-Agent model. See supported inputs, parameters, pricing, response fields, and API examples. Grok 4.20 Multi-Agent runs a leader agent plus 4 or 16 xAI sub-agents in parallel for research tasks, with a 1M context window and image input. Set `reasoning.effort` to `low` or `medium` for 4 agents, `high` or `xhigh` for 16. ## Model ``` xai/grok-4.20-multi-agent-0309 ``` | | | | - | - | | **Provider** | xAI | | **Name** | Grok 4.20 Multi-Agent | ## Supported Endpoints xAI serves this model on the Responses API only. `POST /v1/chat/completions` and `POST /v1/messages` return an upstream error for it. * [Responses](/api-reference/v1-responses) — `POST /v1/responses` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/responses \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-4.20-multi-agent-0309", "reasoning": {"effort": "high"}, "input": "Compare the three leading approaches to on-device speech recognition and recommend one for a battery-constrained wearable." }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Grok 4.3 Source: https://docs.unifically.com/models/llm/xai/grok-4.3 xAI's Grok 4.3 language model. See supported inputs, parameters, pricing, response fields, and API examples. Grok 4.3 is xAI's fast, low-cost reasoning model with a 1M context window, strong tool calling, and a reasoning effort of none, low, medium, or high. ## Model ``` xai/grok-4.3 ``` | | | | - | - | | **Provider** | xAI | | **Name** | Grok 4.3 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-4.3", "messages": [ {"role": "user", "content": "Extract the customer name, order number, and issue from this ticket as JSON."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Grok 4.5 Source: https://docs.unifically.com/models/llm/xai/grok-4.5 xAI's Grok 4.5 language model. See supported inputs, parameters, pricing, response fields, and API examples. Grok 4.5 is xAI's coding and agent model, trained with Cursor, with a 500k context window and image input. ## Model ``` xai/grok-4.5 ``` | | | | - | - | | **Provider** | xAI | | **Name** | Grok 4.5 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-4.5", "messages": [ {"role": "user", "content": "Analyze the tradeoffs in this architecture."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Grok 4.6 Source: https://docs.unifically.com/models/llm/xai/grok-4.6 xAI's Grok 4.6 language model. See supported inputs, parameters, pricing, response fields, and API examples. Grok 4.6 is xAI's general-purpose language model for reasoning, coding, and long-context tasks. ## Model ``` xai/grok-4.6 ``` | | | | - | - | | **Provider** | xAI | | **Name** | Grok 4.6 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-4.6", "messages": [ {"role": "user", "content": "Analyze the tradeoffs in this architecture."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Grok 4.7 Source: https://docs.unifically.com/models/llm/xai/grok-4.7 xAI's Grok 4.7 language model. See supported inputs, parameters, pricing, response fields, and API examples. Grok 4.7 is xAI's language model for coding, long-running agents, and knowledge work. ## Model ``` xai/grok-4.7 ``` | | | | - | - | | **Provider** | xAI | | **Name** | Grok 4.7 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-4.7", "messages": [ {"role": "user", "content": "Analyze the tradeoffs in this architecture."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Grok Build 0.1 Source: https://docs.unifically.com/models/llm/xai/grok-build-0.1 xAI's Grok Build 0.1 coding model. See supported inputs, parameters, pricing, response fields, and API examples. Grok Build 0.1 is xAI's agentic coding model, the model behind the Grok Build terminal agent, with a 256k context window and image input. ## Model ``` xai/grok-build-0.1 ``` | | | | - | - | | **Provider** | xAI | | **Name** | Grok Build 0.1 | ## Supported Endpoints All three API formats are supported: * [Chat Completions](/api-reference/v1-chat-completions) — `POST /v1/chat/completions` * [Responses](/api-reference/v1-responses) — `POST /v1/responses` * [Messages](/api-reference/v1-messages) — `POST /v1/messages` ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-build-0.1", "messages": [ {"role": "user", "content": "Generate a clean, minimalist personal website as a single HTML file."} ] }' ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # HappyHorse 1.0 Source: https://docs.unifically.com/models/video/alibaba/happyhorse-1.0-video Video generation with text-to-video, image-to-video, and reference-to-video modes. See parameters, pricing, and API examples. Generate videos using HappyHorse 1.0 with three modes: text-to-video, image-to-video (first frame), and reference-to-video (character consistency using reference images). ## Model ``` alibaba/happyhorse-1.0-video ``` ## Modes | Mode | Description | | - | - | | `t2v` | Generate video from a text prompt | | `i2v` | Generate video from a first frame image | | `r2v` | Generate video from reference images. Use `characterN` in prompt to reference them | ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `mode` | string | No | `"t2v"` | `"t2v"`, `"i2v"`, or `"r2v"` | | `prompt` | string | No | `""` | Text prompt describing the desired video. Supports any language. Max 5,000 non-Chinese characters or 2,500 Chinese characters; excess is truncated | | `first_frame_url` | string | No | `null` | URL of the first frame image for I2V mode | | `reference_image_urls` | string\[] | No | `null` | Reference image URLs for R2V mode (1-9). Use `characterN` in prompt to reference them | | `ratio` | string | No | `null` | Aspect ratio (T2V/R2V only): `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"3:4"` | | `resolution` | string | No | `"1080P"` | `"720P"` or `"1080P"` | | `duration` | integer | No | `5` | Output duration in seconds (3-15) | | `watermark` | boolean | No | `false` | Add watermark to the output | | `seed` | integer | No | `null` | Random seed for reproducible generation (0-2147483647) | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/happyhorse-1.0-video", "input": { "mode": "t2v", "prompt": "A golden retriever running through a field of wildflowers at sunset", "resolution": "1080P", "ratio": "16:9", "duration": 5 } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/happyhorse-1.0-video", "input": { "mode": "i2v", "prompt": "The camera slowly zooms out as the scene comes to life", "first_frame_url": "https://example.com/landscape.png", "resolution": "1080P", "duration": 10 } }' ``` ## Example - Reference-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/happyhorse-1.0-video", "input": { "mode": "r2v", "prompt": "character1 walks confidently through a busy city street", "reference_image_urls": ["https://example.com/person.png"], "resolution": "1080P", "ratio": "16:9", "duration": 8 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # HappyHorse Video Edit Source: https://docs.unifically.com/models/video/alibaba/happyhorse-1.0-video-edit Edit existing HappyHorse videos with optional reference images for style guidance, including parameters, pricing details, and complete API examples. Edit an existing video using HappyHorse Video Edit. Supports reference images for style guidance. This is a separate model from the HappyHorse generation models (`alibaba/happyhorse-1.0-video`, `alibaba/happyhorse-1.1-video`). ## Model ``` alibaba/happyhorse-1.0-video-edit ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | — | Text prompt describing the intended edit. Supports any language. Max 5,000 non-Chinese characters or 2,500 Chinese characters; excess is truncated | | `video_url` | string | Yes | — | URL of the source video to edit | | `reference_image_urls` | string\[] | No | `null` | Reference image URLs for style guidance (max 5) | | `audio_setting` | string | No | `"auto"` | Audio handling mode: `"auto"` (model decides) or `"origin"` (keep original audio) | | `resolution` | string | No | `"1080P"` | `"720P"` or `"1080P"` | | `watermark` | boolean | No | `false` | Add watermark to the output | | `seed` | integer | No | `null` | Random seed for reproducible generation (0-2147483647) | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Basic Video Edit ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/happyhorse-1.0-video-edit", "input": { "prompt": "Convert the scene to a watercolor painting style", "video_url": "https://example.com/scene.mp4", "resolution": "1080P" } }' ``` ## Example - With Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/happyhorse-1.0-video-edit", "input": { "prompt": "Apply the visual style from the reference image to the entire video", "video_url": "https://example.com/clip.mp4", "reference_image_urls": ["https://example.com/style.png"], "audio_setting": "origin" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # HappyHorse 1.1 Source: https://docs.unifically.com/models/video/alibaba/happyhorse-1.1-video Video generation with text-to-video, image-to-video, and reference-to-video modes. See parameters, pricing, and API examples. Generate videos using HappyHorse 1.1 with three modes: text-to-video, image-to-video (first frame), and reference-to-video (character consistency using reference images). ## Model ``` alibaba/happyhorse-1.1-video ``` ## Modes | Mode | Description | | - | - | | `t2v` | Generate video from a text prompt | | `i2v` | Generate video from a first frame image | | `r2v` | Generate video from reference images. Use `[Image N]` in prompt to reference them (order matches `reference_image_urls`) | ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `mode` | string | No | `"t2v"` | `"t2v"`, `"i2v"`, or `"r2v"` | | `prompt` | string | No | `""` | Text prompt describing the desired video | | `first_frame_url` | string | No | `null` | URL of the first frame image for I2V mode | | `reference_image_urls` | string\[] | No | `null` | Reference image URLs for R2V mode (1-9). Use `[Image N]` in prompt to reference them | | `ratio` | string | No | `null` | Aspect ratio (T2V/R2V only): `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"3:4"`, `"4:5"`, `"5:4"`, `"9:21"`, `"21:9"` | | `resolution` | string | No | `"1080P"` | `"720P"` or `"1080P"` | | `duration` | integer | No | `5` | Output duration in seconds (3-15) | | `watermark` | boolean | No | `false` | Add watermark to the output | | `seed` | integer | No | `null` | Random seed for reproducible generation (0-2147483647) | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/happyhorse-1.1-video", "input": { "mode": "t2v", "prompt": "A golden retriever running through a field of wildflowers at sunset", "resolution": "1080P", "ratio": "16:9", "duration": 5 } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/happyhorse-1.1-video", "input": { "mode": "i2v", "prompt": "The camera slowly zooms out as the scene comes to life", "first_frame_url": "https://example.com/landscape.png", "resolution": "1080P", "duration": 10 } }' ``` ## Example - Reference-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/happyhorse-1.1-video", "input": { "mode": "r2v", "prompt": "[Image 1] walks confidently through a busy city street", "reference_image_urls": ["https://example.com/person.png"], "resolution": "1080P", "ratio": "16:9", "duration": 8 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Wan 2.2 Flash Source: https://docs.unifically.com/models/video/alibaba/wan-2.2-flash-video Fast silent video generation with text-to-video and image-to-video. See supported inputs, parameters, pricing, response fields, and API examples. Generate AI videos using Wan 2.2 Flash, a faster version of Wan 2.2. Produces silent video only. I2V supports 720p in addition to 480p and 1080p. ## Model ``` alibaba/wan-2.2-flash-video ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the video | | `mode` | string | No | `t2v` or `i2v` (default: `t2v`) | | `start_image_url` | string | No | First-frame image URL (required for `i2v`) | | `negative_prompt` | string | No | What to avoid in the video | | `resolution` | string | No | `480p`, `720p` (I2V only), or `1080p` (default: `480p`) | | `duration` | integer | No | Fixed at `5` seconds | | `prompt_extend` | boolean | No | Intelligent prompt rewriting (default: `true`) | | `watermark` | boolean | No | Add watermark (default: `false`) | | `seed` | integer | No | Seed for reproducibility | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | Wan 2.2 Flash produces silent video only. `720p` resolution is only available in I2V mode. ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.2-flash-video", "input": { "prompt": "A bird taking flight from a tree branch", "mode": "t2v", "resolution": "1080p" } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.2-flash-video", "input": { "prompt": "A bird taking flight", "mode": "i2v", "start_image_url": "https://example.com/bird.jpg", "resolution": "720p" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Wan 2.2 Source: https://docs.unifically.com/models/video/alibaba/wan-2.2-video Silent video generation with text-to-video and image-to-video. See supported inputs, parameters, pricing, response fields, and API examples. Generate AI videos using Wan 2.2 with text-to-video and image-to-video capabilities. Produces silent video only at 480p or 1080p resolution. ## Model ``` alibaba/wan-2.2-video ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the video | | `mode` | string | No | `t2v` or `i2v` (default: `t2v`) | | `start_image_url` | string | No | First-frame image URL (required for `i2v`) | | `negative_prompt` | string | No | What to avoid in the video | | `resolution` | string | No | `480p` or `1080p` (default: `480p`) | | `duration` | integer | No | Fixed at `5` seconds | | `prompt_extend` | boolean | No | Intelligent prompt rewriting (default: `true`) | | `watermark` | boolean | No | Add watermark (default: `false`) | | `seed` | integer | No | Seed for reproducibility | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | Wan 2.2 produces silent video only. `audio`, `audio_url`, `video_urls`, and `multi_prompt` are not supported. ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.2-video", "input": { "prompt": "A street musician plays guitar in a vintage subway station", "mode": "t2v", "resolution": "1080p" } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.2-video", "input": { "prompt": "Gentle waves lapping against the shore", "mode": "i2v", "start_image_url": "https://example.com/beach.jpg", "resolution": "480p" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Wan 2.5 Source: https://docs.unifically.com/models/video/alibaba/wan-2.5-video Video generation with audio sync and flexible resolution. See supported inputs, parameters, pricing, response fields, and API examples. Generate AI videos using Wan 2.5 with text-to-video and image-to-video capabilities. Supports 480p to 1080p resolution, 5-10 second videos, and automatic audio generation. ## Model ``` alibaba/wan-2.5-video ``` ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the video | | `mode` | string | No | `t2v` or `i2v` (default: `t2v`) | | `start_image_url` | string | No | First-frame image URL (required for `i2v`) | | `audio_url` | string | No | Custom audio URL for audio-video sync | | `negative_prompt` | string | No | What to avoid in the video | | `resolution` | string | No | `480p`, `720p`, or `1080p` (default: `720p`) | | `duration` | integer | No | `5` or `10` seconds (default: `5`) | | `prompt_extend` | boolean | No | Intelligent prompt rewriting (default: `true`) | | `watermark` | boolean | No | Add watermark (default: `false`) | | `audio` | boolean | No | Auto-generate audio. Set `false` for silent video (default: `true`) | | `seed` | integer | No | Seed for reproducibility | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | `video_urls` and `multi_prompt` are not supported on Wan 2.5. For reference-to-video or multi-shot, use [Wan 2.6](/models/video/alibaba/wan-2.6-video). ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.5-video", "input": { "prompt": "Sunset over ocean waves", "mode": "t2v", "resolution": "1080p", "duration": 10 } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.5-video", "input": { "prompt": "Person walking through a forest", "mode": "i2v", "start_image_url": "https://example.com/person.jpg", "resolution": "720p", "duration": 10 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Wan 2.6 Flash Source: https://docs.unifically.com/models/video/alibaba/wan-2.6-flash-video Fast video generation with audio, multi-shot, and reference-to-video support. See parameters, pricing, and API examples. Generate AI videos using Wan 2.6 Flash with the same capabilities as Wan 2.6 but faster and cheaper. Supports text-to-video, image-to-video, reference-to-video (character consistency), and multi-shot narratives with audio generation. ## Model ``` alibaba/wan-2.6-flash-video ``` ## Modes Set `mode` explicitly to select generation type: * `t2v` (default) — text-to-video * `i2v` — image-to-video (requires `start_image_url`) * `r2v` — reference-to-video (requires `video_urls`) ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the video. For R2V, use `character1`, `character2`, etc. matching `video_urls` order | | `mode` | string | No | `t2v`, `i2v`, or `r2v` (default: `t2v`) | | `start_image_url` | string | No | First-frame image URL for I2V mode (JPEG, PNG, BMP, WEBP) | | `video_urls` | array | No | Reference image/video URLs for R2V mode. Up to 5 (max 3 videos). Each = one character | | `audio_url` | string | No | Custom audio URL for audio-video sync (wav/mp3, max 15MB, 3-30s) | | `multi_prompt` | array | No | Multi-shot segments `[{prompt, duration}]`. Auto-sets shot type and calculates total duration | | `negative_prompt` | string | No | What to avoid in the video (max 500 chars). Ignored for R2V | | `resolution` | string | No | `720p` or `1080p` (default: `720p`) | | `duration` | integer | No | Video length in seconds, 2-15s (R2V: 2-10s). Overridden by `multi_prompt` if set (default: `5`) | | `prompt_extend` | boolean | No | Intelligent prompt rewriting (default: `true`) | | `watermark` | boolean | No | Add watermark (default: `false`) | | `audio` | boolean | No | Auto-generate audio. Set `false` for silent video (default: `true`) | | `seed` | integer | No | Seed for reproducibility. Not supported for R2V | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-flash-video", "input": { "prompt": "A cat running on the grass", "mode": "t2v", "resolution": "720p", "duration": 5 } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-flash-video", "input": { "prompt": "The camera slowly pans up from below the sea turtle", "mode": "i2v", "start_image_url": "https://example.com/turtle.jpg", "resolution": "720p", "duration": 10 } }' ``` ## Example - Reference-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-flash-video", "input": { "prompt": "character1 gives an enthusiastic product introduction to camera", "mode": "r2v", "video_urls": ["https://example.com/presenter.mp4"], "duration": 5 } }' ``` ## Example - Multi-Shot ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-flash-video", "input": { "prompt": "Cinematic detective story", "multi_prompt": [ {"prompt": "Wide shot of rainy New York streets, neon lights", "duration": 5}, {"prompt": "Close-up of detective walking into an old building", "duration": 5} ], "resolution": "1080p" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Wan 2.6 Source: https://docs.unifically.com/models/video/alibaba/wan-2.6-video Advanced video generation with audio, multi-shot, and reference-to-video support. See parameters, pricing, and API examples. Generate AI videos using Wan 2.6 with support for text-to-video, image-to-video, reference-to-video (character consistency), and multi-shot narratives. Includes automatic audio generation. ## Model ``` alibaba/wan-2.6-video ``` ## Modes Set `mode` explicitly to select generation type: * `t2v` (default) — text-to-video * `i2v` — image-to-video (requires `start_image_url`) * `r2v` — reference-to-video (requires `video_urls`) ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text description of the video. For R2V, use `character1`, `character2`, etc. matching `video_urls` order | | `mode` | string | No | `t2v`, `i2v`, or `r2v` (default: `t2v`) | | `start_image_url` | string | No | First-frame image URL for I2V mode (JPEG, PNG, BMP, WEBP) | | `video_urls` | array | No | Reference image/video URLs for R2V mode. Up to 5 (max 3 videos). Each = one character | | `audio_url` | string | No | Custom audio URL for audio-video sync (wav/mp3, max 15MB, 3-30s) | | `multi_prompt` | array | No | Multi-shot segments `[{prompt, duration}]`. Auto-sets shot type and calculates total duration | | `negative_prompt` | string | No | What to avoid in the video (max 500 chars). Ignored for R2V | | `resolution` | string | No | `720p` or `1080p` (default: `720p`) | | `duration` | integer | No | Video length in seconds, 2-15s (R2V: 2-10s). Overridden by `multi_prompt` if set (default: `5`) | | `prompt_extend` | boolean | No | Intelligent prompt rewriting (default: `true`) | | `watermark` | boolean | No | Add watermark (default: `false`) | | `audio` | boolean | No | Auto-generate audio. Set `false` for silent video (default: `true`) | | `seed` | integer | No | Seed for reproducibility. Not supported for R2V | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-video", "input": { "prompt": "A cinematic shot of a red fox walking through a misty forest at dawn", "mode": "t2v", "resolution": "720p", "duration": 5 } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-video", "input": { "prompt": "The camera slowly pans up from below the sea turtle", "mode": "i2v", "start_image_url": "https://example.com/turtle.jpg", "resolution": "720p", "duration": 10 } }' ``` ## Example - Reference-to-Video (Single Character) ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-video", "input": { "prompt": "character1 gives an enthusiastic product introduction to camera", "mode": "r2v", "video_urls": ["https://example.com/presenter.mp4"], "duration": 5 } }' ``` ## Example - Reference-to-Video (Multi-Character) ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-video", "input": { "prompt": "character1 says to character2: I will rely on you tomorrow! character2 replies: You can count on me!", "mode": "r2v", "video_urls": ["https://example.com/person-a.mp4", "https://example.com/person-b.mp4"], "duration": 10 } }' ``` ## Example - Multi-Shot ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-video", "input": { "prompt": "Cinematic detective story", "multi_prompt": [ {"prompt": "Wide shot of rainy New York streets, neon lights", "duration": 5}, {"prompt": "Close-up of detective walking into an old building", "duration": 5} ], "resolution": "1080p" } }' ``` ## Example - Image-to-Video with Custom Audio ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-video", "input": { "prompt": "A graffiti character raps energetically under a bridge", "mode": "i2v", "start_image_url": "https://example.com/graffiti.png", "audio_url": "https://example.com/rap.mp3", "duration": 10 } }' ``` ## Example - Silent Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.6-video", "input": { "prompt": "A cat running on the grass", "audio": false, "duration": 5 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Wan 2.7 Source: https://docs.unifically.com/models/video/alibaba/wan-2.7-video Unified video generation with text-to-video, image-to-video, and reference-to-video modes. See parameters, pricing, and API examples. Generate videos using Wan 2.7 with three modes: text-to-video, image-to-video (first frame, keyframes, continuation, lip-sync), and reference-to-video (character/object consistency). ## Model ``` alibaba/wan-2.7-video ``` ## Modes | Mode | Description | | - | - | | `t2v` | Generate video from a text prompt. Multi-shot via natural language. | | `i2v` | Generate video from a first frame, first + last frames, or continue an existing video. Optional driving audio. | | `r2v` | Generate video from reference images/videos. Use "Image 1"/"Video 1" identifiers in prompt. | ## Common Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `mode` | string | No | `"t2v"` | `"t2v"`, `"i2v"`, or `"r2v"` | | `prompt` | string | Depends | `""` | Text prompt (max 5000 chars). Required for T2V and R2V | | `negative_prompt` | string | No | `""` | What to avoid (max 500 chars) | | `resolution` | string | No | `"1080P"` | `"720P"` or `"1080P"` | | `duration` | integer | No | `5` | Output duration in seconds (2-15) | | `prompt_extend` | boolean | No | `true` | LLM-based prompt rewriting. Improves short prompts but adds latency | | `watermark` | boolean | No | `false` | Add "AI Generated" watermark in lower-right corner | | `seed` | integer | No | `null` | Random seed (0-2147483647) | *** ## T2V Mode ### Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `audio_url` | string | No | `null` | Audio file URL. Formats: WAV, MP3. Duration: 2-30s. Max 15MB. Truncated to `duration` if longer | | `ratio` | string | No | `"16:9"` | Aspect ratio: `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"3:4"` | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ### Multi-shot Control shot structure using natural language in the prompt: * **Single shot:** "Generate a single-shot video" * **Multi-shot:** "Generate a multi-shot video" or describe shots with timestamps (e.g., "Shot 1 \[0-3 seconds] wide shot: Rainy New York street at night") * **Default:** If unspecified, the model interprets the prompt content ### Example - Basic Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "t2v", "prompt": "A kitten running in the moonlight", "resolution": "720P", "ratio": "16:9" } }' ``` ### Example - Multi-shot Narrative ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "t2v", "prompt": "A tense detective story. Shot 1 [0-3 seconds] wide shot: Rainy New York street at night. Shot 2 [3-6 seconds] medium shot: The detective enters an old building.", "resolution": "720P", "ratio": "16:9", "duration": 6 } }' ``` ### Example - With Audio File ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "t2v", "prompt": "A cartoon kitten general stands bravely on a cliff", "audio_url": "https://example.com/epic.mp3", "resolution": "1080P", "ratio": "16:9", "duration": 10 } }' ``` *** ## I2V Mode ### Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `first_frame_url` | string | Depends | `null` | First frame image URL. Formats: JPEG, JPG, PNG, BMP, WEBP. Resolution: 240-8000px. Max 20MB | | `last_frame_url` | string | No | `null` | Last frame image URL. Same format limits. Requires `first_frame_url` | | `video_url` | string | Depends | `null` | Video to continue (MP4/MOV, 2-10s, max 100MB). Mutually exclusive with `first_frame_url`/`last_frame_url` | | `audio_url` | string | No | `null` | Driving audio URL for lip-sync / action timing. Formats: WAV, MP3. Duration: 2-30s. Max 15MB | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ### Validation Rules * At least one of `first_frame_url` or `video_url` is required * `last_frame_url` requires `first_frame_url` * `video_url` (continuation) is mutually exclusive with `first_frame_url` / `last_frame_url` ### Example - First Frame to Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "i2v", "prompt": "A kitten runs across the grass", "first_frame_url": "https://example.com/cat.png", "resolution": "720P", "duration": 10 } }' ``` ### Example - First + Last Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "i2v", "prompt": "A small black cat looks up at the sky curiously", "first_frame_url": "https://example.com/first.png", "last_frame_url": "https://example.com/last.png", "duration": 10, "prompt_extend": false } }' ``` ### Example - Video Continuation Continue an existing video clip. If the input is 3s and `duration` is 15, the model generates 12s of new content. The final output is 15s. ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "i2v", "prompt": "A girl takes a selfie in the mirror, then leaves with her backpack", "video_url": "https://example.com/clip.mp4", "duration": 15 } }' ``` *** ## R2V Mode ### Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `reference_image_urls` | string\[] | Depends | `null` | Reference images for characters/objects/scenes. Each must contain a single subject. Formats: JPEG, JPG, PNG, BMP, WEBP. Max 20MB each | | `reference_video_urls` | string\[] | Depends | `null` | Reference videos for characters. Each must contain a single subject. Formats: MP4, MOV. Duration: 1-30s. Max 100MB each | | `first_frame_url` | string | No | `null` | First frame image for scene control. Overrides `ratio` | | `reference_voice_url` | string | No | `null` | Audio URL for voice timbre override. Formats: WAV, MP3. Duration: 1-10s. Max 15MB | | `ratio` | string | No | `"16:9"` | Aspect ratio: `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"3:4"`. Ignored when `first_frame_url` is set | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ### Prompt Identifiers Use "Image 1", "Image 2" to reference images and "Video 1", "Video 2" to reference videos. Images and videos are numbered separately based on array order. If there is only one reference, you can use "the reference image" or "the reference video". ### Validation Rules * At least 1 `reference_image_urls` or `reference_video_urls` is required * Total images + videos must not exceed 5 ### Example - Multi-Reference ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "r2v", "prompt": "Video 2 holds Image 3 and plays a soothing country ballad, while Video 1 smiles and watches", "reference_video_urls": [ "https://example.com/person1.mp4", "https://example.com/person2.mp4" ], "reference_image_urls": [ "https://example.com/guitar.png" ], "resolution": "720P", "duration": 10, "prompt_extend": false } }' ``` ### Example - Single Reference Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video", "input": { "mode": "r2v", "prompt": "The reference image character walks through a sunlit garden", "reference_image_urls": ["https://example.com/person.png"], "resolution": "1080P", "ratio": "16:9", "duration": 5 } }' ``` *** ## Input Limits | Asset | Formats | Resolution | Duration | File Size | | - | - | - | - | - | | Audio (T2V / I2V driving) | WAV, MP3 | — | 2-30s | 15MB | | Voice timbre (R2V) | WAV, MP3 | — | 1-10s | 15MB | | First/last frame image | JPEG, JPG, PNG, BMP, WEBP | 240-8000px, ratio 1:8 to 8:1 | — | 20MB | | Input video (I2V continuation) | MP4, MOV | 240-4096px, ratio 1:8 to 8:1 | 2-10s | 100MB | | Reference video (R2V) | MP4, MOV | 240-4096px, ratio 1:8 to 8:1 | 1-30s | 100MB | | Reference image (R2V) | JPEG, JPG, PNG, BMP, WEBP | 240-8000px, ratio 1:8 to 8:1 | — | 20MB | ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Wan 2.7 Video Edit Source: https://docs.unifically.com/models/video/alibaba/wan-2.7-video-edit Edit or style-transfer existing videos with optional reference images. See supported inputs, parameters, pricing, response fields, and API examples. Edit or style-transfer an existing video using Wan 2.7 Video Edit. Supports reference images for content transfer. This is a separate model from `alibaba/wan-2.7-video`. ## Model ``` alibaba/wan-2.7-video-edit ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | No | `""` | Text prompt describing the desired edit (max 5000 chars) | | `negative_prompt` | string | No | `""` | What to avoid (max 500 chars) | | `video_url` | string | Yes | — | Video to edit (MP4/MOV, 2-10s, max 100MB) | | `reference_image_urls` | string\[] | No | `null` | Up to 4 reference images for style/content transfer. Formats: JPEG, JPG, PNG, BMP, WEBP. Max 20MB each | | `resolution` | string | No | `"1080P"` | `"720P"` or `"1080P"` | | `duration` | integer | No | `null` | Output duration in seconds (2-10). Omit to keep input duration | | `ratio` | string | No | `null` | Force output aspect ratio: `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"3:4"`. Omit to match input video | | `audio_setting` | string | No | `"auto"` | `"auto"` (model decides based on prompt) or `"origin"` (keep original audio unchanged) | | `prompt_extend` | boolean | No | `true` | LLM-based prompt rewriting. Improves short prompts but adds latency | | `watermark` | boolean | No | `false` | Add "AI Generated" watermark in lower-right corner | | `seed` | integer | No | `null` | Random seed (0-2147483647) | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Style Transfer ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video-edit", "input": { "prompt": "Convert the entire scene to a claymation style", "video_url": "https://example.com/scene.mp4", "resolution": "720P" } }' ``` ## Example - With Reference Image ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-2.7-video-edit", "input": { "prompt": "Replace the clothes of the girl with the clothes from the image", "video_url": "https://example.com/girl.mp4", "reference_image_urls": ["https://example.com/outfit.png"] } }' ``` ## Input Limits | Asset | Formats | Resolution | Duration | File Size | | - | - | - | - | - | | Input video | MP4, MOV | 240-4096px, ratio 1:8 to 8:1 | 2-10s | 100MB | | Reference image | JPEG, JPG, PNG, BMP, WEBP | 240-8000px, ratio 1:8 to 8:1 | — | 20MB | ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Wan 3.0 Source: https://docs.unifically.com/models/video/alibaba/wan-3.0-video Generate videos up to 30 seconds with audio from text, images, references, documents, or web pages. See parameters, pricing, and API examples. Generate videos up to 30 seconds using Wan 3.0 with three modes: text-to-video, image-to-video (first frame or first + last frame), and reference-to-video (images, videos, audio, documents, or web pages as references). Audio generation is on by default. ## Model ``` alibaba/wan-3.0-video ``` ## Modes | Mode | Description | | - | - | | `t2v` | Generate video from a text prompt. | | `i2v` | Generate video from a first frame, or a first + last frame pair. | | `r2v` | Generate video from reference images, videos, audio clips, a document, or a web page link. | ## Common Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `mode` | string | No | `"t2v"` | `"t2v"`, `"i2v"`, or `"r2v"` | | `prompt` | string | Depends | `""` | Text prompt (max 20,000 chars). Required for T2V and R2V | | `resolution` | string | No | `"1080P"` | `"480P"`, `"720P"`, or `"1080P"` | | `ratio` | string | No | `"adaptive"` | Aspect ratio (T2V/R2V): `"adaptive"`, `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, `"9:16"` | | `duration` | integer | No | `5` | Output duration in seconds (2-30) | | `audio` | boolean | No | `true` | Generate an audio track for the video | | `watermark` | boolean | No | `false` | Add "AI Generated" watermark to the output | | `seed` | integer | No | `null` | Random seed (0-2147483647) | *** ## T2V Mode Prompt only — no media inputs. ### Example - Basic Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-3.0-video", "input": { "mode": "t2v", "prompt": "A kitten running in the moonlight, cinematic lighting", "resolution": "1080P", "ratio": "16:9", "duration": 10 } }' ``` ### Example - 30-Second Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-3.0-video", "input": { "mode": "t2v", "prompt": "A day in the life of a lighthouse keeper: sunrise over the sea, morning chores, a storm rolling in, and the beam cutting through the night", "resolution": "720P", "ratio": "16:9", "duration": 30 } }' ``` *** ## I2V Mode ### Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `first_frame_url` | string | Yes | `null` | First frame image URL. Formats: JPEG, JPG, PNG, BMP, WEBP. Resolution: 240-8000px. Max 20MB | | `last_frame_url` | string | No | `null` | Last frame image URL. Same format limits. Requires `first_frame_url` | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | Reference, file, and link inputs cannot be combined with I2V frames. ### Example - First Frame to Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-3.0-video", "input": { "mode": "i2v", "prompt": "The cat stretches and walks toward the camera", "first_frame_url": "https://example.com/cat.png", "resolution": "1080P", "duration": 8 } }' ``` ### Example - First + Last Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-3.0-video", "input": { "mode": "i2v", "prompt": "A smooth transition from day to night over the city skyline", "first_frame_url": "https://example.com/day.png", "last_frame_url": "https://example.com/night.png", "duration": 10 } }' ``` *** ## R2V Mode ### Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `reference_image_urls` | string\[] | Depends | `null` | Reference images. Up to 10. Formats: JPEG, JPG, PNG, BMP, WEBP. Max 20MB each | | `reference_video_urls` | string\[] | Depends | `null` | Reference videos. Up to 5 clips, 15 seconds total. Formats: MP4, MOV. Max 100MB each | | `reference_audio_urls` | string\[] | Depends | `null` | Reference audio clips. Up to 5 clips, 15 seconds total | | `file_url` | string | Depends | `null` | Document URL (PDF, DOCX, PPTX, XLSX, and more). Max 100MB, 50 pages | | `link_url` | string | Depends | `null` | Web page URL to generate the video from | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ### Validation Rules * At least one reference URL, `file_url`, or `link_url` is required * `first_frame_url` / `last_frame_url` cannot be combined with R2V inputs ### Example - Character References ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-3.0-video", "input": { "mode": "r2v", "prompt": "The character from the reference image walks through a sunlit garden and greets the camera", "reference_image_urls": ["https://example.com/person.png"], "resolution": "1080P", "ratio": "16:9", "duration": 10 } }' ``` ### Example - Document to Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-3.0-video", "input": { "mode": "r2v", "prompt": "Turn this pitch deck into a 20-second product explainer video with narration", "file_url": "https://example.com/pitch-deck.pdf", "resolution": "720P", "ratio": "16:9", "duration": 20 } }' ``` *** ## Input Limits | Asset | Formats | Resolution | Duration | File Size | | - | - | - | - | - | | First/last frame image | JPEG, JPG, PNG, BMP, WEBP | 240-8000px, ratio up to 8:1 | — | 20MB | | Reference image | JPEG, JPG, PNG, BMP, WEBP | 240-8000px, ratio up to 8:1 | — | 20MB | | Reference video | MP4, MOV | 240-4096px | 1-15s per clip, 15s total | 100MB each | | Reference audio | WAV, MP3 | — | 15s total | — | | Document (`file_url`) | PDF, DOCX, PPTX, XLSX, and more | — | max 50 pages | 100MB | ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Wan 3.0 Prime Source: https://docs.unifically.com/models/video/alibaba/wan-3.0-video-prime Fast Wan 3.0 video generation up to 30 seconds with audio. Same modes and inputs as Wan 3.0, shorter wait times. See parameters, pricing, and API examples. Generate videos up to 30 seconds using Wan 3.0 Prime, the fast variant of Wan 3.0. It takes the same inputs and modes as the standard model — text-to-video, image-to-video, and reference-to-video with images, videos, audio, documents, or web pages — with significantly faster end-to-end generation. ## Model ``` alibaba/wan-3.0-video-prime ``` ## Parameters Wan 3.0 Prime accepts exactly the same parameters as [Wan 3.0](/models/video/alibaba/wan-3.0-video): | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `mode` | string | No | `"t2v"` | `"t2v"`, `"i2v"`, or `"r2v"` | | `prompt` | string | Depends | `""` | Text prompt (max 20,000 chars). Required for T2V and R2V | | `resolution` | string | No | `"1080P"` | `"480P"`, `"720P"`, or `"1080P"` | | `ratio` | string | No | `"adaptive"` | Aspect ratio (T2V/R2V): `"adaptive"`, `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, `"9:16"` | | `duration` | integer | No | `5` | Output duration in seconds (2-30) | | `audio` | boolean | No | `true` | Generate an audio track for the video | | `watermark` | boolean | No | `false` | Add "AI Generated" watermark to the output | | `seed` | integer | No | `null` | Random seed (0-2147483647) | | `first_frame_url` | string | I2V | `null` | First frame image URL (JPEG, JPG, PNG, BMP, WEBP, max 20MB) | | `last_frame_url` | string | No | `null` | Last frame image URL. Requires `first_frame_url` | | `reference_image_urls` | string\[] | R2V | `null` | Reference images. Up to 10 | | `reference_video_urls` | string\[] | R2V | `null` | Reference videos. Up to 5 clips, 15 seconds total | | `reference_audio_urls` | string\[] | R2V | `null` | Reference audio clips. Up to 5 clips, 15 seconds total | | `file_url` | string | R2V | `null` | Document URL (PDF, DOCX, PPTX, XLSX, and more). Max 100MB, 50 pages | | `link_url` | string | R2V | `null` | Web page URL to generate the video from | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | Mode rules, input limits, and validation are identical to [Wan 3.0](/models/video/alibaba/wan-3.0-video). ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-3.0-video-prime", "input": { "mode": "t2v", "prompt": "A surfer rides a huge wave at golden hour, drone shot", "resolution": "1080P", "ratio": "16:9", "duration": 10 } }' ``` ## Example - Image to Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "alibaba/wan-3.0-video-prime", "input": { "mode": "i2v", "prompt": "The product rotates slowly on a turntable with soft studio lighting", "first_frame_url": "https://example.com/product.png", "resolution": "1080P", "duration": 5 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # SeeDance 1.0 Source: https://docs.unifically.com/models/video/bytedance/seedance-1.0 Cost-optimized text-to-video and image-to-video generation. See supported inputs, parameters, pricing, response fields, and API examples. Generate videos using ByteDance SeeDance 1.0 with text-to-video and image-to-video workflows. Does not support first/last frame. Supports 4–12 second durations at 480p or 720p. ## Model ``` bytedance/seedance-1.0 ``` ## Request types | Request type | Required inputs | Optional inputs | Notes | | - | - | - | - | | Text-to-video | `prompt` | `aspect_ratio`, `duration`, `resolution`, `camera_fixed`, `seed` | No frame URLs | | Image-to-video | `first_frame_url` | `prompt`, `duration`, `resolution`, `camera_fixed`, `seed` | `prompt` optional. Does not support `last_frame_url` | ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Conditional | `""` | Text prompt (max 5000 chars). **Required** for text-to-video. **Optional** for image-to-video when `first_frame_url` is set | | `aspect_ratio` | string | No | `"16:9"` | `1:1`, `3:4`, `4:3`, `9:16`, `16:9`, `21:9` | | `duration` | integer | No | `4` | Output duration in seconds (4–12). Sent to provider as `frames = 24 × seconds + 1` | | `resolution` | string | No | `"480p"` | `480p`, `720p` | | `seed` | integer | No | — | Seed for reproducibility. Omit for a random seed. | | `camera_fixed` | boolean | No | `false` | When true, keeps the virtual camera stationary throughout the clip | | `first_frame_url` | string | No | `null` | Start frame image URL for image-to-video. Formats: png, webp, jpeg, gif. Max 30 MB. Dimensions: 300–6000 px (short side). Aspect ratio: 0.4–2.5 | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.0", "input": { "prompt": "A butterfly landing on a flower in slow motion", "aspect_ratio": "1:1", "duration": 5, "resolution": "720p" } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.0", "input": { "prompt": "Gradual zoom into the subject", "first_frame_url": "https://example.com/start.jpg", "duration": 10 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # SeeDance 1.0 Pro Source: https://docs.unifically.com/models/video/bytedance/seedance-1.0-pro First and last frame video generation. See supported inputs, parameters, pricing, response fields, and API examples. Generate videos using ByteDance SeeDance 1.0 Pro for first/last frame workflows. Provide `first_frame_url`, `last_frame_url`, or both. Supports 4–12 second durations at 480p, 720p, or 1080p. ## Model ``` bytedance/seedance-1.0-pro ``` ## Request types | Request type | Required inputs | Optional inputs | Notes | | - | - | - | - | | First/last frame | At least one of `first_frame_url` or `last_frame_url` | `prompt`, `aspect_ratio`, `duration`, `resolution`, `camera_fixed`, `seed` | `prompt` optional | ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | No | `""` | Text prompt (max 5000 chars). Optional | | `aspect_ratio` | string | No | `"16:9"` | `1:1`, `3:4`, `4:3`, `9:16`, `16:9`, `21:9` | | `duration` | integer | No | `4` | Output duration in seconds (4–12). Sent to provider as `frames = 24 × seconds + 1` | | `resolution` | string | No | `"480p"` | `480p`, `720p`, `1080p` | | `seed` | integer | No | — | Seed for reproducibility. Omit for a random seed. | | `camera_fixed` | boolean | No | `false` | When true, keeps the virtual camera stationary throughout the clip | | `first_frame_url` | string | No | `null` | First frame image URL. Formats: png, webp, jpeg, gif. Max 30 MB. Dimensions: 300–6000 px (short side). Aspect ratio: 0.4–2.5 | | `last_frame_url` | string | No | `null` | Last frame image URL. Same format and size limits as `first_frame_url` | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - First & Last Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.0-pro", "input": { "prompt": "Smooth transition between poses", "duration": 10, "resolution": "720p", "first_frame_url": "https://example.com/start.jpg", "last_frame_url": "https://example.com/end.jpg" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # SeeDance 1.0 Pro Fast Source: https://docs.unifically.com/models/video/bytedance/seedance-1.0-pro-fast Fast text-to-video and image-to-video generation. See supported inputs, parameters, pricing, response fields, and API examples. Generate videos using ByteDance SeeDance 1.0 Pro Fast with text-to-video and image-to-video workflows. Does not support first/last frame. Supports 4–12 second durations at 480p, 720p, or 1080p. ## Model ``` bytedance/seedance-1.0-pro-fast ``` ## Request types | Request type | Required inputs | Optional inputs | Notes | | - | - | - | - | | Text-to-video | `prompt` | `aspect_ratio`, `duration`, `resolution`, `camera_fixed`, `seed` | No frame URLs | | Image-to-video | `first_frame_url` | `prompt`, `duration`, `resolution`, `camera_fixed`, `seed` | `prompt` optional. Does not support `last_frame_url` | ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Conditional | `""` | Text prompt (max 5000 chars). **Required** for text-to-video. **Optional** for image-to-video when `first_frame_url` is set | | `aspect_ratio` | string | No | `"16:9"` | `1:1`, `3:4`, `4:3`, `9:16`, `16:9`, `21:9` | | `duration` | integer | No | `4` | Output duration in seconds (4–12). Sent to provider as `frames = 24 × seconds + 1` | | `resolution` | string | No | `"480p"` | `480p`, `720p`, `1080p` | | `seed` | integer | No | — | Seed for reproducibility. Omit for a random seed. | | `camera_fixed` | boolean | No | `false` | When true, keeps the virtual camera stationary throughout the clip | | `first_frame_url` | string | No | `null` | Start frame image URL for image-to-video. Formats: png, webp, jpeg, gif. Max 30 MB. Dimensions: 300–6000 px (short side). Aspect ratio: 0.4–2.5 | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.0-pro-fast", "input": { "prompt": "A person breakdancing in an urban setting", "aspect_ratio": "9:16", "duration": 10, "resolution": "1080p" } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.0-pro-fast", "input": { "prompt": "The subject begins to walk forward slowly", "first_frame_url": "https://example.com/standing.jpg", "duration": 5, "resolution": "720p" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # SeeDance 1.5 Pro Source: https://docs.unifically.com/models/video/bytedance/seedance-1.5-pro Professional video generation with text-to-video, image-to-video, and first/last frame support. See parameters, pricing, and API examples. Generate videos using ByteDance SeeDance 1.5 Pro with text-to-video, image-to-video, and first/last frame workflows. Supports 4–12 second durations at 480p, 720p, or 1080p with synchronized audio generation. ## Model ``` bytedance/seedance-1.5-pro ``` ## Request types | Request type | Required inputs | Optional inputs | Notes | | - | - | - | - | | Text-to-video | `prompt` | `aspect_ratio`, `duration`, `resolution`, `generate_audio`, `seed` | No frame URLs | | Image-to-video | `first_frame_url` | `prompt`, `duration`, `resolution`, `generate_audio`, `seed` | `prompt` optional | | First/last frame | At least one of `first_frame_url` or `last_frame_url` | `prompt`, `duration`, `resolution`, `generate_audio`, `seed` | `prompt` optional when a frame URL is set. Provide `first_frame_url`, `last_frame_url`, or both | ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Conditional | `""` | Text prompt (max 5000 chars). **Required** for text-to-video. **Optional** when a frame URL is set | | `aspect_ratio` | string | No | `"16:9"` | `1:1`, `3:4`, `4:3`, `9:16`, `16:9`, `21:9` | | `duration` | integer | No | `4` | Output duration in seconds (4–12). Sent to provider as `frames = 24 × seconds + 1` | | `resolution` | string | No | `"480p"` | `480p`, `720p`, `1080p` | | `generate_audio` | boolean | No | `true` | Whether to generate synchronized audio for the output video | | `seed` | integer | No | — | Seed for reproducibility. Omit for a random seed. | | `first_frame_url` | string | No | `null` | First frame image URL. Formats: png, webp, jpeg, gif. Max 30 MB. Dimensions: 300–6000 px (short side). Aspect ratio: 0.4–2.5 | | `last_frame_url` | string | No | `null` | Last frame image URL. Same format and size limits as `first_frame_url` | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.5-pro", "input": { "prompt": "A dancer performing an elegant routine on a moonlit stage", "aspect_ratio": "9:16", "duration": 10, "resolution": "1080p" } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.5-pro", "input": { "prompt": "The subject slowly turns to face the camera", "first_frame_url": "https://example.com/portrait.jpg", "duration": 8, "resolution": "720p" } }' ``` ## Example - First & Last Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-1.5-pro", "input": { "prompt": "The car accelerates and drives away into the sunset", "duration": 10, "resolution": "1080p", "first_frame_url": "https://example.com/start.jpg", "last_frame_url": "https://example.com/end.jpg" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # SeeDance 2.0 Fast Source: https://docs.unifically.com/models/video/bytedance/seedance-2.0-fast Speed-optimized video generation with omni-reference support. See supported inputs, parameters, pricing, response fields, and API examples. Generate videos using ByteDance SeeDance 2.0 Fast — the speed-optimized tier. Supports text-to-video, first/last frame, and omni-reference workflows with image, video, and audio references. Output durations are 4–15 seconds at 480p, 720p, 1080p, 2K, or 4K. ## Model ``` bytedance/seedance-2.0-fast ``` ## Request types | Request type | Required inputs | Optional inputs | Notes | | - | - | - | - | | Text-to-video | `prompt` | `aspect_ratio`, `duration`, `resolution`, `generate_audio`, `seed` | No frame or reference URLs | | First/last frame | At least one of `first_frame_url` or `last_frame_url` | `prompt`, `duration`, `resolution`, `generate_audio`, `seed` | `prompt` optional when a frame URL is set. Provide `first_frame_url`, `last_frame_url`, or both | | Omni-reference | `prompt`, at least one of `image_urls` or `video_urls` | `video_urls`, `audio_urls`, `duration`, `resolution`, `generate_audio`, `seed` | Reference assets in `prompt` as `@Image1`..`@Image9`, `@Video1`..`@Video3`, `@Audio1`..`@Audio3`. `audio_urls` requires at least one `image_urls` or `video_urls` entry | ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Conditional | `""` | Text prompt (max 5000 chars). **Required** for text-only requests and when `image_urls`, `video_urls`, or `audio_urls` are present. **Optional** when a frame URL is set. Reference assets as `@Image1`..`@Image9`, `@Video1`..`@Video3`, `@Audio1`..`@Audio3` | | `aspect_ratio` | string | No | `"adaptive"` | `adaptive`, `1:1`, `3:4`, `4:3`, `9:16`, `16:9`, `21:9` | | `duration` | integer | No | `4` | Output duration in seconds (4–15). Sent to provider as `frames = 24 × seconds + 1` (97–361) | | `resolution` | string | No | `"480p"` | `480p`, `720p`, `1080p`, `2k`, `4k` | | `generate_audio` | boolean | No | `true` | Whether to generate synchronized audio for the output video | | `seed` | integer | No | — | Seed for reproducibility. Omit for a random seed. | | `first_frame_url` | string | No | `null` | First frame image URL. Formats: png, webp, jpeg, gif. Max 30 MB. Dimensions: 300–6000 px (short side). Aspect ratio: 0.4–2.5 | | `last_frame_url` | string | No | `null` | Last frame image URL. Same format/size constraints as `first_frame_url` | | `image_urls` | string\[] | No | `null` | Reference image URLs (max 9). Formats: png, webp, jpeg, jpg, gif. Max 30 MB each. Dimensions: 300–6000 px. Aspect ratio: 0.4–2.5. Reference as `@Image1`, `@Image2`, … | | `video_urls` | string\[] | No | `null` | Reference video URLs (max 3). Formats: mp4, mov. Max 50 MB each. Duration: 2.0–15.2 s per clip, combined total ≤ 15.2 s. Resolution: 480p–1080p. Dimensions: 300–6000 px. Aspect ratio: 0.4–2.5. Reference as `@Video1`, `@Video2`, … | | `audio_urls` | string\[] | No | `null` | Reference audio URLs (max 3). Requires at least one `image_urls` or `video_urls` entry. Formats: wav, mp3. Max 15 MB each. Duration: 2–15 s per clip, combined total ≤ 15 s. Reference as `@Audio1`, `@Audio2`, … | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-fast", "input": { "prompt": "A drone shot flying over a neon-lit cyberpunk city at night", "aspect_ratio": "16:9", "duration": 5, "resolution": "720p" } }' ``` ## Example - First & Last Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-fast", "input": { "prompt": "Smooth camera pan from left to right", "duration": 8, "first_frame_url": "https://example.com/start.jpg", "last_frame_url": "https://example.com/end.jpg" } }' ``` ## Example - Omni-Reference ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-fast", "input": { "prompt": "Transform the background of @Video1 to match the scenery in @Image1", "duration": 8, "image_urls": [ "https://example.com/scenery.jpg" ], "video_urls": [ "https://example.com/clip.mp4" ] } }' ``` References are numbered in order: first image = `@Image1`, first video = `@Video1`, first audio = `@Audio1`, etc. Images, videos, and audio are numbered independently. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # SeeDance 2.0 Mini Source: https://docs.unifically.com/models/video/bytedance/seedance-2.0-mini Cost-optimized video generation with omni-reference support. See supported inputs, parameters, pricing, response fields, and API examples. Generate videos using ByteDance SeeDance 2.0 Mini — the cost-optimized tier. Supports text-to-video, first/last frame, and omni-reference workflows with image, video, and audio references. Output durations are 4–15 seconds at 480p, 720p, 1080p, 2K, or 4K. ## Model ``` bytedance/seedance-2.0-mini ``` ## Request types | Request type | Required inputs | Optional inputs | Notes | | - | - | - | - | | Text-to-video | `prompt` | `aspect_ratio`, `duration`, `resolution`, `generate_audio`, `seed` | No frame or reference URLs | | First/last frame | At least one of `first_frame_url` or `last_frame_url` | `prompt`, `duration`, `resolution`, `generate_audio`, `seed` | `prompt` optional when a frame URL is set. Provide `first_frame_url`, `last_frame_url`, or both | | Omni-reference | `prompt`, at least one of `image_urls` or `video_urls` | `video_urls`, `audio_urls`, `duration`, `resolution`, `generate_audio`, `seed` | Reference assets in `prompt` as `@Image1`..`@Image9`, `@Video1`..`@Video3`, `@Audio1`..`@Audio3`. `audio_urls` requires at least one `image_urls` or `video_urls` entry | ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Conditional | `""` | Text prompt (max 5000 chars). **Required** for text-only requests and when `image_urls`, `video_urls`, or `audio_urls` are present. **Optional** when a frame URL is set. Reference assets as `@Image1`..`@Image9`, `@Video1`..`@Video3`, `@Audio1`..`@Audio3` | | `aspect_ratio` | string | No | `"adaptive"` | `adaptive`, `1:1`, `3:4`, `4:3`, `9:16`, `16:9`, `21:9` | | `duration` | integer | No | `4` | Output duration in seconds (4–15). Sent to provider as `frames = 24 × seconds + 1` (97–361) | | `resolution` | string | No | `"480p"` | `480p`, `720p`, `1080p`, `2k`, `4k` | | `generate_audio` | boolean | No | `true` | Whether to generate synchronized audio for the output video | | `seed` | integer | No | — | Seed for reproducibility. Omit for a random seed. | | `first_frame_url` | string | No | `null` | First frame image URL. Formats: png, webp, jpeg, gif. Max 30 MB. Dimensions: 300–6000 px (short side). Aspect ratio: 0.4–2.5 | | `last_frame_url` | string | No | `null` | Last frame image URL. Same format/size constraints as `first_frame_url` | | `image_urls` | string\[] | No | `null` | Reference image URLs (max 9). Formats: png, webp, jpeg, jpg, gif. Max 30 MB each. Dimensions: 300–6000 px. Aspect ratio: 0.4–2.5. Reference as `@Image1`, `@Image2`, … | | `video_urls` | string\[] | No | `null` | Reference video URLs (max 3). Formats: mp4, mov. Max 50 MB each. Duration: 2.0–15.2 s per clip, combined total ≤ 15.2 s. Resolution: 480p–1080p. Dimensions: 300–6000 px. Aspect ratio: 0.4–2.5. Reference as `@Video1`, `@Video2`, … | | `audio_urls` | string\[] | No | `null` | Reference audio URLs (max 3). Requires at least one `image_urls` or `video_urls` entry. Formats: wav, mp3. Max 15 MB each. Duration: 2–15 s per clip, combined total ≤ 15 s. Reference as `@Audio1`, `@Audio2`, … | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-mini", "input": { "prompt": "A drone shot flying over a neon-lit cyberpunk city at night", "aspect_ratio": "16:9", "duration": 5 } }' ``` ## Example - First & Last Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-mini", "input": { "prompt": "Smooth camera pan from left to right", "duration": 8, "first_frame_url": "https://example.com/start.jpg", "last_frame_url": "https://example.com/end.jpg" } }' ``` ## Example - Omni-Reference ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-mini", "input": { "prompt": "Transform the background of @Video1 to match the scenery in @Image1", "duration": 8, "image_urls": [ "https://example.com/scenery.jpg" ], "video_urls": [ "https://example.com/clip.mp4" ] } }' ``` References are numbered in order: first image = `@Image1`, first video = `@Video1`, first audio = `@Audio1`, etc. Images, videos, and audio are numbered independently. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # SeeDance 2.0 Pro Source: https://docs.unifically.com/models/video/bytedance/seedance-2.0-pro Highest-quality video generation with omni-reference support. See supported inputs, parameters, pricing, response fields, and API examples. Generate videos using ByteDance SeeDance 2.0 Pro — the highest quality tier. Supports text-to-video, first/last frame, and omni-reference workflows with image, video, and audio references. Output durations are 4–15 seconds at resolutions up to 4K. ## Model ``` bytedance/seedance-2.0-pro ``` ## Request types | Request type | Required inputs | Optional inputs | Notes | | - | - | - | - | | Text-to-video | `prompt` | `aspect_ratio`, `duration`, `resolution`, `generate_audio`, `seed` | No frame or reference URLs | | First/last frame | At least one of `first_frame_url` or `last_frame_url` | `prompt`, `duration`, `resolution`, `generate_audio`, `seed` | `prompt` optional when a frame URL is set. Provide `first_frame_url`, `last_frame_url`, or both | | Omni-reference | `prompt`, at least one of `image_urls` or `video_urls` | `video_urls`, `audio_urls`, `duration`, `resolution`, `generate_audio`, `seed` | Reference assets in `prompt` as `@Image1`..`@Image9`, `@Video1`..`@Video3`, `@Audio1`..`@Audio3`. `audio_urls` requires at least one `image_urls` or `video_urls` entry | ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Conditional | `""` | Text prompt (max 5000 chars). **Required** for text-only requests and when `image_urls`, `video_urls`, or `audio_urls` are present. **Optional** when a frame URL is set. Reference assets as `@Image1`..`@Image9`, `@Video1`..`@Video3`, `@Audio1`..`@Audio3` | | `aspect_ratio` | string | No | `"adaptive"` | `adaptive`, `1:1`, `3:4`, `4:3`, `9:16`, `16:9`, `21:9` | | `duration` | integer | No | `4` | Output duration in seconds (4–15). Sent to provider as `frames = 24 × seconds + 1` (97–361) | | `resolution` | string | No | `"480p"` | `480p`, `720p`, `1080p`, `4k` | | `generate_audio` | boolean | No | `true` | Whether to generate synchronized audio for the output video | | `seed` | integer | No | — | Seed for reproducibility. Omit for a random seed. | | `first_frame_url` | string | No | `null` | First frame image URL. Formats: png, webp, jpeg, gif. Max 30 MB. Dimensions: 300–6000 px (short side). Aspect ratio: 0.4–2.5 | | `last_frame_url` | string | No | `null` | Last frame image URL. Same format/size constraints as `first_frame_url` | | `image_urls` | string\[] | No | `null` | Reference image URLs (max 9). Formats: png, webp, jpeg, jpg, gif. Max 30 MB each. Dimensions: 300–6000 px. Aspect ratio: 0.4–2.5. Reference as `@Image1`, `@Image2`, … | | `video_urls` | string\[] | No | `null` | Reference video URLs (max 3). Formats: mp4, mov. Max 50 MB each. Duration: 2.0–15.2 s per clip, combined total ≤ 15.2 s. Resolution: 480p–1080p. Dimensions: 300–6000 px. Aspect ratio: 0.4–2.5. Reference as `@Video1`, `@Video2`, … | | `audio_urls` | string\[] | No | `null` | Reference audio URLs (max 3). Requires at least one `image_urls` or `video_urls` entry. Formats: wav, mp3. Max 15 MB each. Duration: 2–15 s per clip, combined total ≤ 15 s. Reference as `@Audio1`, `@Audio2`, … | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-pro", "input": { "prompt": "Cinematic slow-motion shot of a dancer performing on a rain-soaked stage", "aspect_ratio": "16:9", "duration": 10, "resolution": "1080p" } }' ``` ## Example - First & Last Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-pro", "input": { "prompt": "The car accelerates and drives away into the sunset", "duration": 12, "first_frame_url": "https://example.com/start.jpg", "last_frame_url": "https://example.com/end.jpg" } }' ``` ## Example - Omni-Reference ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.0-pro", "input": { "prompt": "Make @Image1 come alive in the style of @Video1", "duration": 8, "image_urls": [ "https://example.com/portrait.jpg" ], "video_urls": [ "https://example.com/animation-style.mp4" ] } }' ``` References are numbered in order: first image = `@Image1`, first video = `@Video1`, first audio = `@Audio1`, etc. Images, videos, and audio are numbered independently. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # SeeDance 2.5 Source: https://docs.unifically.com/models/video/bytedance/seedance-2.5 Long-form multimodal video generation with native audio, references, frame workflows, parameters, responses, and API examples. Generate videos using ByteDance SeeDance 2.5 with text-to-video, first/last frame, and multimodal reference workflows. It supports image, video, and audio references, synchronized native audio, 4–30 second durations, and 480p, 720p, or 1080p output. Want to test ideas cheaply first? [SeeDance 2.5 Draft](/models/video/bytedance/seedance-2.5-draft) makes a 480p draft, then renders the same video natively in 1080p from the same task, without any external upscaler. ## Model ``` bytedance/seedance-2.5 ``` ## Request types | Request type | Required inputs | Optional inputs | Notes | | - | - | - | - | | Text-to-video | `prompt` | `aspect_ratio`, `duration`, `resolution`, `generate_audio`, `seed` | Do not include reference media URLs | | First/last frame | `first_frame_url`, `last_frame_url` | `prompt`, `duration`, `resolution`, `generate_audio`, `seed` | Both frame URLs are required. `aspect_ratio` must be `adaptive` because the output follows the first frame | | Multimodal reference | `prompt`, at least one reference URL | `image_urls`, `video_urls`, `audio_urls`, `aspect_ratio`, `duration`, `resolution`, `generate_audio`, `seed` | Reference assets in the prompt as `[Image1]`, `[Video1]`, and `[Audio1]` | ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Conditional | `""` | Creative description (max 5,000 characters). Required for text-to-video and multimodal reference requests; optional for first/last frame requests. Reference media in array order using `[Image1]`, `[Video1]`, or `[Audio1]` | | `resolution` | string | No | `"480p"` | `480p`, `720p`, or `1080p` | | `duration` | integer | No | `4` | Output duration in whole seconds (4–30) | | `aspect_ratio` | string | No | `"adaptive"` | `adaptive`, `1:1`, `3:4`, `4:3`, `9:16`, `16:9`, or `21:9`. Must be `adaptive` for first/last frame requests | | `generate_audio` | boolean | No | `true` | Generate synchronized voice, sound effects, and background music with the video | | `seed` | integer | No | Random | Seed from `-1` to `2147483647`. Use the same numeric seed for reproducible results; `-1` selects a random seed | | `first_frame_url` | string | Conditional | `null` | First frame image URL. Must be provided together with `last_frame_url` and cannot be combined with reference arrays | | `last_frame_url` | string | Conditional | `null` | Last frame image URL. Must be provided together with `first_frame_url` and cannot be combined with reference arrays | | `image_urls` | string\[] | No | `null` | Up to 30 reference image URLs. Reference them as `[Image1]`, `[Image2]`, and so on | | `video_urls` | string\[] | No | `null` | Up to 10 reference video URLs with a combined duration of up to 30 seconds. Each video must contain at least 409,600 pixels. Reference them as `[Video1]`, `[Video2]`, and so on | | `audio_urls` | string\[] | No | `null` | Up to 10 reference audio URLs with a combined duration of up to 30 seconds. Audio-only reference requests are supported. Reference them as `[Audio1]`, `[Audio2]`, and so on | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | The total number of reference assets across images, videos, and audio cannot exceed 50. First/last frame URLs cannot be combined with `image_urls`, `video_urls`, or `audio_urls`. ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.5", "input": { "prompt": "A cinematic tracking shot through a bustling night market in the rain, with natural crowd ambience and distant music", "aspect_ratio": "16:9", "duration": 12, "resolution": "720p", "generate_audio": true } }' ``` ## Example - First & Last Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.5", "input": { "prompt": "A lone hiker crosses the ridge while morning mist drifts through the valley below", "duration": 10, "resolution": "720p", "first_frame_url": "https://example.com/start.jpg", "last_frame_url": "https://example.com/end.jpg" } }' ``` ## Example - Video and Audio References ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.5", "input": { "prompt": "Create a new cinematic sequence inspired by the camera movement in [Video1] and timed to the rhythm of [Audio1]", "duration": 15, "resolution": "720p", "video_urls": [ "https://example.com/camera-reference.mp4" ], "audio_urls": [ "https://example.com/music-reference.mp3" ] } }' ``` References are numbered independently and in array order: the first image is `[Image1]`, the first video is `[Video1]`, and the first audio clip is `[Audio1]`. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # SeeDance 2.5 Draft Source: https://docs.unifically.com/models/video/bytedance/seedance-2.5-draft Generate a low-cost 480p SeeDance 2.5 draft, then render the same video natively at 1080p from the same task. Try ideas cheaply with a 480p SeeDance 2.5 draft. When you like a result, render that exact video at 1080p by passing the draft's task ID. The 480p and 1080p versions are both generated natively from the same task, without any external upscaler. The 1080p render keeps the draft's prompt, duration, aspect ratio, and references. ## Model ``` bytedance/seedance-2.5-draft ``` ## How it works 1. **Draft:** send a normal SeeDance 2.5 request. The output is always 480p. 2. **Render in 1080p:** when the draft is `completed`, send a new request with only `draft_task_id` set to the draft's `task_id`. All other fields are ignored, because everything comes from the draft. | Step | Required inputs | Output | | - | - | - | | Draft | Same as [SeeDance 2.5](/models/video/bytedance/seedance-2.5) (`prompt`, frames, or references) | 480p video | | Render in 1080p | `draft_task_id` | 1080p video, same length as the draft | 720p and 4K renders from a draft are coming soon. In the [playground](https://unifically.com/models/seedance-2.5?model=draft), choose **Draft** on the SeeDance 2.5 page and paste a finished draft's task ID into **Draft Task ID**. ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `draft_task_id` | string | No | `null` | Task ID of a completed `bytedance/seedance-2.5-draft` task. When set, that draft is rendered at 1080p and every other field is ignored | | `prompt` | string | Conditional | `""` | Creative description (max 5,000 characters). Required for text-to-video and multimodal reference drafts. Reference media as `[Image1]`, `[Video1]`, or `[Audio1]` | | `resolution` | string | No | `"480p"` | Drafts are `480p` only | | `duration` | integer | No | `4` | Output duration in whole seconds (4–30) | | `aspect_ratio` | string | No | `"adaptive"` | `adaptive`, `1:1`, `3:4`, `4:3`, `9:16`, `16:9`, or `21:9`. Must be `adaptive` for first/last frame requests | | `generate_audio` | boolean | No | `true` | Generate synchronized voice, sound effects, and background music | | `seed` | integer | No | Random | Seed from `-1` to `2147483647` | | `first_frame_url` | string | Conditional | `null` | First frame image URL. Must be provided together with `last_frame_url` | | `last_frame_url` | string | Conditional | `null` | Last frame image URL. Must be provided together with `first_frame_url` | | `image_urls` | string\[] | No | `null` | Up to 30 reference image URLs | | `video_urls` | string\[] | No | `null` | Up to 10 reference video URLs, up to 30 seconds combined | | `audio_urls` | string\[] | No | `null` | Up to 10 reference audio URLs, up to 30 seconds combined | The draft accepts the same inputs and limits as [SeeDance 2.5](/models/video/bytedance/seedance-2.5). ## Example - Draft ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.5-draft", "input": { "prompt": "A cinematic tracking shot through a bustling night market in the rain", "aspect_ratio": "16:9", "duration": 8 } }' ``` ## Example - Render the Draft in 1080p ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "bytedance/seedance-2.5-draft", "input": { "draft_task_id": "abc123def456" } }' ``` The draft must be `completed`. A draft can be rendered in 1080p more than once; each render is a new task. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Gemini Omni Flash 1.1 Video Source: https://docs.unifically.com/models/video/google/gemini-omni-flash-1.1-video Generate videos with Google's Gemini Omni Flash 1.1 video model, including the half-price native 360p tier. See supported inputs, parameters, pricing, response fields, and API examples. Generate short text-to-video, frames-to-video, and reference-to-video clips with Google's Gemini Omni Flash 1.1 video model. Omni Flash 1.1 supports everything the original Omni Flash does, plus a native 360p tier at half the 720p price — ideal for drafts, previews, and high-volume workflows. ## Model ```text theme={null} google/gemini-omni-flash-1.1-video ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | - | Main video prompt. Use `@ImageN` or `@CharacterN` to point at specific references. Unknown references are left as plain text. | | `seed` | integer | No | Random | Seed sent to Gemini Omni Flash 1.1. If omitted, a seed is generated automatically and returned when available. | | `aspect_ratio` | string | No | `"16:9"` | Output orientation. Allowed: `"16:9"`, `"9:16"`. | | `duration` | integer | No | `4` | Clip length in seconds. Allowed: `4`, `6`, `8`, `10`. | | `resolution` | string | No | `"720p"` | Output resolution. Allowed: `"360p"`, `"720p"`, `"1080p"`, `"4k"`. `"360p"` and `"720p"` generate natively — 360p at half the 720p price. With `"1080p"` or `"4k"`, the video generates at 720p and is upscaled as part of the same task before it completes. A completed 360p video can be upscaled to 720p (only) with the [upscale endpoint](/models/video/google/veo-3.1#upscale). | | `start_image_url` | string | No | - | Publicly reachable image URL used as the first frame. Cannot be combined with `reference_image_urls` or `reference_characters`. | | `end_image_url` | string | No | - | Publicly reachable image URL used as the last frame. Requires `start_image_url`; the clip animates from the first frame to the last frame. Cannot be combined with `reference_image_urls` or `reference_characters`. | | `reference_image_urls` | string\[] | No | - | Publicly reachable image reference URLs. Max 7 total expanded image + character image URLs. Cannot be combined with start/end frame fields. | | `reference_characters` | array | No | - | Character references. Max 3 character items; expanded character image URLs count toward the total 7 reference limit. | | `voice` | string | No | - | Request-level Google Flow voice preset ID. Requires at least one image or character reference. See [available voices](/api-reference/resources#get-google-veo-voices). | | `allow_audio_filtered` | boolean | No | `false` | When `true`, the generation runs without audio instead of failing when the audio track is filtered. | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | The 360p tier costs half the 720p price at every duration. Completed videos are upscaled with [`google/veo-3.1-upscale`](/models/video/google/veo-3.1#upscale) — the same upscaler serves Omni Flash; pass this task's `task_id`. A 360p video can be upscaled to 720p only (not directly to 1080p or 4k); a 720p video can be upscaled to 1080p or 4k. If you know the target up front, request `"1080p"` or `"4k"` on the generation itself (it generates at 720p and upscales automatically in the same task). Frame mode and reference mode are separate generation modes. Do not combine `start_image_url`/`end_image_url` with `reference_image_urls` or `reference_characters`. ## Character References Each character must be an object with `image_urls`. Even one-image characters must use an array. ```json theme={null} { "image_urls": [ "https://example.com/character-front.png", "https://example.com/character-profile.png" ], "name": "Ada", "description": "warm, sharp, curious" } ``` | Field | Type | Required | Description | | - | - | - | - | | `image_urls` | string\[] | Yes\* | Publicly reachable character image URLs. Use 1-10 images for a character entity. | | `name` | string | No | Display name for the character. | | `description` | string | No | Character notes/personality text. | \*`image_urls` must contain at least one URL. ## Example — 360p Draft ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-omni-flash-1.1-video", "input": { "prompt": "A paper boat drifts down a rainy street gutter, cinematic close-up", "duration": 4, "resolution": "360p", "aspect_ratio": "9:16" } }' ``` ## Example — First + Last Frame Provide both frames and the clip animates from `start_image_url` to `end_image_url`. ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-omni-flash-1.1-video", "input": { "prompt": "The flower blooms in a smooth timelapse", "start_image_url": "https://example.com/bud.jpg", "end_image_url": "https://example.com/bloom.jpg", "aspect_ratio": "16:9", "duration": 8 } }' ``` ## Example — Reference-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-omni-flash-1.1-video", "input": { "prompt": "Make @Character1 and @Image1 dance in a neon studio with energetic camera movement.", "reference_image_urls": [ "https://example.com/neon-studio.png" ], "reference_characters": [ { "image_urls": [ "https://example.com/dancer.png" ], "name": "Dancer" } ], "duration": 10, "aspect_ratio": "9:16" } }' ``` ## Prompt References | Token | Refers to | | - | - | | `@Image1`, `@Image2` | Items from `reference_image_urls` only | | `@Character1`, `@Character2` | Items from `reference_characters` only. With multiple `image_urls`, the token points to the character item; extra images are identity references | ## Rejected Combinations | Input | Why rejected | | - | - | | `end_image_url` without `start_image_url` | The last frame requires a first frame. | | `start_image_url`/`end_image_url` with `reference_image_urls` or `reference_characters` | Frame mode and reference mode are separate generation modes. | | More than 7 total expanded image URLs | Gemini Omni Flash generation reference limit. | | More than 3 character items | Character item limit. | | `image_url` on a character | Use `image_urls` instead, even for one image. | | Plain string character entries | Character entries must be objects with `image_urls`. | | Empty `image_urls` | A character needs at least one image. | | More than 10 `image_urls` on one character | Character entity image limit. | ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Gemini Omni Flash 1.1 Video Edit Source: https://docs.unifically.com/models/video/google/gemini-omni-flash-1.1-video-edit Edit videos with Google's Gemini Omni Flash 1.1 video edit model, including the half-price native 360p tier. See supported inputs, parameters, pricing, response fields, and API examples. Edit an existing uploaded video with Google's Gemini Omni Flash 1.1 video edit model. Provide exactly one source video URL in `reference_video_urls`. Omni Flash 1.1 edit supports everything the original edit model does, plus native 360p output at half the 720p price. ## Model ```text theme={null} google/gemini-omni-flash-1.1-video-edit ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `reference_video_urls` | string\[] | Yes | - | Publicly reachable source video URL. Must contain exactly one URL. Uploaded source videos must meet the limits below. | | `prompt` | string | Yes | - | Edit instruction. Use `@Video1` to refer to the source video and `@ImageN`/`@CharacterN` for extra references. | | `reference_image_urls` | string\[] | No | - | Publicly reachable image URLs used as edit references. They count toward the total reference limit. | | `reference_characters` | array | No | - | Character references for the edit. Max 3 character items. Each character may include 1-10 `image_urls`. Supports per-character `voice` or `custom_voice`. See [available voices](/api-reference/resources#get-google-veo-voices). | | `seed` | integer | No | Random | Seed sent with the edit request. If omitted, a seed is generated automatically and returned when available. | | `resolution` | string | No | `"720p"` | Output resolution. Allowed: `"360p"`, `"720p"`, `"1080p"`, `"4k"`. `"360p"` and `"720p"` generate natively — 360p at half the 720p price. With `"1080p"` or `"4k"`, the edited video generates at 720p and is upscaled as part of the same task before it completes. A completed video can also be upscaled later with [`google/veo-3.1-upscale`](/models/video/google/veo-3.1#upscale) — the same upscaler serves Omni Flash. | | `start_frame` | integer | No | `0` | First source frame index included in the edit range. | | `end_frame` | integer | No | Source end | Last source frame index included in the edit range. If omitted, the service uses the detected final frame when available. | | `allow_audio_filtered` | boolean | No | `false` | When `true`, the generation runs without audio instead of failing when the audio track is filtered. | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Limits | Limit | Value | | - | - | | Video references | 1 | | Character references | 3 | | Total video + image + character references | 7 | | Uploaded source video size | Up to 1 GB | | Uploaded source video length | Up to 30 seconds | ## Character References Character references work exactly as on [Gemini Omni Flash Video Edit](/models/video/google/gemini-omni-flash-video-edit#character-references): objects with `image_urls` (1-10 images), optional `name`, `description`, and a per-character preset `voice` or tuned `custom_voice`. ## Example — 360p Edit ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-omni-flash-1.1-video-edit", "input": { "reference_video_urls": [ "https://example.com/source-video.mp4" ], "prompt": "Make @Video1 look like it was filmed underwater.", "resolution": "360p" } }' ``` ## Prompt References | Token | Refers to | | - | - | | `@Video1` | The source video for edit requests | | `@Image1`, `@Image2` | Items from `reference_image_urls` only | | `@Character1`, `@Character2` | Items from `reference_characters` only | ## Rejected Combinations The same rules as [Gemini Omni Flash Video Edit](/models/video/google/gemini-omni-flash-video-edit#rejected-combinations) apply: exactly one source video URL, max 7 total references, characters as objects with `image_urls`, and a forward-moving frame range. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Gemini Omni Flash Video Source: https://docs.unifically.com/models/video/google/gemini-omni-flash-video Generate videos with Google's Gemini Omni Flash video model. See supported inputs, parameters, pricing, response fields, and API examples. Generate short text-to-video, frames-to-video, and reference-to-video clips with Google's Gemini Omni Flash video model. Looking for the newest version? [Gemini Omni Flash 1.1](/models/video/google/gemini-omni-flash-1.1-video) supports everything on this page plus a half-price native 360p tier. ## Model ```text theme={null} google/gemini-omni-flash-video ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | - | Main video prompt. Use `@ImageN` or `@CharacterN` to point at specific references. Unknown references are left as plain text. | | `seed` | integer | No | Random | Seed sent to Gemini Omni Flash. If omitted, a seed is generated automatically and returned when available. | | `aspect_ratio` | string | No | `"16:9"` | Output orientation. Allowed: `"16:9"`, `"9:16"`. | | `duration` | integer | No | `4` | Clip length in seconds. Allowed: `4`, `6`, `8`, `10`. | | `resolution` | string | No | `"720p"` | Output resolution. Allowed: `"720p"`, `"1080p"`, `"4k"`. With `"1080p"` or `"4k"`, the video is upscaled as part of the same task before it completes — no separate upscale task needed. `"720p"` returns the native, non-upscaled output. A completed video can also be upscaled later with [`google/veo-3.1-upscale`](/models/video/google/veo-3.1#upscale) — the same upscaler serves Omni Flash. | | `start_image_url` | string | No | - | Publicly reachable image URL used as the first frame. Cannot be combined with `reference_image_urls` or `reference_characters`. | | `end_image_url` | string | No | - | Publicly reachable image URL used as the last frame. Requires `start_image_url`; the clip animates from the first frame to the last frame. Cannot be combined with `reference_image_urls` or `reference_characters`. | | `reference_image_urls` | string\[] | No | - | Publicly reachable image reference URLs. Max 7 total expanded image + character image URLs. Cannot be combined with start/end frame fields. | | `reference_characters` | array | No | - | Character references. Max 3 character items; expanded character image URLs count toward the total 7 reference limit. | | `voice` | string | No | - | Request-level Google Flow voice preset ID. Requires at least one image or character reference. See [available voices](/api-reference/resources#get-google-veo-voices). | | `allow_audio_filtered` | boolean | No | `false` | When `true`, the generation runs without audio instead of failing when the audio track is filtered. | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | Full frame control is now available for Gemini Omni Flash video generation: use `start_image_url` alone for First Frame clips, or add `end_image_url` for First + Last Frame clips that animate from one image to the other. Frame mode and reference mode are separate generation modes. Do not combine `start_image_url`/`end_image_url` with `reference_image_urls` or `reference_characters`. ## Character References Each character must be an object with `image_urls`. Even one-image characters must use an array. ```json theme={null} { "image_urls": [ "https://example.com/character-front.png", "https://example.com/character-profile.png" ], "name": "Ada", "description": "warm, sharp, curious" } ``` | Field | Type | Required | Description | | - | - | - | - | | `image_urls` | string\[] | Yes\* | Publicly reachable character image URLs. Use 1-10 images for a character entity. | | `name` | string | No | Display name for the character. | | `description` | string | No | Character notes/personality text. | \*`image_urls` must contain at least one URL. ## Example — Reference-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-omni-flash-video", "input": { "prompt": "Make @Character1 and @Image1 dance in a neon studio with energetic camera movement.", "reference_image_urls": [ "https://example.com/neon-studio.png" ], "reference_characters": [ { "image_urls": [ "https://example.com/dancer.png" ], "name": "Dancer" } ], "duration": 10, "aspect_ratio": "9:16" } }' ``` ## Example — Start Frame Use `start_image_url` to anchor the first frame of the generated clip. ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-omni-flash-video", "input": { "prompt": "Camera slowly pans across the scene as clouds drift overhead", "start_image_url": "https://example.com/start.jpg", "aspect_ratio": "16:9", "duration": 6, "resolution": "1080p" } }' ``` ## Example — First + Last Frame Provide both frames and the clip animates from `start_image_url` to `end_image_url`. ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-omni-flash-video", "input": { "prompt": "The flower blooms in a smooth timelapse", "start_image_url": "https://example.com/bud.jpg", "end_image_url": "https://example.com/bloom.jpg", "aspect_ratio": "16:9", "duration": 8 } }' ``` ## Prompt References | Token | Refers to | | - | - | | `@Image1`, `@Image2` | Items from `reference_image_urls` only | | `@Character1`, `@Character2` | Items from `reference_characters` only. With multiple `image_urls`, the token points to the character item; extra images are identity references | ## Rejected Combinations | Input | Why rejected | | - | - | | `end_image_url` without `start_image_url` | The last frame requires a first frame. | | `start_image_url`/`end_image_url` with `reference_image_urls` or `reference_characters` | Frame mode and reference mode are separate generation modes. | | More than 7 total expanded image URLs | Gemini Omni Flash generation reference limit. | | More than 3 character items | Character item limit. | | `image_url` on a character | Use `image_urls` instead, even for one image. | | Plain string character entries | Character entries must be objects with `image_urls`. | | Empty `image_urls` | A character needs at least one image. | | More than 10 `image_urls` on one character | Character entity image limit. | ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Gemini Omni Flash Video Edit Source: https://docs.unifically.com/models/video/google/gemini-omni-flash-video-edit Edit videos with Google's Gemini Omni Flash video edit model. See supported inputs, parameters, pricing, response fields, and API examples. Edit an existing uploaded video with Google's Gemini Omni Flash video edit model. Provide exactly one source video URL in `reference_video_urls`. ## Model ```text theme={null} google/gemini-omni-flash-video-edit ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `reference_video_urls` | string\[] | Yes | - | Publicly reachable source video URL. Must contain exactly one URL. Uploaded source videos must meet the limits below. | | `prompt` | string | Yes | - | Edit instruction. Use `@Video1` to refer to the source video and `@ImageN`/`@CharacterN` for extra references. | | `reference_image_urls` | string\[] | No | - | Publicly reachable image URLs used as edit references. They count toward the total reference limit. | | `reference_characters` | array | No | - | Character references for the edit. Max 3 character items. Each character may include 1-10 `image_urls`. Supports per-character `voice` or `custom_voice`. See [available voices](/api-reference/resources#get-google-veo-voices). | | `seed` | integer | No | Random | Seed sent with the edit request. If omitted, a seed is generated automatically and returned when available. | | `resolution` | string | No | `"720p"` | Output resolution. Allowed: `"720p"`, `"1080p"`, `"4k"`. With `"1080p"` or `"4k"`, the edited video is upscaled as part of the same task before it completes — no separate upscale task needed. `"720p"` returns the native, non-upscaled output. A completed video can also be upscaled later with [`google/veo-3.1-upscale`](/models/video/google/veo-3.1#upscale) — the same upscaler serves Omni Flash. | | `start_frame` | integer | No | `0` | First source frame index included in the edit range. | | `end_frame` | integer | No | Source end | Last source frame index included in the edit range. If omitted, the service uses the detected final frame when available. | | `allow_audio_filtered` | boolean | No | `false` | When `true`, the generation runs without audio instead of failing when the audio track is filtered. | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Limits | Limit | Value | | - | - | | Video references | 1 | | Character references | 3 | | Total video + image + character references | 7 | | Uploaded source video size | Up to 1 GB | | Uploaded source video length | Up to 30 seconds | ## Character References Each character must be an object with `image_urls`. Even one-image characters must use an array. Gemini Omni Flash edit also supports per-character preset voices and custom tuned voices. ### Preset Voice ```json theme={null} { "image_urls": [ "https://example.com/character.png" ], "name": "Ada", "description": "warm, sharp, curious", "voice": "achernar" } ``` ### Custom Tuned Voice ```json theme={null} { "image_urls": [ "https://example.com/character.png" ], "name": "Ada", "description": "warm, sharp, curious", "custom_voice": { "voice": "achernar", "name": "Ada voice", "voice_performance": "calm, bright, expressive", "sample_dialogue": "Hello, I am Ada.", "speaker": "Ada" } } ``` | Field | Type | Required | Description | | - | - | - | - | | `image_urls` | string\[] | Yes\* | Publicly reachable character image URLs. Use 1-10 images for a character entity. | | `name` | string | No | Display name for the character. Used as the temporary character handle/name. | | `description` | string | No | Character notes/personality text. | | `voice` | string | No | Preset voice for this character. Do not combine with `custom_voice` on the same character. | | `custom_voice` | object | No | Tuned voice config for this character. Use this instead of `voice` when you want to modify a base voice. | | `custom_voice.voice` | string | Yes | Preset voice used as the base voice for tuning. See [available voices](/api-reference/resources#get-google-veo-voices). | | `custom_voice.name` | string | Yes | Display name for the tuned voice. | | `custom_voice.voice_performance` | string | Yes | Direction for the tuned voice delivery, such as tone, energy, accent, pacing, or acting notes. | | `custom_voice.sample_dialogue` | string | Yes | Sample line used for tuning. Max 120 characters. | | `custom_voice.speaker` | string | No | Speaker label for the tuned voice. Defaults to the custom voice `name` when omitted. | \*`image_urls` must contain at least one URL. ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/gemini-omni-flash-video-edit", "input": { "reference_video_urls": [ "https://example.com/source-video.mp4" ], "prompt": "Make @Video1 look like it was filmed underwater, and replace the main person with @Character1.", "reference_image_urls": [ "https://example.com/underwater-style.png" ], "reference_characters": [ { "image_urls": [ "https://example.com/ada-front.png", "https://example.com/ada-profile.png" ], "name": "Ada", "description": "confident explorer", "voice": "achernar" } ], "seed": 4734, "start_frame": 0, "end_frame": 122, "resolution": "1080p" } }' ``` ## Prompt References | Token | Refers to | | - | - | | `@Video1` | The source video for edit requests | | `@Image1`, `@Image2` | Items from `reference_image_urls` only | | `@Character1`, `@Character2` | Items from `reference_characters` only | ## Rejected Combinations | Input | Why rejected | | - | - | | `task_id` | Edit requests must use `reference_video_urls`; source task IDs are not supported. | | Missing or empty `reference_video_urls` | An edit needs exactly one source video URL. | | More than one `reference_video_urls` item | Video edit accepts one source video. | | `end_frame` lower than `start_frame` | Frame range must move forward. | | More than 7 total video + image + character items | Gemini Omni Flash edit reference limit. | | `image_url` on a character | Use `image_urls` instead, even for one image. | | Plain string character entries | Character entries must be objects with `image_urls`. | | Empty `image_urls` | A character needs at least one image. | | More than 10 `image_urls` on one character | Character entity image limit. | | `voice` and `custom_voice` on the same character | Use a preset voice or a tuned voice, not both. | ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Veo 3.1 Source: https://docs.unifically.com/models/video/google/veo-3.1 Generate videos with Google's Veo 3.1 models. See supported inputs, parameters, pricing, response fields, and API examples. Generate videos with Google's Veo 3.1 modes through the unified task API. Veo 3.1 supports text-to-video, first-frame, first-and-last-frame, and reference-to-video workflows. ## Models | Mode | Model ID | Character references | Notes | | - | - | - | - | | Lite | `google/veo-3.1-lite` | Yes | Balanced default | | Fast | `google/veo-3.1-fast` | Yes | Faster generation | | Quality | `google/veo-3.1-quality` | No | Higher quality text/image-to-video, but no character references | | Lite Relaxed | `google/veo-3.1-lite-relaxed` | Yes | Relaxed queue variant | ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Yes | - | Main video prompt. Use `@ImageN` or `@CharacterN` to point at a specific reference. Unknown references are left as plain text. | | `seed` | integer | No | Random | Seed sent to Veo. If omitted, a seed is generated automatically and returned when available. | | `aspect_ratio` | string | No | `"16:9"` | Output orientation. Allowed: `"16:9"`, `"9:16"`. | | `duration` | integer | No | `4` | Text/start-frame requests allow `4`, `6`, or `8`. Any `reference_image_urls` or `reference_characters` reference locks duration to `8`. | | `resolution` | string | No | `"720p"` | Output resolution. Allowed: `"720p"`, `"1080p"`, `"4k"`. With `"1080p"` or `"4k"`, the video is upscaled as part of the same task before it completes — no separate upscale task needed. `"720p"` returns the native, non-upscaled output. | | `start_image_url` | string | No | - | Publicly reachable image URL used as the first frame. Cannot be combined with `reference_image_urls` or `reference_characters`. | | `end_image_url` | string | No | - | Publicly reachable image URL used as the final frame. Requires `start_image_url`; cannot be used by itself. | | `reference_image_urls` | string\[] | No | - | Image references for reference-to-video. Max 3 total expanded image URLs across `reference_image_urls` and character images. Cannot be combined with start/end frame fields. | | `reference_characters` | array | No | - | Character references for reference-to-video. Max 3 total expanded image URLs across images and character `image_urls`. Not available on Quality. | | `voice` | string | No | - | Request-level Google Flow voice preset ID. Requires at least one image or character reference. See [available voices](/api-reference/resources#get-google-veo-voices). | | `allow_audio_filtered` | boolean | No | `false` | When `true`, the generation runs without audio instead of failing when the audio track is filtered. | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | First/last-frame mode and reference mode are separate generation modes. Do not combine `start_image_url` or `end_image_url` with `reference_image_urls` or `reference_characters`. ## Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/veo-3.1-fast", "input": { "prompt": "A cinematic shot of a cat walking through a garden", "aspect_ratio": "16:9", "duration": 4, "resolution": "1080p" } }' ``` ## First and Last Frame Use `start_image_url` and optionally `end_image_url` to guide the video with first and final frames. ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/veo-3.1-fast", "input": { "prompt": "Camera slowly zooms in", "start_image_url": "https://example.com/start.jpg", "end_image_url": "https://example.com/end.jpg", "aspect_ratio": "16:9", "duration": 6 } }' ``` ## References and Characters Use `reference_image_urls` for image references and `reference_characters` for character identity consistency. Character references are supported on Lite, Fast, and Lite Relaxed. They are not supported on Quality. ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "google/veo-3.1-fast", "input": { "prompt": "Make @Character1 walk through a glass city at sunrise, speaking softly to camera.", "reference_characters": [ { "image_urls": [ "https://example.com/ada.png" ], "name": "Ada", "description": "warm, sharp, curious" } ], "duration": 8, "aspect_ratio": "9:16" } }' ``` ## Character References Provide each character as an object with `image_urls`. Even one-image characters must use an array. ```json theme={null} { "image_urls": [ "https://example.com/character-front.png", "https://example.com/character-profile.png" ], "name": "Ada", "description": "warm, sharp, curious" } ``` | Field | Type | Required | Description | | - | - | - | - | | `image_urls` | string\[] | Yes\* | Publicly reachable character image URLs. Use 1-10 images for a character entity. Each URL still consumes a model reference-image slot. | | `name` | string | No | Display name for the character. | | `description` | string | No | Character notes/personality text. | \*`image_urls` must contain at least one URL. `image_url` and plain string character entries are not supported. Use `image_urls` for every character, including one-image characters. ## Prompt References | Token | Refers to | | - | - | | `@Image1`, `@Image2` | Items from `reference_image_urls` only | | `@Character1`, `@Character2` | Items from `reference_characters` only. With multiple `image_urls`, the token points to the character item; extra images are identity references | ## Duration | Mode | What you send | 4s | 6s | 8s | | - | - | - | - | - | | Text-to-video | `prompt` only | Yes | Yes | Yes | | First-frame | `prompt` + `start_image_url` | Yes | Yes | Yes | | First-and-last-frame | `prompt` + `start_image_url` + `end_image_url` | Yes | Yes | Yes | | Reference-to-video | `reference_image_urls` or `reference_characters` | No | No | Yes | ## Rejected Combinations | Input | Why rejected | | - | - | | `end_image_url` without `start_image_url` | The ending frame needs a starting frame. | | `start_image_url`/`end_image_url` with `reference_image_urls` or `reference_characters` | First/last-frame mode and reference mode are separate generation modes. | | `reference_characters` on `google/veo-3.1-quality` | Quality does not expose character references. | | Any image or character reference with `duration` other than `8` | Veo reference-image generation is 8 seconds only. | | More than 3 total expanded image URLs | Veo reference generation limit. | | `image_url` on a character | Use `image_urls` instead, even for one image. | | Plain string character entries | Character entries must be objects with `image_urls`. | | Empty `image_urls` | A character needs at least one image. | | More than 10 `image_urls` on one character | Character entity image limit. | ## Extend Extend a previously generated video using `google/veo-3.1-extend`. The aspect ratio is inherited from the source task. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Text prompt for the extended content | | `task_id` | string | Yes | Task ID of a completed generation | | `model` | string | Yes | One of: `lite`, `fast`, `quality`, `lite-relaxed` | | `duration` | integer | No | Must be `8`. Default `8`. | | `seed` | integer | No | Reproducibility seed | ## Upscale Upscale a completed video to a higher resolution using `google/veo-3.1-upscale`. The same model upscales **Veo 3.1 and Gemini Omni Flash** videos (Omni Flash, Omni Flash 1.1 and their video-edit variants) — pass the `task_id` of any of them; there is no separate Omni Flash upscaler. If you already know the target resolution up front, pass `resolution` on the generation request instead — the upscale then happens within the same task. | Parameter | Type | Required | Description | | - | - | - | - | | `task_id` | string | Yes | Task ID of a completed Veo 3.1 or Gemini Omni Flash generation | | `resolution` | string | Yes | `"720p"`, `"1080p"`, or `"4k"`. `"720p"` is only valid for 360p Gemini Omni Flash 1.1 source videos; `"1080p"`/`"4k"` are only valid for 720p source videos. | 360p videos (Gemini Omni Flash 1.1) can only be upscaled to 720p — not directly to 1080p or 4k. 720p videos from Veo 3.1 or Gemini Omni Flash can be upscaled to 1080p or 4k. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Kling 2.1 Source: https://docs.unifically.com/models/video/kling/kling-2.1 Generate videos with Kling 2.1 models. See supported inputs, parameters, pricing, response fields, and API examples. Generate high-quality AI videos using Kling 2.1 with flexible generation modes. ## Models | Model | Mode | Features | | - | - | - | | `kuaishou/kling-2.1-video` | `std`, `pro` | Image-to-video only, end frame supported | | `kuaishou/kling-2.1-master-video` | `pro` only | Text-to-video + image-to-video, no end frame | *** ## Kling 2.1 Image-to-video only — `start_frame_url` is required. ### Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | **Yes** | - | Text prompt describing the video to generate | | `start_frame_url` | string | **Yes** | - | First frame image URL | | `end_frame_url` | string | No | - | Last frame image URL | | `duration` | integer | No | `5` | `5` or `10` seconds | | `mode` | string | No | `"pro"` | `"std"` (720p) or `"pro"` (1080p) | | `sound_effects` | object | No | - | Sound effects and music configuration. Omit to disable audio | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ### Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.1-video", "input": { "prompt": "A butterfly landing on a flower in slow motion", "start_frame_url": "https://example.com/butterfly.jpg", "duration": 5, "mode": "pro" } }' ``` *** ## Kling 2.1 Master Supports both text-to-video and image-to-video. Pro-only mode. No end frame support. ### Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | **Yes** | - | Text prompt describing the video to generate | | `duration` | integer | No | `5` | `5` or `10` seconds | | `start_frame_url` | string | No | - | First frame image URL (optional) | | `sound_effects` | object | No | - | Sound effects and music configuration. Omit to disable audio | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ### Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.1-master-video", "input": { "prompt": "Cinematic scene with dramatic lighting", "duration": 10, "sound_effects": { "music": "cinematic orchestral" } } }' ``` ### Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.1-master-video", "input": { "prompt": "Cinematic scene with dramatic lighting", "start_frame_url": "https://example.com/start.jpg", "duration": 10 } }' ``` *** ## Sound Effects | Parameter | Type | Default | Description | | - | - | - | - | | `sound` | string | `""` | Sound effect prompt (e.g. "wind blowing, birds chirping") | | `music` | string | `""` | Background music prompt (e.g. "cinematic orchestral") | | `asmr_mode` | boolean | `false` | Enable ASMR-style audio generation | ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Kling 2.5 Turbo Source: https://docs.unifically.com/models/video/kling/kling-2.5 Generate videos with Kling 2.5 Turbo. See supported inputs, parameters, pricing, response fields, and API examples. Generate high-quality AI videos using Kling 2.5 Turbo with optional start/end frame and sound effects. ## Model ``` kuaishou/kling-2.5-turbo-video ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | **Yes** | - | Text prompt describing the video to generate | | `mode` | string | No | `"pro"` | `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | `5` | `5` or `10` seconds | | `aspect_ratio` | string | No | `"16:9"` | `"1:1"`, `"9:16"`, or `"16:9"`. Ignored when `start_frame_url` is set. Safe to omit | | `start_frame_url` | string | No | - | First frame image URL (uses image native ratio) | | `end_frame_url` | string | No | - | Last frame image URL | | `sound_effects` | object | No | - | Sound effects and music configuration. Omit to disable audio | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | Sound effects fields: | Parameter | Type | Default | Description | | - | - | - | - | | `sound` | string | `""` | Sound effect prompt (e.g. "wind blowing, birds chirping") | | `music` | string | `""` | Background music prompt (e.g. "cinematic orchestral") | | `asmr_mode` | boolean | `false` | Enable ASMR-style audio generation | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.5-turbo-video", "input": { "prompt": "Cinematic scene with dramatic lighting", "duration": 10, "sound_effects": { "music": "cinematic orchestral" } } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.5-turbo-video", "input": { "prompt": "Cinematic scene with dramatic lighting", "start_frame_url": "https://example.com/start.jpg", "duration": 10, "sound_effects": { "sound": "wind blowing, birds chirping", "music": "ambient nature" } } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Kling 2.6 Source: https://docs.unifically.com/models/video/kling/kling-2.6 Generate videos with Kling 2.6 and voice support. See supported inputs, parameters, pricing, response fields, and API examples. Generate high-quality AI videos using Kling 2.6 with text-to-video, start/end frame, and voice support. ## Model ``` kuaishou/kling-2.6-video ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | **Yes** | - | Text prompt describing the video to generate | | `mode` | string | No | `"pro"` | `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | `5` | `5` or `10` seconds | | `native_audio` | boolean | No | `false` | Enable AI audio generation. Required for voices, pro mode only | | `start_frame_url` | string | No | - | First frame image URL. Omit for text-to-video | | `end_frame_url` | string | No | - | Last frame image URL (not available with native\_audio) | | `voices` | array | No | - | Voice references for character speech (max 5, requires native\_audio) | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | Each voice accepts: | Parameter | Type | Description | | - | - | - | | `voice_id` | integer | Official voice ID (use [GET /v1/resources/kuaishou/kling/voices](/api-reference/resources#get-kling-voices) to list). Mutually exclusive with `voice_url` | | `voice_url` | string | Custom voice MP3 URL. Mutually exclusive with `voice_id` | | `nsfw_check` | boolean | Check uploaded media inputs for NSFW content. Default: `true` | ## Constraints * `native_audio` requires `mode: "pro"` * `end_frame_url` is not available when `native_audio` is enabled * `voices` require `native_audio` to be enabled ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.6-video", "input": { "prompt": "A cinematic drone shot over a misty forest at dawn", "duration": 10, "mode": "pro" } }' ``` ## Example - Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.6-video", "input": { "prompt": "Animate this scene with gentle movement", "start_frame_url": "https://example.com/my-image.jpg", "duration": 5 } }' ``` ## Example - With Voice ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.6-video", "input": { "prompt": "Person speaking to the camera about their day", "start_frame_url": "https://example.com/person.jpg", "duration": 10, "mode": "pro", "native_audio": true, "voices": [ { "voice_url": "https://example.com/voice-sample.mp3" } ] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Kling Motion Control 2.6 Source: https://docs.unifically.com/models/video/kling/kling-2.6-motion-control Transfer motion from reference videos onto characters. See supported inputs, parameters, pricing, response fields, and API examples. Transfer motion from a reference video onto a character in a reference image. ## Model ``` kuaishou/kling-2.6-motion-control ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | **Yes** | - | Text prompt describing the motion to generate | | `image_url` | string | **Yes** | - | Character/subject image URL | | `video_url` | string | **Yes** | - | Motion reference video URL | | `mode` | string | No | `"std"` | `"std"` (720p) or `"pro"` (1080p) | | `keep_audio` | boolean | No | `true` | Preserve original audio from the motion reference video | | `character_orientation` | string | No | `"video"` | Character orientation source: `"video"` (follow motion) or `"image"` (preserve pose) | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Image Requirements The reference image must show the subject's **head, shoulders, and torso clearly visible**. ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-2.6-motion-control", "input": { "prompt": "Person dancing gracefully", "video_url": "https://example.com/dance-motion.mp4", "image_url": "https://example.com/person.jpg", "character_orientation": "video", "mode": "pro", "keep_audio": true } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Kling 3.0 Source: https://docs.unifically.com/models/video/kling/kling-3.0 Generate videos with Kling 3.0 and multi-shot support. See supported inputs, parameters, pricing, response fields, and API examples. Kling 3.0 is an advanced video generation model that supports: * Text-to-video generation (omit `start_frame_url`) * Start/end frame video generation * Multi-shot video generation (2–6 shots) * Inline character/object elements with voice support * AI audio generation (on by default) * Resolutions: 720p (std), 1080p (pro), and 4K (4k — \$0.30/sec) * Aspect ratios: 1:1, 16:9, 9:16 * Duration: 3–15 seconds ## Model ``` kuaishou/kling-3.0-video ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | Conditional | - | Text prompt. Mutually exclusive with `multi_shots` | | `mode` | string | No | `"pro"` | `"std"` (720p), `"pro"` (1080p), or `"4k"` (4K — \$0.30/sec) | | `duration` | integer | No | `5` | Video duration in seconds (3–15) | | `aspect_ratio` | string | No | `"16:9"` | `"1:1"`, `"16:9"`, or `"9:16"`. Safe to omit — server defaults to `"16:9"` | | `native_audio` | boolean | No | `true` | Generate AI audio from the video content | | `start_frame_url` | string | No | - | First frame image URL. Omit for text-to-video | | `end_frame_url` | string | No | - | Last frame image URL | | `elements` | array | No | - | Character/object elements to include in the video | | `multi_shots` | array | No | - | Multi-shot sequence (2–6 shots, each with `prompt` and `duration`). Mutually exclusive with `prompt` | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Elements Elements are created automatically from your input, used during generation, then auto-deleted on completion. ```json theme={null} "elements": [ {"description": "Woman in red jacket", "type": "image", "image_urls": ["front.jpg", "side.jpg"]}, {"description": "Man dancing", "type": "video", "video_url": "dance.mp4"} ] ``` Each element accepts: | Parameter | Type | Default | Description | | - | - | - | - | | `description` | string | `""` | Short description of the element (max 100 chars) | | `type` | string | `"image"` | Element source type: `"image"` or `"video"` | | `image_urls` | string\[] | - | Source image URLs for an image element (max 4) | | `video_url` | string | - | Source video URL for a video element | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Multi-Shot Mode Generate multi-scene videos with 2–6 shots. When using `multi_shots`, the `prompt` field is not used. **Key Points:** * Each shot **must** have a `prompt` and `duration` (minimum 1 second) * Total duration of all shots must be between 3–15 seconds * `multi_shots` and `prompt` are mutually exclusive *** ## Examples ### Example 1: Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-video", "input": { "prompt": "A cinematic drone shot over a misty forest at dawn", "duration": 10, "mode": "pro", "native_audio": true } }' ``` ### Example 2: Image-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-video", "input": { "prompt": "A majestic eagle soaring through mountain peaks at sunset", "start_frame_url": "https://example.com/eagle.jpg", "duration": 10, "mode": "pro", "native_audio": true } }' ``` ### Example 3: Start and End Frames ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-video", "input": { "prompt": "Character walks towards the camera with a confident stride", "start_frame_url": "https://example.com/start-pose.jpg", "end_frame_url": "https://example.com/end-pose.jpg", "duration": 8, "mode": "pro" } }' ``` ### Example 4: Multi-Shot ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-video", "input": { "start_frame_url": "https://example.com/scene.jpg", "mode": "pro", "native_audio": true, "multi_shots": [ { "prompt": "Person walking towards camera in a park", "duration": 5 }, { "prompt": "Close-up of person smiling warmly", "duration": 4 }, { "prompt": "Wide shot of the beautiful landscape panorama", "duration": 6 } ] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Kling Motion Control 3.0 Source: https://docs.unifically.com/models/video/kling/kling-3.0-motion-control Transfer motion from reference videos onto characters with high facial consistency. See parameters, pricing, and API examples. Transfer motion from a reference video onto a character in a reference image. Upgraded from 2.6 with high facial consistency and inline element support. ## Model ``` kuaishou/kling-3.0-motion-control ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | **Yes** | - | Text prompt describing the motion to generate | | `image_url` | string | **Yes** | - | Character/subject image URL | | `video_url` | string | **Yes** | - | Motion reference video URL | | `mode` | string | No | `"std"` | `"std"` (720p) or `"pro"` (1080p) | | `keep_audio` | boolean | No | `true` | Preserve original audio from the motion reference video | | `character_orientation` | string | No | `"video"` | Character orientation source: `"video"` (follow motion) or `"image"` (preserve pose) | | `elements` | array | No | - | Additional character/object elements | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Elements ```json theme={null} "elements": [ {"description": "Woman in red jacket", "type": "image", "image_urls": ["front.jpg", "side.jpg"]} ] ``` Each element accepts: | Parameter | Type | Default | Description | | - | - | - | - | | `description` | string | `""` | Short description of the element (max 100 chars) | | `type` | string | `"image"` | Element source type: `"image"` or `"video"` | | `image_urls` | string\[] | - | Source image URLs for an image element (max 4) | | `video_url` | string | - | Source video URL for a video element | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Image Requirements The reference image must show the subject's **head, shoulders, and torso clearly visible**. ## Example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-motion-control", "input": { "prompt": "Person dancing gracefully", "video_url": "https://example.com/dance-motion.mp4", "image_url": "https://example.com/person.jpg", "character_orientation": "video", "mode": "pro", "keep_audio": true } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Kling 3.0 Omni Source: https://docs.unifically.com/models/video/kling/kling-3.0-omni-video Generate videos with Kling 3.0 Omni. See supported inputs, parameters, pricing, response fields, and API examples. Generate high-quality AI videos using Kling 3.0 Omni. Supports text-to-video, raw reference images, persistent subject/object elements, start/end frames, video transform, video reference, and multi-shot generation. ## Model ``` kuaishou/kling-3.0-omni-video ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `video_mode` | string | No | - | Input mode. Allowed: `"elements"`, `"start_end_frame"`, `"transform"`, `"video_reference"`. Omit for text-to-video | | `prompt` | string | Conditional | - | Text prompt. Mutually exclusive with `multi_shots` | | `mode` | string | No | `"pro"` | `"std"` (720p), `"pro"` (1080p), or `"4k"` (4K — \$0.30/sec) | | `duration` | integer | No | `5` | Video length in seconds (3–15) | | `aspect_ratio` | string | No | - | `"1:1"`, `"9:16"`, `"16:9"`, or `"auto"`. Must be `"auto"` when `video_url` is set; rejected otherwise. Omit to let the server choose (`"auto"` if `video_url`, else `"16:9"`) | | `native_audio` | boolean | No | `false` | Generate AI audio from the video content | | `image_urls` | string\[] | No | - | Raw reference image URLs uploaded per request (max 7). No description, no reuse. Use `@Image1`, `@Image2` in `prompt` | | `start_image_index` | integer | No | - | 1-based index into `image_urls` marking which reference image anchors the first frame. No end-frame equivalent | | `elements` | ElementInput30\[] | No | - | Persistent subject/object assets. Auto-created on Kling and auto-deleted if submit fails. Use `@Element1`, `@Element2` in `prompt`. Coexists with `image_urls` | | `start_frame_url` | string | No | - | First frame image URL (`start_end_frame` mode) | | `end_frame_url` | string | No | - | Last frame image URL (`start_end_frame` mode) | | `video_url` | string | No | - | Source video URL (`transform` / `video_reference` modes) | | `multi_shots` | array | No | - | Multi-shot sequence (2–6 shots, each with `prompt` and `duration`). Mutually exclusive with `prompt` | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Modes | Mode | Required inputs | Optional inputs | Notes | | - | - | - | - | | *omitted* (text-to-video) | `prompt` or `multi_shots` | — | Rejects every input field including `elements`, `image_urls`, `start_frame_url`, `video_url` | | `elements` | At least one of `image_urls`, `elements` | — | Combined `image_urls` + `elements` cap of **7**. `video_url` rejected | | `start_end_frame` | `start_frame_url` | `end_frame_url`, `elements` | — | | `transform` | `video_url` | `image_urls`, `elements` | Combined `image_urls` + `elements` cap of **4**. `aspect_ratio` must be `"auto"` | | `video_reference` | `video_url` | `image_urls`, `elements` | Combined `image_urls` + `elements` cap of **4**. `aspect_ratio` must be `"auto"` | **Text-to-video with elements** — set `video_mode: "elements"` and pass only the `elements` array (no `image_urls` required). The omit-`video_mode` path is strictly for pure text-to-video with **zero** inputs; any reference (image or element) requires `elements` mode. ## Reference images vs elements * **`image_urls`** — raw images uploaded per request. Single-use, no description, no reuse across tasks. Cap 7. Reference in `prompt` as `@Image1`, `@Image2`, … * **`elements`** — persistent subject/object assets stored on the Kling account. Auto-created from your input on submit and auto-deleted if the submit fails. Reference in `prompt` as `@Element1`, `@Element2`, … Both can be used together; they share the per-mode combined cap. ## Elements v3 Omni supports both IMAGE and VIDEO elements. A `video_url` and any element with `type: "video"` are mutually exclusive — passing both returns 400 (the video element counts as your video reference). ```json theme={null} "elements": [ {"description": "Woman in red jacket", "type": "image", "image_urls": ["front.jpg", "side.jpg"]}, {"description": "Man dancing", "type": "video", "video_url": "dance.mp4"} ] ``` Each element accepts: | Parameter | Type | Default | Description | | - | - | - | - | | `description` | string | `""` | Short description of the element (max 100 chars) | | `type` | string | `"image"` | Element source type: `"image"` or `"video"` | | `image_urls` | string\[] | - | Source image URLs for an image element (max 4) | | `video_url` | string | - | Source video URL for a video element | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-omni-video", "input": { "prompt": "A majestic eagle soaring through mountain peaks at sunset", "duration": 5, "mode": "pro" } }' ``` ## Example - With Elements ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-omni-video", "input": { "video_mode": "elements", "prompt": "@Element1 walks through a park at sunset", "elements": [ {"description": "Woman in red jacket", "type": "image", "image_urls": ["https://example.com/front.jpg"]} ], "duration": 10, "mode": "pro" } }' ``` ## Example - Reference Images with Start Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-omni-video", "input": { "video_mode": "elements", "prompt": "@Image2 walks toward @Image1 across a meadow", "image_urls": [ "https://example.com/character.jpg", "https://example.com/scene.jpg" ], "start_image_index": 2, "duration": 5, "mode": "pro" } }' ``` ## Example - Multi-Shot ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-omni-video", "input": { "mode": "pro", "multi_shots": [ { "prompt": "Wide shot of city skyline", "duration": 5 }, { "prompt": "Close-up of glass buildings", "duration": 5 } ] } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Kling 3.0 Omni Video Edit Source: https://docs.unifically.com/models/video/kling/kling-3.0-omni-video-edit Edit videos with Kling 3.0 Omni. See supported inputs, parameters, pricing, response fields, and API examples. Edit and transform videos using Kling 3.0 Omni Video Edit with support for reference images and elements. ## Model ``` kuaishou/kling-3.0-omni-video-edit ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `video_url` | string | **Yes** | - | Source video URL to edit | | `prompt` | string | **Yes** | - | Text prompt describing the edit | | `video_mode` | string | No | `"reference"` | Edit mode: `"reference"` (use video as style guide) or `"transform"` (restyle the video) | | `keep_audio` | boolean | No | `false` | Preserve original audio from the source video | | `mode` | string | No | `"std"` | `"std"` (720p) or `"pro"` (1080p) | | `aspect_ratio` | string | No | `"16:9"` | `"1:1"`, `"9:16"`, or `"16:9"` | | `image_urls` | string\[] | No | - | Reference image URLs (max 4). Use `@Image1`, `@Image2` in prompt | | `elements` | array | No | - | Character/object elements (max 4) | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | **Note:** Duration is locked to the input video length and cannot be set manually. ## Elements Elements are created automatically from your input, used during generation, then auto-deleted on completion. ```json theme={null} "elements": [ {"description": "Woman in red jacket", "type": "image", "image_urls": ["front.jpg", "side.jpg"]}, {"description": "Man dancing", "type": "video", "video_url": "dance.mp4"} ] ``` Each element accepts: | Parameter | Type | Default | Description | | - | - | - | - | | `description` | string | `""` | Short description of the element (max 100 chars) | | `type` | string | `"image"` | Element source type: `"image"` or `"video"` | | `image_urls` | string\[] | - | Source image URLs for an image element (max 4) | | `video_url` | string | - | Source video URL for a video element | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Reference Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-omni-video-edit", "input": { "prompt": "Transform into anime style", "video_url": "https://example.com/video.mp4", "video_mode": "reference", "mode": "pro" } }' ``` ## Example - Transform Mode with Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-omni-video-edit", "input": { "prompt": "Replace the person with @Image1", "video_url": "https://example.com/video.mp4", "video_mode": "transform", "image_urls": ["https://example.com/person.jpg"], "mode": "pro" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Kling 3.0 Turbo Source: https://docs.unifically.com/models/video/kling/kling-3.0-turbo Generate videos with Kling 3.0 Turbo — a faster variant of Kling 3.0. See supported inputs, parameters, pricing, response fields, and API examples. Kling 3.0 Turbo is a faster variant of [Kling 3.0](/models/video/kling/kling-3.0) with a simplified feature set: * Text-to-video generation (omit `start_frame_url`) * Optional start-frame image-to-video (no end frame) * Resolutions: 720p (`std`) and 1080p (`pro`) * Aspect ratios: 1:1, 16:9, 9:16 * Duration: 3–15 seconds **Not supported:** native audio, multi-shot, end frame, or 4K mode. ## Model ``` kuaishou/kling-3.0-turbo-video ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `prompt` | string | **Yes** | - | Text prompt describing the video to generate | | `mode` | string | No | `"pro"` | `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | `5` | Video duration in seconds (3–15) | | `aspect_ratio` | string | No | `"16:9"` | `"1:1"`, `"16:9"`, or `"9:16"`. Safe to omit — server defaults to `"16:9"` | | `start_frame_url` | string | No | - | First frame image URL. Omit for text-to-video | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | *** ## Examples ### Example 1: Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-turbo-video", "input": { "prompt": "A cat walking in the rain", "mode": "pro", "duration": 15, "aspect_ratio": "16:9" } }' ``` ### Example 2: Image-to-Video (Start Frame) ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-3.0-turbo-video", "input": { "prompt": "A cat walking in the rain", "start_frame_url": "https://example.com/cat.jpg", "mode": "pro", "duration": 15, "aspect_ratio": "16:9" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Kling O1 Video Source: https://docs.unifically.com/models/video/kling/kling-o1-video Generate videos with Kling O1. See supported inputs, parameters, pricing, response fields, and API examples. Generate high-quality AI videos using Kling O1. Supports text-to-video, raw reference images, persistent subject/object elements (image only), start/end frames, video transform, and video reference. Same shape as Omni 3.0 but does not support `multi_shots`, `native_audio`, or video-type elements. Max duration 10s. ## Model ``` kuaishou/kling-o1-video ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `video_mode` | string | No | - | Input mode. Allowed: `"elements"`, `"start_end_frame"`, `"transform"`, `"video_reference"`. Omit for text-to-video | | `prompt` | string | **Yes** | - | Text prompt | | `mode` | string | No | `"pro"` | `"std"` (720p) or `"pro"` (1080p) | | `duration` | integer | No | `5` | Video length in seconds (3–10) | | `aspect_ratio` | string | No | - | `"1:1"`, `"9:16"`, `"16:9"`, or `"auto"`. Must be `"auto"` when `video_url` is set; rejected otherwise. Omit to let the server choose (`"auto"` if `video_url`, else `"16:9"`) | | `image_urls` | string\[] | No | - | Raw reference image URLs uploaded per request (max 7). No description, no reuse. Use `@Image1`, `@Image2` in `prompt` | | `start_image_index` | integer | No | - | 1-based index into `image_urls` marking which reference image anchors the first frame. No end-frame equivalent | | `elements` | ElementInput30\[] | No | - | Persistent subject/object assets (image only on O1). Auto-created on Kling and auto-deleted if submit fails. Use `@Element1`, `@Element2` in `prompt`. Coexists with `image_urls` | | `start_frame_url` | string | No | - | First frame image URL (`start_end_frame` mode) | | `end_frame_url` | string | No | - | Last frame image URL (`start_end_frame` mode) | | `video_url` | string | No | - | Source video URL (`transform` / `video_reference` modes) | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Modes | Mode | Required inputs | Optional inputs | Notes | | - | - | - | - | | *omitted* (text-to-video) | `prompt` | — | Rejects every input field including `elements`, `image_urls`, `start_frame_url`, `video_url` | | `elements` | At least one of `image_urls`, `elements` | — | Combined `image_urls` + `elements` cap of **7**. `video_url` rejected | | `start_end_frame` | `start_frame_url` | `end_frame_url`, `elements` | — | | `transform` | `video_url` | `image_urls`, `elements` | Combined `image_urls` + `elements` cap of **4**. `aspect_ratio` must be `"auto"` | | `video_reference` | `video_url` | `image_urls`, `elements` | Combined `image_urls` + `elements` cap of **4**. `aspect_ratio` must be `"auto"` | **Text-to-video with elements** — set `video_mode: "elements"` and pass only the `elements` array (no `image_urls` required). The omit-`video_mode` path is strictly for pure text-to-video with **zero** inputs; any reference (image or element) requires `elements` mode. ## Reference images vs elements * **`image_urls`** — raw images uploaded per request. Single-use, no description, no reuse across tasks. Cap 7. Reference in `prompt` as `@Image1`, `@Image2`, … * **`elements`** — persistent subject/object assets stored on the Kling account. Auto-created from your input on submit and auto-deleted if the submit fails. Reference in `prompt` as `@Element1`, `@Element2`, … Both can be used together; they share the per-mode combined cap. ## Elements O1 supports IMAGE elements only — passing an element with `type: "video"` returns 400. ```json theme={null} "elements": [ {"description": "Woman in red jacket", "type": "image", "image_urls": ["front.jpg", "side.jpg"]} ] ``` Each element accepts: | Parameter | Type | Default | Description | | - | - | - | - | | `description` | string | `""` | Short description of the element (max 100 chars) | | `type` | string | `"image"` | Must be `"image"` on O1 | | `image_urls` | string\[] | - | Source image URLs for the element (max 4) | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | ## Example - Text-to-Video ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-o1-video", "input": { "prompt": "A cinematic drone shot over a misty forest at dawn", "duration": 10, "mode": "pro" } }' ``` ## Example - Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-o1-video", "input": { "video_mode": "elements", "prompt": "Create a video featuring @Image1 and @Image2", "image_urls": ["https://example.com/ref1.jpg", "https://example.com/ref2.jpg"], "duration": 10, "mode": "pro" } }' ``` ## Example - With Elements ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-o1-video", "input": { "video_mode": "elements", "prompt": "@Element1 walks through a park at sunset", "elements": [ {"description": "Woman in red jacket", "type": "image", "image_urls": ["https://example.com/front.jpg"]} ], "duration": 10, "mode": "pro" } }' ``` ## Example - Start/End Frame ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-o1-video", "input": { "prompt": "Smooth transition between scenes", "video_mode": "start_end_frame", "start_frame_url": "https://example.com/start.jpg", "end_frame_url": "https://example.com/end.jpg", "duration": 10, "mode": "pro" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Kling O1 Video Edit Source: https://docs.unifically.com/models/video/kling/kling-o1-video-edit Edit videos with Kling O1. See supported inputs, parameters, pricing, response fields, and API examples. Edit and transform videos using Kling O1 Video Edit with support for reference images. ## Model ``` kuaishou/kling-o1-video-edit ``` ## Parameters Same parameters as Omni 3.0 video edit but does not support `elements`. | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `video_url` | string | **Yes** | - | Source video URL to edit | | `prompt` | string | **Yes** | - | Text prompt describing the edit | | `video_mode` | string | No | `"reference"` | Edit mode: `"reference"` or `"transform"` | | `keep_audio` | boolean | No | `false` | Preserve original audio from the source video | | `mode` | string | No | `"std"` | `"std"` (720p) or `"pro"` (1080p) | | `aspect_ratio` | string | No | `"16:9"` | `"1:1"`, `"9:16"`, or `"16:9"` | | `image_urls` | string\[] | No | - | Reference image URLs (max 4). Use `@Image1`, `@Image2` in prompt | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | **Note:** Duration is locked to the input video length and cannot be set manually. ## Example - Reference Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-o1-video-edit", "input": { "prompt": "Transform into anime style", "video_url": "https://example.com/video.mp4", "video_mode": "reference", "mode": "pro" } }' ``` ## Example - Transform Mode with Reference Images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "kuaishou/kling-o1-video-edit", "input": { "prompt": "Replace the person with @Image1", "video_url": "https://example.com/video.mp4", "video_mode": "transform", "image_urls": ["https://example.com/person.jpg"], "mode": "pro" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # MiniMax Hailuo Source: https://docs.unifically.com/models/video/minimax/hailuo Generate videos through Hailuo with MiniMax 2.0, 2.3, 2.3 Fast, and H3. Generate videos using the models and controls exposed by the official Hailuo website integration. Reference images are downloaded from their public URLs and uploaded to Hailuo automatically. ## Models | Model | Supported mode | | - | - | | `hailuo/minimax-2.0` | Start frame, end frame, or start + end frames | | `hailuo/minimax-2.3` | Start-frame image-to-video | | `hailuo/minimax-2.3-fast` | Faster start-frame image-to-video | | `hailuo/minimax-h3` | Text-to-video, start/end frames, or 1-12 omni-reference images | ## MiniMax 2.0 Provide at least one frame. A start frame, an end frame, or both are supported. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Video prompt, 1-2000 characters | | `start_frame_url` | string | Conditional | Public HTTP(S) start-frame image URL. Required when `end_frame_url` is omitted | | `end_frame_url` | string | Conditional | Public HTTP(S) end-frame image URL. Can be used by itself or with `start_frame_url` | | `duration` | integer | No | `6` (default) or `10` seconds. `1080p` only supports `6` | | `resolution` | string | No | `"512p"`, `"768p"` (default), or `"1080p"` | | `prompt_optimizer` | boolean | No | Enable Hailuo prompt optimization. Default `true`; set `false` to preserve the original prompt | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | The output aspect ratio follows the supplied frame. There is no `aspect_ratio` parameter for MiniMax 2.0. ### Start and end frame example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "hailuo/minimax-2.0", "input": { "prompt": "The subject turns toward the camera and begins dancing", "start_frame_url": "https://example.com/start.jpg", "end_frame_url": "https://example.com/end.jpg", "duration": 6, "resolution": "768p", "prompt_optimizer": true } }' ``` ## MiniMax 2.3 and 2.3 Fast Both models require a start frame. They do not accept an end frame, text-only mode, `aspect_ratio`, or `prompt_optimizer`. | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Video prompt, 1-2000 characters | | `start_frame_url` | string | Yes | Public HTTP(S) start-frame image URL | | `duration` | integer | No | `6` (default) or `10` seconds. `1080p` only supports `6` | | `resolution` | string | No | `"768p"` (default) or `"1080p"` | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | Use `hailuo/minimax-2.3-fast` with the same input object to select the faster model. ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "hailuo/minimax-2.3", "input": { "prompt": "A slow cinematic camera orbit", "start_frame_url": "https://example.com/start.jpg", "duration": 6, "resolution": "1080p" } }' ``` ## MiniMax H3 MiniMax H3 supports three mutually exclusive input modes. | Mode | Inputs | Aspect ratio behavior | | - | - | - | | Text-to-video | Prompt only | Defaults to `"16:9"`; choose any supported fixed ratio | | Frame-guided | `start_frame_url`, optionally `end_frame_url` | Determined automatically by the frame; omit `aspect_ratio` | | Omni-reference | `image_urls` containing 1-12 images | Defaults to `"auto"`; `"auto"` or a fixed ratio may be selected | | Parameter | Type | Required | Description | | - | - | - | - | | `prompt` | string | Yes | Video prompt, 1-2000 characters. In omni-reference mode, use `@Image1` through `@Image12` to identify images | | `image_urls` | string\[] | No | 1-12 public HTTP(S) omni-reference image URLs | | `start_frame_url` | string | No | Public HTTP(S) start-frame image URL. Cannot be combined with `image_urls` | | `end_frame_url` | string | No | Public HTTP(S) end-frame image URL. Requires `start_frame_url` and cannot be combined with `image_urls` | | `aspect_ratio` | string | No | `"auto"`, `"21:9"`, `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, or `"9:16"`. See mode-specific rules above | | `resolution` | string | No | `"768p"` or `"2K"` (default) | | `duration` | integer | No | Any whole number from `4` through `15`. Default `5` | | `nsfw_check` | boolean | No | Check uploaded media inputs for NSFW content. Default: `true` | MiniMax H3 does not accept reference videos, reference audio, `seed`, or `prompt_optimizer`. ### Text-to-video example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "hailuo/minimax-h3", "input": { "prompt": "A street musician performs as the crowd claps along", "aspect_ratio": "21:9", "resolution": "2K", "duration": 10 } }' ``` ### Omni-reference example ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "hailuo/minimax-h3", "input": { "prompt": "@Image1 walks through the location shown in @Image2", "image_urls": [ "https://example.com/character.jpg", "https://example.com/location.jpg" ], "aspect_ratio": "auto", "resolution": "768p", "duration": 6 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` Poll the task status endpoint until it becomes `completed` or `failed`. Failed Hailuo tasks include sanitized upstream diagnostics in task metadata when available. **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Topaz Video Upscale Source: https://docs.unifically.com/models/video/topaz-labs/video-upscale AI-powered video upscaling with selectable Topaz models, enhancement tuning, and optional frame interpolation Upscale videos using Topaz Labs AI models. One endpoint covers both upscale-only and upscale + frame-interpolation flows. Output sizing is set via a `resolution` tier — the long edge maps to exact pixels and the short edge is derived from the probed source aspect ratio. ## Model ``` topaz-labs/video-upscale ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `video_url` | string | Yes | - | Publicly-accessible URL of the source video | | `preset` | string | No | `prob-4` | Topaz upscale model short-code. See [Upscale presets](#upscale-presets) | | `resolution` | string | No | - | Output resolution tier. One of `480p`, `720p`, `1080p`, `1440p`, `4k`, `8k`. Short edge is derived from the source aspect ratio | | `target_fps` | number | No | source fps | Output frame rate. Defaults to the source video's fps | | `frame_interpolation` | boolean | No | `false` | Enable a frame-interpolation pass chained after the upscale. When `true`, `interpolation_preset` is required | | `interpolation_preset` | string | Conditional | - | Required when `frame_interpolation: true`. One of `apo-8`, `apf-2`, `chr-2`, `chf-3` | | `interpolation_settings` | object | No | - | Pass-through key/values for the interpolation filter. Only valid when `frame_interpolation: true`. See [Interpolation settings](#interpolation-settings) | | `extra_settings` | object | No | - | Model-specific enhancement tuning. See [Enhancement parameters](#enhancement-parameters) | | `nsfw_check` | boolean | No | `true` | Check uploaded media inputs for NSFW content | ## Upscale presets | Code | Model | Best for | | - | - | - | | `prob-4` (default) | Proteus | General purpose. Recommended for most sources; handles low-to-medium quality, grainy, or compressed footage | | `rhea-1` | Rhea | 4x high-fidelity upscaling of organic textures, fine detail, and faces. Best for clean or low-res sources | | `thd-3` | Theia Fine Tune Detail | Aggressive per-frame sharpening and detail extraction; may introduce subtle frame-to-frame variation | | `thf-4` | Theia Fine Tune Fidelity | Stable clarity-focused sharpening with reduced artifacts. More consistent than the Detail variant | | `iris-2`, `iris-3` | Iris | Face recovery for degraded footage. Restores faces in old, low-quality, or compressed video | | `gcg-5`, `ghq-5` | Gaia CG / HQ | CGI and animation upscaling. Preserves clean edges and flat colour regions | | `amq-13`, `ahq-12`, `alq-13` | Artemis | Balanced denoise + sharpening across quality tiers (Medium / High / Low quality sources) | | `ddv-3` | Dione DV | Deinterlacing for legacy DV footage | | `dtd-4`, `dtv-4` | Dione TV / Detail | Deinterlacing for broadcast / TV legacy footage | | `nyx-3`, `nxf-1`, `nxl-1`, `nxhf-1` | Nyx | Video denoise variants (standard, fast, lossless, high-fidelity) | | `aaa-9` | Artemis AA / Moiré | Aliasing and moiré artifact correction | | `color-1` | Colorize | Black-and-white to colour conversion | | `thm-2` | Themis | Motion deblur for fast-moving footage | ## Enhancement parameters Pass any of these inside `extra_settings`. Anything omitted is auto-configured by Topaz. Use `auto: "Manual"` to override all values explicitly, or `auto: "Relative"` to use autopilot as a base with your values as offsets. | Key | Type | Range / values | Description | | - | - | - | - | | `auto` | string | `Auto` (default), `Manual`, `Relative` | Parameter mode | | `video_type` | string | `Progressive`, `Interlaced`, `ProgressiveInterlaced` | Source frame/field type | | `field_order` | string | `TopFirst`, `BottomFirst`, `Auto` | Interlaced field order (interlaced sources only) | | `focus_fix_level` | string | `None`, `Normal`, `Strong` | Downscales input before the model for stronger blur correction | | `compression` | float | -1 to 1 | Compression-artifact recovery strength. Higher = more aggressive | | `details` | float | -1 to 1 | Detail reconstruction amount | | `noise` | float | -1 to 1 | Noise reduction. Higher = more reduction | | `blur` | float | -1 to 1 | Sharpness applied to output. Higher = sharper | | `halo` | float | -1 to 1 | Halo reduction around edges | | `preblur` | float | -1 to 1 | Anti-aliasing / deblur applied before the model | | `prenoise` | float | 0 to 0.1 | Adds noise to input to reduce over-smoothing | | `recover_original_detail_value` | float | 0 to 1 | Blends source detail back into the output | | `grain` | float | 0 to 0.1 | Adds film grain after AI processing | | `grain_size` | float | 0 to 5 | Size of generated grain | | `grain_sigma` | float | 0 to 1 | Grain softness | | `grain_type` | string | `silver_rich`, `gaussian`, `grey` | Grain character / style | ## Frame interpolation Set `frame_interpolation: true` to chain a frame-interpolation filter after the upscale. This is used to increase frame rate or create slow motion. | Code | Model | Best for | | - | - | - | | `apo-8` | Apollo | Smooth slow-motion and frame-rate conversion. Handles non-linear motion | | `apf-2` | Apollo Fast | Faster Apollo variant for simpler motion | | `chr-2` | Chronos | Natural slow motion for real-world motion with minimal artifacts | | `chf-3` | Chronos Fast | Faster Chronos variant | ### Interpolation settings Pass any of these inside `interpolation_settings`. Only valid when `frame_interpolation: true`. | Key | Type | Range | Description | | - | - | - | - | | `slowmo` | int | 1–16 | Slow-motion multiplier. `2` makes output 2x slower and doubles duration | | `fps` | number | 15–240 | Target output frame rate without changing duration | | `duplicate` | boolean | - | Detect and remove duplicate frames from input before interpolating | | `duplicateThreshold` | number | 0.001–0.1 | Sensitivity for duplicate-frame detection | ## Resolution Output resolution is set via `resolution`. The long edge is mapped to exact pixels; the short edge is computed from the source aspect ratio so the output matches source orientation. | Tier | Long edge | | - | - | | `480p` | 854 px | | `720p` | 1280 px | | `1080p` | 1920 px | | `1440p` | 2560 px | | `4k` | 3840 px | | `8k` | 7680 px | ## Example - Basic upscale ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/video-upscale", "input": { "video_url": "https://example.com/video.mp4", "resolution": "1080p" } }' ``` ## Example - CGI / animation upscale ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/video-upscale", "input": { "video_url": "https://example.com/animation.mp4", "preset": "gcg-5", "resolution": "4k" } }' ``` ## Example - Face recovery on degraded footage ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/video-upscale", "input": { "video_url": "https://example.com/old-interview.mp4", "preset": "iris-3", "resolution": "1080p" } }' ``` ## Example - Deinterlacing legacy TV footage ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/video-upscale", "input": { "video_url": "https://example.com/legacy-tv.mp4", "preset": "dtv-4", "resolution": "1080p", "extra_settings": { "video_type": "Interlaced", "field_order": "TopFirst" } } }' ``` ## Example - 4K upscale with 2x slow motion ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/video-upscale", "input": { "video_url": "https://example.com/action.mp4", "preset": "prob-4", "resolution": "4k", "frame_interpolation": true, "interpolation_preset": "chr-2", "interpolation_settings": { "slowmo": 2 } } }' ``` ## Example - Interpolate to 60 fps without changing duration ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "topaz-labs/video-upscale", "input": { "video_url": "https://example.com/clip.mp4", "resolution": "1080p", "frame_interpolation": true, "interpolation_preset": "apo-8", "interpolation_settings": { "fps": 60, "duplicate": true } } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Grok Imagine Video 1.5 Source: https://docs.unifically.com/models/video/xai/grok-imagine-1.5-video Generate videos with xAI Grok Imagine 1.5 — image-to-video. See supported inputs, parameters, pricing, response fields, and API examples. Animate a starting image into video using xAI's Grok Imagine 1.5 model. This is the official API version of Grok Imagine 1.5 Video and is **image-to-video only** — a start image is required. Text-to-video is not supported on this model at any aspect ratio. Omitting `start_image_url` fails with `grok-imagine-video-1.5-preview requires a start_image_url`. For text-to-video, use [Grok Imagine Video](/models/video/xai/grok-imagine-video) (the speed-optimized 1.5 build). [Grok Imagine Video Extend](/models/video/xai/grok-imagine-video-extend) and [Grok Imagine Upscale](/models/video/xai/grok-imagine-upscale) do **not** work with this model. They only accept task IDs from `xai/grok-imagine-video` (the speed-optimized 1.5 build). ## Model ``` xai/grok-imagine-1.5-video ``` ## Parameters | Parameter | Type | Required | Default | Allowed Values | Description | | - | - | - | - | - | - | | `start_image_url` | string | Yes | — | public `https://` URL | Start frame image to animate | | `prompt` | string | No | `""` | — | Text prompt guiding the motion | | `duration` | int | No | — | `1`–`15` | Video length in seconds | | `resolution` | string | No | — | `"480p"`, `"720p"`, `"1080p"` | Output resolution | | `nsfw_check` | boolean | No | `true` | `true`, `false` | Check uploaded media inputs for NSFW content | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-1.5-video", "input": { "start_image_url": "https://example.com/start-frame.jpg", "prompt": "Camera slowly zooms in while clouds drift across the sky", "duration": 10, "resolution": "1080p" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Grok Imagine Upscale Source: https://docs.unifically.com/models/video/xai/grok-imagine-upscale Upscale a Grok Imagine video to HD. See supported inputs, parameters, pricing, response fields, and API examples. Upscale a completed xAI Grok Imagine video to a higher-definition result. Provide the task ID of the source generation. Upscale only works on videos generated with [Grok Imagine Video](/models/video/xai/grok-imagine-video) (`xai/grok-imagine-video`, the speed-optimized 1.5 build). Task IDs from [Grok Imagine Video 1.5](/models/video/xai/grok-imagine-1.5-video) (`xai/grok-imagine-1.5-video`) are not supported — that model is API-level and separate. ## Model ``` xai/grok-imagine-upscale ``` ## Parameters | Parameter | Type | Required | Default | Description | | - | - | - | - | - | | `task_id` | string | Yes | — | Task ID of a completed Grok Imagine video generation. Returns an HD-upscaled result. | ## Example Request ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-upscale", "input": { "task_id": "abc123def456" } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Grok Imagine Video Source: https://docs.unifically.com/models/video/xai/grok-imagine-video Generate videos with xAI Grok Imagine. See supported inputs, parameters, pricing, response fields, and API examples. Generate high-quality AI videos using xAI's Grok Imagine model. xAI upgraded the model behind `xai/grok-imagine-video`: it used to run Grok Imagine 1.0 Video, and now runs a **speed-optimized build of Grok Imagine 1.5 Video** — faster results in exchange for a small amount of quality. This build differs from the official API version, which is available separately as [Grok Imagine Video 1.5](/models/video/xai/grok-imagine-1.5-video). ## Model ``` xai/grok-imagine-video ``` ## Parameters | Parameter | Type | Required | Default | Allowed Values | Description | | - | - | - | - | - | - | | `prompt` | string | Yes | — | — | Video prompt. Use `@ImageN` for an item in `image_urls`, or `@audio1` for the request-level `voice` | | `aspect_ratio` | string | No | `"1:1"` | `"1:1"`, `"2:3"`, `"3:2"`, `"9:16"`, `"16:9"` | Output aspect ratio | | `duration` | int | No | `6` | `1`–`30` | Video duration in seconds | | `resolution` | string | No | `"720p"` | `"480p"`, `"720p"`, `"1080p"` | Output resolution | | `start_image_url` | string | No | `null` | — | Start frame image URL. Cannot be combined with `image_urls` or media references | | `image_urls` | string\[] | No | `null` | 1–7 URLs | Ordered reference images. Cannot be combined with `start_image_url` | | `character_id` | string | No | `null` | — | ID of an existing saved Grok character reference | | `character` | object | No | `null` | — | Transient character reference: 3 images, or 2 images plus a preset `voice` | | `prop` | object | No | `null` | — | Transient prop reference containing a name and 1–3 images | | `location` | object | No | `null` | — | Transient location reference containing a name and 1–3 images | | `voice` | string | No | `null` | [Grok voice ID](/api-reference/resources#get-grok-imagine-voices) | Case-insensitive preset voice name. Audio URLs are not accepted | | `audio` | boolean | No | `true` | `true`, `false` | Generate audio. For `true`, `skipAudio` is omitted upstream; `false` sends `skipAudio: true` | | `video_preset` | string | No | `"custom"` | `"custom"`, `"spicy"`, `"fun"`, `"normal"` | Generation style preset | | `nsfw_check` | boolean | No | `true` | `true`, `false` | Check uploaded media inputs for NSFW content | Audio generation works for both text-to-video and requests with visual references. Set `audio: false` only when you want to suppress generated audio. A preset `voice` still requires a visual input and cannot be combined with `audio: false`. ### Media reference objects | Object | Required fields | Rules | | - | - | - | | `character` | `image_urls` | Exactly 3 images without a voice, or exactly 2 images plus one preset `voice`. `name` and `description` are optional | | `prop` | `name`, `image_urls` | 1–3 images. `description` is optional | | `location` | `name`, `image_urls` | 1–3 images. `description` is optional | Transient `character`, `prop`, and `location` references are created for the task and automatically deleted after the generation completes or fails. A caller-provided `character_id` is never deleted. **Video presets:** | Preset | Style | | - | - | | `custom` | Default generation | | `spicy` | Extremely spicy/NSFW | | `fun` | Extremely crazy/fun | | `normal` | Normal style | ## Example requests ### Text to video Text-only requests can generate audio. This example disables it explicitly. ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-video", "input": { "prompt": "A futuristic cityscape at sunset with flying cars", "duration": 10, "resolution": "1080p", "aspect_ratio": "16:9", "audio": false, "video_preset": "custom" } }' ``` ### Image to video with generated audio ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-video", "input": { "prompt": "Camera slowly zooms in while clouds move across the sky", "start_image_url": "https://example.com/landscape.jpg", "audio": true, "duration": 6, "resolution": "720p", "aspect_ratio": "16:9" } }' ``` ### Reference images ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-video", "input": { "prompt": "The woman in @Image1 walks into the neon-lit bar from @Image2", "image_urls": [ "https://example.com/woman.jpg", "https://example.com/neon-bar.jpg" ], "audio": false, "duration": 10, "resolution": "720p", "aspect_ratio": "16:9" } }' ``` ### Character with a preset voice ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-video", "input": { "prompt": "The host looks into the camera and welcomes the audience", "character": { "name": "Host", "description": "A friendly studio presenter", "image_urls": [ "https://example.com/host-front.jpg", "https://example.com/host-side.jpg" ], "voice": "eve" }, "audio": true, "duration": 6, "resolution": "480p", "aspect_ratio": "16:9" } }' ``` Use `GET /v1/resources/grok/voices` to discover all preset IDs, descriptions, tags, and preview URLs. Voice names are converted to Grok's internal asset IDs by the API. ## Prompt references | Token | Refers to | | - | - | | `@Image1`, `@Image2`, … | Items from `image_urls`, in the order sent | | `@audio1` | The request-level preset selected with `voice` | Prompt references are only available on `xai/grok-imagine-video`. [Grok Imagine Video 1.5](/models/video/xai/grok-imagine-1.5-video) takes a single `start_image_url` and does not support reference assets. ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "abc123def456", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing. # Grok Imagine Video Extend Source: https://docs.unifically.com/models/video/xai/grok-imagine-video-extend Extend videos with xAI Grok Imagine. See supported inputs, parameters, pricing, response fields, and API examples. Extend a previously generated video using xAI's Grok Imagine model via HTTP streaming. Provide the `task_id` of a completed video generation and choose between **preset mode** or **custom mode**. Extend only works on videos generated with [Grok Imagine Video](/models/video/xai/grok-imagine-video) (`xai/grok-imagine-video`, the speed-optimized 1.5 build). Task IDs from [Grok Imagine Video 1.5](/models/video/xai/grok-imagine-1.5-video) (`xai/grok-imagine-1.5-video`) are not supported — that model is API-level and separate. ## Model ``` xai/grok-imagine-video-extend ``` ## Modes There are two mutually exclusive modes: | Mode | How to activate | Behaviour | | - | - | - | | **Preset** | Provide `video_preset` | The preset controls the video style. `prompt`, `extend_at`, and `extend_duration` are ignored | | **Custom** | Omit `video_preset` | You control timing and prompt. `prompt`, `extend_at`, and `extend_duration` are required | ## Parameters | Parameter | Type | Required | Description | | - | - | - | - | | `task_id` | string | Yes | Task ID of a completed video generation | | `video_preset` | string | No | `"spicy"` or `"normal"`. Enables preset mode | | `prompt` | string | No | Text prompt to guide the extension. **Required in custom mode** | | `extend_at` | float | No | Second in the source video to start the extension from. **Required in custom mode** | | `extend_duration` | int | No | Length of the extension: `6` or `10` seconds. **Required in custom mode** | ## Example Requests ### Preset Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-video-extend", "input": { "task_id": "abc123def456", "video_preset": "spicy" } }' ``` ### Custom Mode ```bash theme={null} curl -X POST https://api.unifically.com/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "xai/grok-imagine-video-extend", "input": { "task_id": "abc123def456", "prompt": "The camera continues panning right to reveal a mountain range", "extend_at": 8.5, "extend_duration": 10 } }' ``` ## Response ```json theme={null} { "code": 200, "success": true, "data": { "task_id": "xyz789ghi012", "status": "processing" } } ``` **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing.