# 01router — Gateway API reference > A single REST API for image, video, audio and chat models across fal.ai, Replicate, WaveSpeedAI, KIE AI, APIMart, EvoLink, AtlasCloud, Vercel AI Gateway and OpenRouter. Base URL: https://01router.com/api/v1 Documentation: https://01router.com/docs Index: https://01router.com/docs/llms.txt?locale=en Full reference: https://01router.com/docs/llms-full.txt?locale=en Generation, task history, cancellation and chat require a key. Catalogs, prompts and quotes are public. Keep the API key on your server. Responses are illustrative. IDs, usage, prices and results depend on the actual request. Source: https://01router.com/docs # Quickstart Choose a model, send a request, and retrieve your result. Start here for your first API call. ## cURL ```bash curl 'https://01router.com/api/v1/models?type=video' ``` ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-2.5", "input": { "prompt": "A red fox running through fresh snow, cinematic" } }' ``` ## cURL ```bash curl 'https://01router.com/api/v1/generations/gen_example' \ -H "Authorization: Bearer $API_KEY" ``` ## Usage notes - Generation, task history, cancellation and chat require a key. Catalogs, prompts and quotes are public. Keep the API key on your server. - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. - Model parameters are loaded from the live catalog. --- Source: https://01router.com/docs/auth # Authentication Send your API key as a Bearer token. Requests are billed to the key owner's credits. ## Authorization header ```http Authorization: Bearer YOUR_API_KEY Content-Type: application/json ``` ## Usage notes - Generation, task history, cancellation and chat require a key. Catalogs, prompts and quotes are public. Keep the API key on your server. --- Source: https://01router.com/docs/projects # Projects A project is the unit of integration: each one has its own API keys, model scope, providers and price ratio. Requests made with a project key apply that project's configuration automatically, and your frontend can fetch the priced model catalog by project ID. ## Read the project catalog ```bash curl 'https://01router.com/api/v1/models?project=YOUR_PROJECT_ID&type=video' ``` ## Call a custom model ID ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "my-video-lite", "input": { "prompt": "A red fox running through fresh snow, cinematic" } }' ``` ## Quote with project settings ```bash curl 'https://01router.com/api/v1/quote' \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-2.5", "input": { "prompt": "A red fox running through fresh snow, cinematic" }, "project": "YOUR_PROJECT_ID" }' ``` ## Usage notes - Create projects on the Projects page of the dashboard. An account can have up to 20 projects and each project up to 20 API keys. A new project serves all models at a 100% price ratio. All projects share the account's credit balance. - With "All models" on, every catalog model can be called and models without their own entry are routed to the cheapest provider. With it off, only configured models can be called; others return 400 (Model xxx is not enabled in this project). - A configured model can pin a provider and set its own price ratio and sort order (smaller first). Once pinned, requests for that model go only to that provider and the request's provider field is ignored. - You can list a platform model again under a custom model ID (lowercase letters, digits, . _ -, up to 64 characters, not an existing platform model) bound to another provider and name, e.g. a standard and a budget tier. Send the custom ID as model to call it. - The price ratio is an integer from 1 to 1000 (100 = platform price, 120 = +20%). It only changes the prices shown to your users in the project catalog. You are always charged the platform price in credits; charging your end users the difference is up to your product. - GET /api/v1/models?project=YOUR_PROJECT_ID is public and needs no key. It returns the enabled models, their parameters and ratio-adjusted prices (USD), optionally filtered by type. The project ID may live in your frontend; the API key must not. With a project domain set, only browsers on that domain and its subdomains can read it cross-origin; without one, any origin can. - Every API key belongs to one project and requests use that project's configuration, so the project field in the body can be omitted. If sent, it must match the key's project or the request returns 403. The keyless /quote endpoint accepts project to quote with the project's model mapping and providers (at platform prices). - Each key can have a credit quota (never reset, or reset daily / weekly / monthly in a chosen time zone); exceeding it returns 429 quota_exceeded. An IP allowlist (up to 50 entries, IPv4 CIDR supported) treats other IPs as an invalid key. An expiry of 1 / 7 / 30 / 90 / 180 / 365 days or never. Deleting a project disables its catalog and its keys' calls. --- Source: https://01router.com/docs/create # Create a generation Pass the model id, its unified input parameters and optionally a provider slug. The response returns immediately with the task id; image models on synchronous providers may already be succeeded. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-2.5", "input": { "prompt": "A red fox running through fresh snow, cinematic" } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "seedance-2.5", "type": "video", "provider": "01router", "status": "processing", "input": { "prompt": "A red fox running through fresh snow, cinematic" }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. --- Source: https://01router.com/docs/poll # Get the result Poll every few seconds until status is succeeded or failed. Output URLs are provider-hosted and may expire — download them promptly. Or pass callback_url to get the result pushed. `GET /api/v1/generations/{id}` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string · path | yes | Generation ID returned by the create request. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations/gen_example' \ -H "Authorization: Bearer $API_KEY" ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "seedance-2.5", "type": "video", "provider": "01router", "status": "succeeded", "input": { "prompt": "A red fox running through fresh snow, cinematic" }, "outputs": [ "https://example.com/result.mp4" ], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": "2026-10-25T08:01:00.000Z" } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. --- Source: https://01router.com/docs/list # List generations List your generations (page, pageSize) `GET /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | page | integer | no | Page number, starting at 1. | default: 1; min: 1; max: 10000 | | pageSize | integer | no | Results per page, from 1 to 100; default 20. | default: 20; min: 1; max: 100 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | data | array | — | Generation objects with the same fields as the generation detail response. | | | total | integer | — | Total number of matching records. | | | page | integer | — | Page number, starting at 1. | | | pageSize | integer | — | Results per page, from 1 to 100; default 20. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations?page=1&pageSize=20' \ -H "Authorization: Bearer $API_KEY" ``` ## 200 · application/json ```json { "object": "list", "data": [ { "id": "gen_example", "object": "generation", "model": "seedance-2.5", "type": "video", "provider": "01router", "status": "processing", "input": { "prompt": "A red fox running through fresh snow, cinematic" }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ], "total": 1, "page": 1, "pageSize": 20 } ``` --- Source: https://01router.com/docs/cancel # Cancel a task POST /generations/:id/cancel asks the provider to stop a running task. Once the provider confirms, the task ends as failed with error "Canceled by user" and its credits are refunded. Supported on fal (while still queued) and Replicate; other providers, or tasks already finished, answer 409 not_cancelable. `POST /api/v1/generations/{id}/cancel` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string · path | yes | Generation ID returned by the create request. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl -X POST 'https://01router.com/api/v1/generations/gen_example/cancel' \ -H "Authorization: Bearer $API_KEY" ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "seedance-2.5", "type": "video", "provider": "01router", "status": "failed", "input": { "prompt": "A red fox running through fresh snow, cinematic" }, "outputs": [], "error": "Canceled by user", "credits": 0, "price_usd": 0, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": "2026-10-25T08:01:00.000Z" } ``` --- Source: https://01router.com/docs/images # OpenAI-compatible images POST /images/generations accepts the OpenAI images API, so the OpenAI SDKs, LobeChat, Cherry Studio, Dify and n8n can use every image model here. size maps to the closest aspect_ratio, n to num_images, and any model parameter can be passed as an extra field. It waits up to ~110s; a slower task returns 504 with its id to poll. `POST /api/v1/images/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | | | prompt | string | yes | Text describing the requested image. Required and non-empty. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | size | string | no | Width x height, such as 1024x1024, or auto. Maps to the nearest supported aspect ratio when needed. | | | n | integer | no | Positive integer, default 1. Multiple images require the model to support num_images. | default: 1; min: 1 | | response_format | string | no | url (default) or b64_json. If base64 conversion fails or exceeds the size limit, that item falls back to a URL. | default: "url"; options: [ "url", "b64_json" ] | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | created | integer | — | Unix timestamp in seconds. | | | data | array | — | Each item has url or b64_json depending on response_format and conversion availability. | | | id | string | — | Generation ID returned by the create request. | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | ## cURL ```bash curl 'https://01router.com/api/v1/images/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "nano-banana-pro", "prompt": "A minimalist poster of a paper crane", "size": "1024x1024" }' ``` ## 200 · application/json ```json { "created": 1792915200, "data": [ { "url": "https://example.com/result.png" } ], "id": "gen_example", "model": "nano-banana-pro", "credits": 10 } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. - For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. --- Source: https://01router.com/docs/chat # Chat completions Chat models (GPT, Claude, Gemini, Grok, DeepSeek…) use the OpenAI Chat Completions format, so the official OpenAI SDKs work with base URL https://01router.com/api/v1. Set "stream": true for server-sent events. Credits for the prompt plus max_tokens (4,096 when unset) are held first, then settled to the real token usage once the reply ends; the same request id appears in the X-Gateway-Request-Id header and the task log. `POST /api/v1/chat/completions` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | | | messages | object[] | yes | Non-empty message array with role and content; content may contain supported multimodal parts. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | stream | boolean | no | Default false. true returns text/event-stream chunks and ends with data: [DONE]. | default: false | | max_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | default: 4096; min: 1 | | max_completion_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | | | temperature | number | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | tools | object[] | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | response_format | object | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | string | — | chat.completion / chat.completion.chunk | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | choices | array | — | Completion choices. Non-streaming replies use choices[].message; streaming chunks use choices[].delta. | | | usage | object | — | prompt_tokens, completion_tokens and total_tokens. Streaming includes usage when supplied by the provider. | | ## cURL ```bash curl 'https://01router.com/api/v1/chat/completions' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-6-sol", "messages": [ { "role": "user", "content": "Hello!" } ], "max_tokens": 512, "stream": false }' ``` ## 200 · application/json ```json { "id": "chat_example", "object": "chat.completion", "model": "gpt-6-sol", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello!" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 8, "completion_tokens": 2, "total_tokens": 10 } } ``` ## SSE · stream: true ```text data: {"id":"chat_example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello!"},"finish_reason":null}]} data: [DONE] ``` ## Usage notes - OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. --- Source: https://01router.com/docs/quote # Quote Same body as creating a generation. Returns every available provider sorted by price, plus the ones that cannot serve the request and why. `POST /api/v1/quote` Public · No API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | providers | array | — | Available providers sorted by price, with unit, quantity, price_usd, original_price_usd and credits. | | | unavailable | array | — | Rejected providers and the reason each cannot serve the request. | | ## cURL ```bash curl 'https://01router.com/api/v1/quote' \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-2.5", "input": { "prompt": "A red fox running through fresh snow, cinematic" } }' ``` ## 200 · application/json ```json { "model": "seedance-2.5", "type": "video", "input": { "prompt": "A red fox running through fresh snow, cinematic" }, "providers": [ { "provider": "01router", "provider_name": "01Router", "unit": "second", "quantity": 5, "price_usd": 1, "original_price_usd": null, "credits": 100 } ], "unavailable": [] } ``` --- Source: https://01router.com/docs/models # List models GET /api/v1/models returns platform models, parameters and prices. Add the project query parameter for a project catalog, and type=video|image|audio|chat to filter. `GET /api/v1/models` Public · No API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | type | string | no | video / image / audio / chat | options: [ "video", "image", "audio", "chat" ] | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | data | array | — | Model objects with slug, name, type, vendor, params and providers. Provider entries include their effective params and price tiers. | | ## cURL ```bash curl 'https://01router.com/api/v1/models' ``` ## cURL ```bash curl 'https://01router.com/api/v1/models?type=video' ``` ## 200 · application/json ```json { "object": "list", "data": [ { "id": "seedance-2.5", "object": "model", "owned_by": "ByteDance", "slug": "seedance-2.5", "name": "Seedance 2.5", "type": "video", "vendor": "ByteDance", "description": "", "tags": [], "coverUrl": "", "params": [ { "name": "prompt", "type": "text", "required": true } ], "providers": [], "fromMicros": null, "fromOriginalMicros": null, "fromUnit": null } ] } ``` --- Source: https://01router.com/docs/model-detail # Get one model Model objects with slug, name, type, vendor, params and providers. Provider entries include their effective params and price tiers. `GET /api/v1/models/{slug}` Public · No API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | slug | string · path | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | slug | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | params | array | — | Parameter definitions: name, type, required, default, options, min, max, maxItems and maxLength when configured. | | | providers | array | — | Available providers with their parameter constraints and public price tiers. | | ## cURL ```bash curl 'https://01router.com/api/v1/models/seedance-2.5' ``` ## 200 · application/json ```json { "slug": "seedance-2.5", "name": "Seedance 2.5", "type": "video", "vendor": "ByteDance", "description": "", "tags": [], "coverUrl": "", "params": [ { "name": "prompt", "type": "text", "required": true } ], "providers": [], "fromMicros": null, "fromOriginalMicros": null, "fromUnit": null } ``` --- Source: https://01router.com/docs/project-models # Project model catalog Use GET /api/v1/models?project={id} to read a project’s public model catalog, including its chosen providers and resale prices. Omit project for platform models; append &type=video or another type to filter. `GET /api/v1/models` Public · No API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | project | string · query | no | Optional project ID. Use its published model catalog and routing configuration. | | | type | string | no | video / image / audio / chat | options: [ "video", "image", "audio", "chat" ] | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | project | object | — | id, name | | | data | array | — | Project model objects: slug, name, type, vendor, description, tags, coverUrl, provider, providerName, params, prices, fromMicros and fromUnit. Prices include the project markup; these entries have one provider, not a providers array. | | ## cURL ```bash curl 'https://01router.com/api/v1/models?project=YOUR_PROJECT_ID' ``` ## cURL ```bash curl 'https://01router.com/api/v1/models?project=YOUR_PROJECT_ID&type=video' ``` ## 200 · application/json ```json { "object": "list", "project": { "id": "YOUR_PROJECT_ID", "name": "Example project" }, "data": [] } ``` --- Source: https://01router.com/docs/prompts # Prompt API Public read-only endpoints: no API key or credits required. Browse published examples for active models using combined model, source and scene filters. `GET /api/v1/prompts` Public · No API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | no | Optional model slug, such as seedance-2.5. Omit to query all models. The categories array lists available models and their collected prompt counts. | | | source | string | no | Optional source domain, such as evolink.ai. seed means seeded examples; unknown means unspecified. Use a name from sources. This is provenance, not a provider routing parameter. | | | scene | string | no | Optional exact scene name, such as Cinematic Story. Use a name from scenes and URL-encode query values. | | | locale | string | no | Optional: en or zh; defaults to en. Includes matching-language and language-neutral records. Also supported by the detail endpoint. | default: "en"; options: [ "en", "zh" ] | | page | integer | no | Optional integer from 1 to 100000; defaults to 1. Fixed page size of 24. Values above the last page return the last page; empty results have total_pages: 1. | default: 1; min: 1; max: 100000 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | data | array | — | Published prompt objects: id, title, prompt, category, source, mediaType, mediaUrl, modelSlug and modelName. | | | total | integer | — | Total number of matching records. | | | page / page_size / total_pages | integer | — | Optional integer from 1 to 100000; defaults to 1. Fixed page size of 24. Values above the last page return the last page; empty results have total_pages: 1. | | | categories / sources / scenes | array | — | Available model categories, sources and scenes with counts. Counts use the filter scopes described below. | | ## cURL ```bash curl 'https://01router.com/api/v1/prompts?model=seedance-2.5&locale=en&page=1' ``` ## 200 · application/json ```json { "object": "list", "data": [ { "id": "prompt_example", "title": "Cinematic landscape", "prompt": "A cinematic landscape at sunrise.", "category": "Cinematic Story", "source": "evolink.ai", "mediaType": "video", "mediaUrl": "https://example.com/video.mp4", "modelSlug": "seedance-2.5", "modelName": "Seedance 2.5" } ], "total": 1, "page": 1, "page_size": 24, "total_pages": 1, "categories": [ { "slug": "seedance-2.5", "name": "Seedance 2.5", "type": "video", "total": 1 } ], "sources": [ { "name": "evolink.ai", "total": 1 } ], "scenes": [ { "name": "Cinematic Story", "total": 1 } ] } ``` ## Usage notes - Illustrative response below; counts and content depend on your query. data contains prompts. categories lists all model categories for the locale. sources counts reflect the current model; scenes counts reflect the model and source. total applies all filters. category is the scene; modelSlug is the model category. - Use modelSlug and prompt to construct the request body below for POST /generations. Generation still requires an API key and incurs model charges. Query GET /models/{slug} for any additional required inputs. - Invalid parameters return 400. Missing, disabled or locale-unavailable model categories and prompts return 404. Valid categories with no matching results return 200 and empty data. Requests to the same path are limited by IP to intervals of at least 200 ms; 429 includes Retry-After. Successful responses are cacheable for 60 seconds. --- Source: https://01router.com/docs/prompt-detail # Prompt details Replace with an id from the list. Returns a prompt object directly with object: "prompt" and the same fields as one data item, without a data wrapper. Only publicly visible records for the requested locale are returned. `GET /api/v1/prompts/{id}` Public · No API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string · path | yes | Replace with an id from the list. Returns a prompt object directly with object: "prompt" and the same fields as one data item, without a data wrapper. Only publicly visible records for the requested locale are returned. | | | locale | string | no | Optional: en or zh; defaults to en. Includes matching-language and language-neutral records. Also supported by the detail endpoint. | default: "en"; options: [ "en", "zh" ] | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | object | "prompt" | — | prompt | | | prompt | string | — | Published prompt objects: id, title, prompt, category, source, mediaType, mediaUrl, modelSlug and modelName. | | | modelSlug | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | ## cURL ```bash curl 'https://01router.com/api/v1/prompts/prompt_example?locale=en' ``` ## 200 · application/json ```json { "object": "prompt", "id": "prompt_example", "title": "Cinematic landscape", "prompt": "A cinematic landscape at sunrise.", "category": "Cinematic Story", "source": "evolink.ai", "mediaType": "video", "mediaUrl": "https://example.com/video.mp4", "modelSlug": "seedance-2.5", "modelName": "Seedance 2.5" } ``` ## Usage notes - Invalid parameters return 400. Missing, disabled or locale-unavailable model categories and prompts return 404. Valid categories with no matching results return 200 and empty data. Requests to the same path are limited by IP to intervals of at least 200 ms; 429 includes Retry-After. Successful responses are cacheable for 60 seconds. --- Source: https://01router.com/docs/callback # Callbacks Add callback_url (public https) and we POST the final generation object to it once the task succeeds or fails, retrying up to 5 times with backoff, so you don't need to poll. ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-2.5", "input": { "prompt": "A red fox running through fresh snow, cinematic" }, "callback_url": "https://your-app.com/webhooks/generation" }' ``` ## Node.js · HMAC-SHA256 ```javascript import { createHmac, timingSafeEqual } from 'node:crypto'; // rawBody is the original request body, before JSON parsing. const timestamp = request.headers.get('x-gateway-timestamp') ?? ''; const signature = request.headers.get('x-gateway-signature') ?? ''; const expected = 'sha256=' + createHmac('sha256', process.env.API_KEY) .update(timestamp + '.' + rawBody).digest('hex'); const received = Buffer.from(signature); const signed = Buffer.from(expected); const fresh = /^\d+$/.test(timestamp) && Math.abs(Date.now() / 1000 - Number(timestamp)) <= 300; const valid = fresh && received.length === signed.length && timingSafeEqual(received, signed); if (!valid) throw new Error('Invalid callback signature'); ``` ## Usage notes - Each callback carries X-Gateway-Timestamp and X-Gateway-Signature: sha256=HMAC-SHA256(your API key, timestamp + "." + raw body). Verify it, or simply re-fetch GET /generations/:id. - Handle callbacks idempotently by generation ID. Verify the signature against the original raw body and reject stale timestamps. A session-created task may have no signature; API integrations should create tasks with a key. --- Source: https://01router.com/docs/routing # Provider routing Without provider we validate the input against every provider's supported values, price it, and submit to the cheapest one. If submission fails we refund and try the next provider (up to 3). With provider the request goes only there. ## Usage notes - Automatic circuit breaker: a provider that fails 5 submissions in a row for a model is moved to the back of the line for 5 minutes, so requests go to healthy providers first. It still serves as the last fallback, and one success restores it. - Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. --- Source: https://01router.com/docs/billing # Billing Credits are charged when the task is submitted, based on the chosen provider's price for your parameters (per second of video, per image or per request). Failed or timed-out tasks are refunded automatically. ## Usage notes - Chat models (GPT, Claude, Gemini, Grok, DeepSeek…) use the OpenAI Chat Completions format, so the official OpenAI SDKs work with base URL https://01router.com/api/v1. Set "stream": true for server-sent events. Credits for the prompt plus max_tokens (4,096 when unset) are held first, then settled to the real token usage once the reply ends; the same request id appears in the X-Gateway-Request-Id header and the task log. - Same body as creating a generation. Returns every available provider sorted by price, plus the ones that cannot serve the request and why. --- Source: https://01router.com/docs/audio # Audio models Music (Suno) and text-to-speech (Gemini TTS) models use the same /generations flow as images and video: create a task, then poll it. Outputs are audio file URLs. ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-3.8-flash-tts", "input": { "prompt": "Welcome back, let us get started.", "voice": "Kore" } }' ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. --- Source: https://01router.com/docs/errors # Errors Check the HTTP status and error.message. Some rate-limit responses use a message envelope and Retry-After. Error codes for a given status can vary by endpoint. ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | 400 · invalid_request | HTTP | — | Invalid body or parameter value | | | 401 · unauthorized | HTTP | — | Missing or invalid API key | | | 402 · insufficient_credits | HTTP | — | Not enough credits | | | 403 · invalid_request | HTTP | — | The key or project does not allow this model, provider or request origin. | | | 404 · not_found | HTTP | — | Unknown model or generation | | | 409 · not_cancelable | HTTP | — | The task cannot be canceled (already finished, or the provider does not support canceling) | | | 429 · rate_limited / concurrency_limit | HTTP | — | Too many requests — retry after the given seconds · Too many tasks running for this API key; wait for some to finish | | | 502 · upstream_error | HTTP | — | Every provider rejected the task (credits refunded) | | | 503 · no_provider / upstream_error | HTTP | — | No provider supports these parameters | | | 504 · timeout | HTTP | — | Image is still generating after the wait; poll GET /generations/:id | | ## 401 · application/json ```json { "error": { "message": "Invalid or missing API key", "code": "unauthorized" } } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. --- ## Model reference Source: https://01router.com/docs/models/grok-imagine-video-1.5 # Grok Imagine Video 1.5 API Grok Imagine Video 1.5: 1–15 second videos with synchronized audio, at 480p, 720p or 1080p. Image-to-video follows the source image aspect ratio. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "grok-imagine-video-1.5" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | maxLength: 4096 | | input.image_url | string | no | Optional start image (image-to-video) | | | input.duration | integer | no | | default: 6; min: 1; max: 15 | | input.resolution | enum | no | | default: "720p"; options: [ "480p", "720p", "1080p" ] | | input.aspect_ratio | enum | no | Text-to-video only; image-to-video follows the source image. | default: "16:9"; options: [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ] | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "grok-imagine-video-1.5", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 6, "resolution": "720p", "aspect_ratio": "16:9" } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "grok-imagine-video-1.5", "type": "video", "provider": "01router", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 6, "resolution": "720p", "aspect_ratio": "16:9" }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "01router", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] }, { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "3:2", "2:3" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "3:2", "2:3" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "3:2", "2:3" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p" ], "default": "480p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] }, { "provider": "vercel", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] }, { "provider": "openrouter", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] } ] ``` --- Source: https://01router.com/docs/models/seedance-2.5 # Seedance 2.5 API ByteDance’s flagship video model: up to 30 s in one pass, native synchronized audio, first/last-frame control. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "seedance-2.5" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_url | string | no | Optional start image (image-to-video) | | | input.end_image_url | string | no | | | | input.duration | integer | no | | default: 5; min: 4; max: 30 | | input.resolution | enum | no | | default: "720p"; options: [ "480p", "720p", "1080p" ] | | input.aspect_ratio | enum | no | | default: "16:9"; options: [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ] | | input.generate_audio | boolean | no | | default: true | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-2.5", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": true } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "seedance-2.5", "type": "video", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": true }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "01router", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p" ], "default": "480p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p" ], "default": "480p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "vercel", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] } ] ``` --- Source: https://01router.com/docs/models/grok-imagine-video-1.5-lite # Grok Imagine Video 1.5 Lite API Grok Imagine Video 1.5 Lite: 1–15 second videos with synchronized audio, at 480p, 720p or 1080p. Image-to-video follows the source image aspect ratio. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "grok-imagine-video-1.5-lite" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | maxLength: 4096 | | input.image_url | string | no | Optional start image (image-to-video) | | | input.duration | integer | no | | default: 6; min: 1; max: 15 | | input.resolution | enum | no | | default: "720p"; options: [ "480p", "720p", "1080p" ] | | input.aspect_ratio | enum | no | Text-to-video only; image-to-video follows the source image. | default: "16:9"; options: [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ] | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "grok-imagine-video-1.5-lite", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 6, "resolution": "720p", "aspect_ratio": "16:9" } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "grok-imagine-video-1.5-lite", "type": "video", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 6, "resolution": "720p", "aspect_ratio": "16:9" }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] }, { "provider": "01router", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p" ], "default": "480p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] }, { "provider": "vercel", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] }, { "provider": "openrouter", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true, "maxLength": 4096 }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 1, "max": 15, "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16" ], "default": "16:9", "description": "Text-to-video only; image-to-video follows the source image." } ] } ] ``` --- Source: https://01router.com/docs/models/minimax-h3-max # MiniMax H3 Max API MiniMax H3 post-trained by fal for speed: 5–15 s clips with first/last frame, ranked #1 on video arenas. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "minimax-h3-max" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_url | string | no | Optional start image (image-to-video) | | | input.end_image_url | string | no | | | | input.duration | integer | no | | default: 5; min: 5; max: 15 | | input.resolution | enum | no | | default: "768p"; options: [ "480p", "768p", "1080p" ] | | input.aspect_ratio | enum | no | | default: "16:9"; options: [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ] | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "minimax-h3-max", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "768p", "aspect_ratio": "16:9" } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "minimax-h3-max", "type": "video", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "768p", "aspect_ratio": "16:9" }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "768p", "1080p" ], "default": "768p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" } ] }, { "provider": "01router", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "768p", "1080p" ], "default": "768p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "768p", "1080p" ], "default": "768p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "768p", "480p" ], "default": "768p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p" ], "default": "480p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" } ] }, { "provider": "vercel", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "768p", "480p" ], "default": "768p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" } ] } ] ``` --- Source: https://01router.com/docs/models/seedance-2.0 # Seedance 2.0 API Multi-shot Seedance generation with synchronized audio and first/last-frame control, 4–15 s. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "seedance-2.0" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_url | string | no | Optional start image (image-to-video) | | | input.end_image_url | string | no | | | | input.duration | integer | no | | default: 5; min: 4; max: 15 | | input.resolution | enum | no | | default: "720p"; options: [ "480p", "720p", "1080p" ] | | input.aspect_ratio | enum | no | | default: "16:9"; options: [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ] | | input.generate_audio | boolean | no | | default: true | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-2.0", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": true } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "seedance-2.0", "type": "video", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": true }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "480p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "01router", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "480p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p" ], "default": "480p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "vercel", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] } ] ``` --- Source: https://01router.com/docs/models/seedance-2.0-mini # Seedance 2.0 Mini API Faster, lower-cost Seedance 2.0 for drafts and high-volume generation (480p/720p). `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "seedance-2.0-mini" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_url | string | no | Optional start image (image-to-video) | | | input.end_image_url | string | no | | | | input.duration | integer | no | | default: 5; min: 4; max: 15 | | input.resolution | enum | no | | default: "720p"; options: [ "480p", "720p" ] | | input.aspect_ratio | enum | no | | default: "16:9"; options: [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ] | | input.generate_audio | boolean | no | | default: true | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-2.0-mini", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": true } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "seedance-2.0-mini", "type": "video", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": true }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "01router", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p" ], "default": "480p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "vercel", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 4, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] } ] ``` --- Source: https://01router.com/docs/models/minimax-h3 # MiniMax H3 API MiniMax Hailuo H3 with native 768p and 2K output, 4–15 s, first/last frame. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "minimax-h3" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_url | string | no | Optional start image (image-to-video) | | | input.end_image_url | string | no | | | | input.duration | integer | no | | default: 5; min: 5; max: 15 | | input.resolution | enum | no | | default: "768p"; options: [ "768p", "2k" ] | | input.aspect_ratio | enum | no | | default: "16:9"; options: [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ] | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "minimax-h3", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "768p", "aspect_ratio": "16:9" } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "minimax-h3", "type": "video", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "768p", "aspect_ratio": "16:9" }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "768p", "2k" ], "default": "768p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" } ] }, { "provider": "01router", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "768p", "2k" ], "default": "768p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "768p", "2k" ], "default": "768p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "768p", "2k" ], "default": "768p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "768p", "2k" ], "default": "768p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "768p", "2k" ], "default": "768p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" } ] }, { "provider": "vercel", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "768p", "2k" ], "default": "768p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" } ] } ] ``` --- Source: https://01router.com/docs/models/wan-3.0 # Wan 3.0 API Alibaba Tongyi Wanxiang 3.0: 2–30 s video with audio, first/last frame, 480p–1080p. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "wan-3.0" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_url | string | no | Optional start image (image-to-video) | | | input.end_image_url | string | no | | | | input.duration | integer | no | | default: 5; min: 2; max: 30 | | input.resolution | enum | no | | default: "720p"; options: [ "480p", "720p", "1080p" ] | | input.aspect_ratio | enum | no | | default: "16:9"; options: [ "16:9", "9:16", "1:1", "4:3", "3:4" ] | | input.generate_audio | boolean | no | | default: true | | input.seed | integer | no | | min: 0; max: 2147483647 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "wan-3.0", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": true } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "wan-3.0", "type": "video", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": true }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 2, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "01router", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 2, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 2, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 2, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 2, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 2, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p" ], "default": "480p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "vercel", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 2, "max": 30, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] } ] ``` --- Source: https://01router.com/docs/models/kling-3.0-turbo # Kling 3.0 Turbo API Kling 3.0 Turbo: fast high-motion video with native audio; 720p (standard) or 1080p (pro), 3–15 s. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "kling-3.0-turbo" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_url | string | no | Optional start image (image-to-video) | | | input.duration | integer | no | | default: 5; min: 3; max: 15 | | input.resolution | enum | no | | default: "720p"; options: [ "720p", "1080p" ] | | input.aspect_ratio | enum | no | | default: "16:9"; options: [ "16:9", "9:16", "1:1" ] | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "kling-3.0-turbo", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9" } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "kling-3.0-turbo", "type": "video", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9" }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1" ], "default": "16:9" } ] }, { "provider": "01router", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1" ], "default": "16:9" } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1" ], "default": "16:9" } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1" ], "default": "16:9" } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1" ], "default": "16:9" } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1" ], "default": "16:9" } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1" ], "default": "16:9" } ] } ] ``` --- Source: https://01router.com/docs/models/gemini-omni-flash-1.1 # Gemini Omni Flash 1.1 API Google’s omni-modal Flash video model with native sound, 3–10 s, 360p up to 4K. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "gemini-omni-flash-1.1" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_url | string | no | Optional start image (image-to-video) | | | input.end_image_url | string | no | | | | input.duration | integer | no | | default: 8; min: 3; max: 10 | | input.resolution | enum | no | | default: "720p"; options: [ "360p", "720p", "1080p", "4k" ] | | input.aspect_ratio | enum | no | | default: "16:9"; options: [ "16:9", "9:16" ] | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-omni-flash-1.1", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 8, "resolution": "720p", "aspect_ratio": "16:9" } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "gemini-omni-flash-1.1", "type": "video", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 8, "resolution": "720p", "aspect_ratio": "16:9" }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 10, "default": 8 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "360p", "720p", "1080p", "4k" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16" ], "default": "16:9" } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 10, "default": 8 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "360p", "720p", "1080p", "4k" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16" ], "default": "16:9" } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 10, "default": 8, "options": [ 4, 6, 8, 10 ] }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "360p", "720p", "1080p", "4k" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16" ], "default": "16:9" } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 10, "default": 8 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "360p", "720p", "1080p", "4k" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16" ], "default": "16:9" } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 10, "default": 8 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16" ], "default": "16:9" } ] } ] ``` --- Source: https://01router.com/docs/models/happyhorse-1.1 # HappyHorse 1.1 API Alibaba HappyHorse 1.1: strong character consistency and natural motion, 3–15 s. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "happyhorse-1.1" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_url | string | no | Optional start image (image-to-video) | | | input.duration | integer | no | | default: 5; min: 3; max: 15 | | input.resolution | enum | no | | default: "720p"; options: [ "480p", "720p", "1080p" ] | | input.aspect_ratio | enum | no | | default: "16:9"; options: [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ] | | input.seed | integer | no | | min: 0; max: 2147483647 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "happyhorse-1.1", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9" } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "happyhorse-1.1", "type": "video", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9" }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p", "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 3, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "480p" ], "default": "480p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] } ] ``` --- Source: https://01router.com/docs/models/flux-3-video # FLUX 3 Video API Black Forest Labs’ FLUX 3 video model: 5–20 s with audio, FLUX-level visual quality. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "flux-3-video" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_url | string | no | Optional start image (image-to-video) | | | input.duration | integer | no | | default: 5; min: 5; max: 20 | | input.resolution | enum | no | | default: "720p"; options: [ "720p", "1080p" ] | | input.aspect_ratio | enum | no | | default: "16:9"; options: [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ] | | input.generate_audio | boolean | no | | default: true | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "flux-3-video", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": true } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "flux-3-video", "type": "video", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": true }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 20, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 20, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 20, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 5, "max": 20, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] } ] ``` --- Source: https://01router.com/docs/models/ltx-2.5-fast # LTX-2.5 Fast API Lightricks LTX-2.5 Fast: real-time speed with audio, 6–20 s, up to native 4K. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "ltx-2.5-fast" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_url | string | no | Optional start image (image-to-video) | | | input.end_image_url | string | no | | | | input.duration | enum | no | | default: 6; options: [ 6, 8, 10, 12, 14, 16, 18, 20 ] | | input.resolution | enum | no | | default: "1080p"; options: [ "720p", "1080p", "1440p", "2160p" ] | | input.aspect_ratio | enum | no | | default: "16:9"; options: [ "16:9", "9:16" ] | | input.generate_audio | boolean | no | | default: true | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "ltx-2.5-fast", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 6, "resolution": "1080p", "aspect_ratio": "16:9", "generate_audio": true } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "ltx-2.5-fast", "type": "video", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 6, "resolution": "1080p", "aspect_ratio": "16:9", "generate_audio": true }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "enum", "label": "Duration (s)", "options": [ 6, 8, 10, 12, 14, 16, 18, 20 ], "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p", "1440p", "2160p" ], "default": "1080p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "enum", "label": "Duration (s)", "options": [ 6, 8, 10, 12, 14, 16, 18, 20 ], "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p", "1440p", "2160p" ], "default": "1080p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "enum", "label": "Duration (s)", "options": [ 6, 8, 10, 12, 14, 16, 18, 20 ], "default": 6 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true } ] } ] ``` --- Source: https://01router.com/docs/models/wan-2.7 # Wan 2.7 API Wan 2.7: reliable Tongyi Wanxiang video with first/last-frame control, 2–15 s, 720p/1080p. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "wan-2.7" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.negative_prompt | string | no | | | | input.image_url | string | no | Optional start image (image-to-video) | | | input.end_image_url | string | no | | | | input.duration | integer | no | | default: 5; min: 2; max: 15 | | input.resolution | enum | no | | default: "720p"; options: [ "720p", "1080p" ] | | input.aspect_ratio | enum | no | | default: "16:9"; options: [ "16:9", "9:16", "1:1", "4:3", "3:4" ] | | input.seed | integer | no | | min: 0; max: 2147483647 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "wan-2.7", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9" } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "wan-2.7", "type": "video", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9" }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 2, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "default": "16:9" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 2, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "default": "16:9" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 2, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "default": "16:9" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 2, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "default": "16:9" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 2, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "default": "16:9" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 2, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "default": "16:9" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "vercel", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "duration", "type": "integer", "label": "Duration (s)", "min": 2, "max": 15, "default": 5 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16", "1:1", "4:3", "3:4" ], "default": "16:9" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] } ] ``` --- Source: https://01router.com/docs/models/veo-3.1 # Veo 3.1 API Google DeepMind Veo 3.1: cinematic 4–8 s video with native dialogue and sound effects. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "veo-3.1" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.negative_prompt | string | no | | | | input.image_url | string | no | Optional start image (image-to-video) | | | input.end_image_url | string | no | | | | input.duration | enum | no | | default: 8; options: [ 4, 6, 8 ] | | input.resolution | enum | no | | default: "720p"; options: [ "720p", "1080p", "4k" ] | | input.aspect_ratio | enum | no | | default: "16:9"; options: [ "16:9", "9:16" ] | | input.generate_audio | boolean | no | | default: true | | input.seed | integer | no | | min: 0; max: 2147483647 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "veo-3.1", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 8, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": true } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "veo-3.1", "type": "video", "provider": "01router", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "duration": 8, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": true }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "01router", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "enum", "label": "Duration (s)", "options": [ 4, 6, 8 ], "default": 8 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p", "4k" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "enum", "label": "Duration (s)", "options": [ 4, 6, 8 ], "default": 8 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "enum", "label": "Duration (s)", "options": [ 4, 6, 8 ], "default": 8 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p", "4k" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "enum", "label": "Duration (s)", "options": [ 4, 6, 8 ], "default": 8 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p", "4k" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true, "options": [ true ] }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "end_image_url", "type": "image", "label": "Last frame" }, { "name": "duration", "type": "enum", "label": "Duration (s)", "options": [ 4, 6, 8 ], "default": 8 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": false, "options": [ false ] }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "vercel", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "image_url", "type": "image", "label": "First frame", "description": "Optional start image (image-to-video)" }, { "name": "duration", "type": "enum", "label": "Duration (s)", "options": [ 4, 6, 8 ], "default": 8 }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "720p", "1080p" ], "default": "720p" }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "16:9", "9:16" ], "default": "16:9" }, { "name": "generate_audio", "type": "boolean", "label": "Generate audio", "default": true }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] } ] ``` --- Source: https://01router.com/docs/models/gpt-image-2.5-flare # GPT Image 2.5 Flare API OpenAI GPT Image 2.5 Flare: fast everyday generation and editing with precise text rendering. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "gpt-image-2.5-flare" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_urls | string[] | no | Optional — switches to image editing | maxItems: 10 | | input.aspect_ratio | enum | no | | default: "1:1"; options: [ "1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3" ] | | input.quality | enum | no | | default: "medium"; options: [ "low", "medium", "high", "xhigh", "max" ] | | input.num_images | integer | no | | default: 1; min: 1; max: 4 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-image-2.5-flare", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "quality": "medium", "num_images": 1 } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "gpt-image-2.5-flare", "type": "image", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "quality": "medium", "num_images": 1 }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [POST /api/v1/images/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=images): OpenAI-compatible images - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3" ], "default": "1:1" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium", "high", "xhigh", "max" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "01router", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3" ], "default": "1:1" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium", "high", "xhigh", "max" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3" ], "default": "1:1" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium", "high", "xhigh", "max" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3" ], "default": "1:1" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium", "high", "xhigh", "max" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3" ], "default": "1:1" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "vercel", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3" ], "default": "1:1" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium", "high", "xhigh", "max" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] } ] ``` --- Source: https://01router.com/docs/models/gpt-image-2.5-sunburst # GPT Image 2.5 Sunburst API OpenAI GPT Image 2.5 Sunburst: tighter control for demanding edits and premium creative. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "gpt-image-2.5-sunburst" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_urls | string[] | no | Optional — switches to image editing | maxItems: 10 | | input.aspect_ratio | enum | no | | default: "1:1"; options: [ "1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3" ] | | input.quality | enum | no | | default: "medium"; options: [ "low", "medium", "high", "xhigh", "max" ] | | input.num_images | integer | no | | default: 1; min: 1; max: 4 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-image-2.5-sunburst", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "quality": "medium", "num_images": 1 } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "gpt-image-2.5-sunburst", "type": "image", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "quality": "medium", "num_images": 1 }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [POST /api/v1/images/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=images): OpenAI-compatible images - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3" ], "default": "1:1" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium", "high", "xhigh", "max" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "01router", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3" ], "default": "1:1" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium", "high", "xhigh", "max" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3" ], "default": "1:1" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium", "high", "xhigh", "max" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3" ], "default": "1:1" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium", "high", "xhigh", "max" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3" ], "default": "1:1" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "vercel", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3" ], "default": "1:1" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium", "high", "xhigh", "max" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] } ] ``` --- Source: https://01router.com/docs/models/nano-banana-2.1 # Nano Banana 2.1 API Google Gemini image model: consistent multi-reference editing, 1K–4K output. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "nano-banana-2.1" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_urls | string[] | no | Optional — switches to image editing | maxItems: 14 | | input.aspect_ratio | enum | no | | default: "1:1"; options: [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ] | | input.resolution | enum | no | | default: "1K"; options: [ "1K", "2K", "4K" ] | | input.num_images | integer | no | | default: 1; min: 1; max: 4 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "nano-banana-2.1", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "num_images": 1 } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "nano-banana-2.1", "type": "image", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "num_images": 1 }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [POST /api/v1/images/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=images): OpenAI-compatible images - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "01router", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "openrouter", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] } ] ``` --- Source: https://01router.com/docs/models/seedream-5.0-pro # Seedream 5.0 Pro API ByteDance Seedream 5.0 Pro: photoreal images, multilingual text and up to 10-reference editing. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "seedream-5.0-pro" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_urls | string[] | no | Optional — switches to image editing | maxItems: 10 | | input.aspect_ratio | enum | no | | default: "1:1"; options: [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ] | | input.resolution | enum | no | | default: "1K"; options: [ "1K", "2K" ] | | input.num_images | integer | no | | default: 1; min: 1; max: 4 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedream-5.0-pro", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "num_images": 1 } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "seedream-5.0-pro", "type": "image", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "num_images": 1 }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [POST /api/v1/images/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=images): OpenAI-compatible images - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] } ] ``` --- Source: https://01router.com/docs/models/nano-banana-2 # Nano Banana 2 API Gemini 3.1 Flash Image: fast generation and editing with strong text rendering, 1K–4K. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "nano-banana-2" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_urls | string[] | no | Optional — switches to image editing | maxItems: 14 | | input.aspect_ratio | enum | no | | default: "1:1"; options: [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ] | | input.resolution | enum | no | | default: "1K"; options: [ "1K", "2K", "4K" ] | | input.num_images | integer | no | | default: 1; min: 1; max: 4 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "nano-banana-2", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "num_images": 1 } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "nano-banana-2", "type": "image", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "num_images": 1 }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [POST /api/v1/images/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=images): OpenAI-compatible images - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "openrouter", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] } ] ``` --- Source: https://01router.com/docs/models/seedream-5.0-flash # Seedream 5.0 Flash API Low-latency Seedream 5.0: same price for 1K–2K, up to 10 reference images. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "seedream-5.0-flash" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_urls | string[] | no | Optional — switches to image editing | maxItems: 10 | | input.aspect_ratio | enum | no | | default: "1:1"; options: [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ] | | input.resolution | enum | no | | default: "1K"; options: [ "1K", "2K" ] | | input.num_images | integer | no | | default: 1; min: 1; max: 4 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedream-5.0-flash", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "num_images": 1 } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "seedream-5.0-flash", "type": "image", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "num_images": 1 }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [POST /api/v1/images/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=images): OpenAI-compatible images - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 10 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] } ] ``` --- Source: https://01router.com/docs/models/qwen-image-3.0 # Qwen Image 3.0 API Qwen Image 3.0: excellent Chinese/English text rendering, posters and precise editing. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "qwen-image-3.0" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.negative_prompt | string | no | | | | input.image_urls | string[] | no | Optional — switches to image editing | maxItems: 3 | | input.aspect_ratio | enum | no | | default: "1:1"; options: [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ] | | input.resolution | enum | no | | default: "1K"; options: [ "1K", "2K" ] | | input.num_images | integer | no | | default: 1; min: 1; max: 4 | | input.seed | integer | no | | min: 0; max: 2147483647 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "qwen-image-3.0", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "num_images": 1 } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "qwen-image-3.0", "type": "image", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "num_images": 1 }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [POST /api/v1/images/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=images): OpenAI-compatible images - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 3 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 3 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 3 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "negative_prompt", "type": "string", "label": "Negative prompt" }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 3 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] } ] ``` --- Source: https://01router.com/docs/models/grok-imagine-image-2.0 # Grok Imagine Image 2.0 API xAI Grok Imagine Image 2.0: bold, detailed images with low/medium quality tiers at 1K or 2K. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "grok-imagine-image-2.0" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_urls | string[] | no | Optional — switches to image editing | maxItems: 4 | | input.aspect_ratio | enum | no | | default: "1:1"; options: [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ] | | input.resolution | enum | no | | default: "1K"; options: [ "1K", "2K" ] | | input.quality | enum | no | | default: "medium"; options: [ "low", "medium" ] | | input.num_images | integer | no | | default: 1; min: 1; max: 4 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "grok-imagine-image-2.0", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "quality": "medium", "num_images": 1 } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "grok-imagine-image-2.0", "type": "image", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "quality": "medium", "num_images": 1 }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [POST /api/v1/images/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=images): OpenAI-compatible images - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 4 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "01router", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 4 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 1 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 1 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 4 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 1 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 4 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 4 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K" ], "default": "1K" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low" ], "default": "low" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "vercel", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 1 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "openrouter", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 1 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] } ] ``` --- Source: https://01router.com/docs/models/nano-banana-pro # Nano Banana Pro API Gemini 3 Pro Image: studio-quality output with reasoning, up to 4K. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "nano-banana-pro" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_urls | string[] | no | Optional — switches to image editing | maxItems: 14 | | input.aspect_ratio | enum | no | | default: "1:1"; options: [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ] | | input.resolution | enum | no | | default: "1K"; options: [ "1K", "2K", "4K" ] | | input.num_images | integer | no | | default: 1; min: 1; max: 4 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "nano-banana-pro", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "num_images": 1 } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "nano-banana-pro", "type": "image", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "num_images": 1 }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [POST /api/v1/images/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=images): OpenAI-compatible images - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] }, { "provider": "openrouter", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 14 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K", "4K" ], "default": "1K" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] } ] } ] ``` --- Source: https://01router.com/docs/models/flux-2-pro # FLUX.2 Pro API FLUX.2 [pro]: production photorealism and up to 8-reference editing, billed per megapixel. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "flux-2-pro" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_urls | string[] | no | Optional — switches to image editing | maxItems: 8 | | input.aspect_ratio | enum | no | | default: "1:1"; options: [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ] | | input.resolution | enum | no | | default: "1K"; options: [ "1K", "2K" ] | | input.seed | integer | no | | min: 0; max: 2147483647 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "flux-2-pro", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K" } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "flux-2-pro", "type": "image", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K" }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [POST /api/v1/images/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=images): OpenAI-compatible images - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 8 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K" ], "default": "1K" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 8 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K" ], "default": "1K" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 8 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K" ], "default": "1K" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 8 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K", "2K" ], "default": "1K" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 8 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "resolution", "type": "enum", "label": "Resolution", "options": [ "1K" ], "default": "1K" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] } ] ``` --- Source: https://01router.com/docs/models/ideogram-4.5 # Ideogram 4.5 API Ideogram 4.5: best-in-class typography for posters, logos and graphic design. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "ideogram-4.5" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_urls | string[] | no | Optional — switches to image editing | maxItems: 1 | | input.aspect_ratio | enum | no | | default: "1:1"; options: [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ] | | input.quality | enum | no | | default: "medium"; options: [ "low", "medium", "high" ] | | input.num_images | integer | no | | default: 1; min: 1; max: 4 | | input.seed | integer | no | | min: 0; max: 2147483647 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "ideogram-4.5", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "quality": "medium", "num_images": 1 } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "ideogram-4.5", "type": "image", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "quality": "medium", "num_images": 1 }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [POST /api/v1/images/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=images): OpenAI-compatible images - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "image_urls", "type": "images", "label": "Reference images", "description": "Optional — switches to image editing", "maxItems": 1 }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" }, { "name": "quality", "type": "enum", "label": "Quality", "options": [ "low", "medium", "high" ], "default": "medium" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] } ] ``` --- Source: https://01router.com/docs/models/recraft-v4 # Recraft V4 API Recraft V4: brand-consistent illustrations, icons and design assets. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "recraft-v4" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.aspect_ratio | enum | no | | default: "1:1"; options: [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ] | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "recraft-v4", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1" } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "recraft-v4", "type": "image", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1" }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [POST /api/v1/images/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=images): OpenAI-compatible images - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" } ] }, { "provider": "replicate", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" } ] }, { "provider": "vercel", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" ], "default": "1:1" } ] } ] ``` --- Source: https://01router.com/docs/models/z-image-turbo # Z-Image Turbo API Tongyi Z-Image Turbo: sub-second, very low-cost photoreal images with bilingual text. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "z-image-turbo" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.aspect_ratio | enum | no | | default: "1:1"; options: [ "1:1", "16:9", "9:16", "4:3", "3:4" ] | | input.num_images | integer | no | | default: 1; min: 1; max: 4 | | input.seed | integer | no | | min: 0; max: 2147483647 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "z-image-turbo", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "num_images": 1 } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "z-image-turbo", "type": "image", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "num_images": 1 }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [POST /api/v1/images/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=images): OpenAI-compatible images - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4" ], "default": "1:1" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "01router", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4" ], "default": "1:1" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1 }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4" ], "default": "1:1" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4" ], "default": "1:1" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4" ], "default": "1:1" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1" ], "default": "1:1" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt", "required": true }, { "name": "aspect_ratio", "type": "enum", "label": "Aspect ratio", "options": [ "1:1", "16:9", "9:16", "4:3", "3:4" ], "default": "1:1" }, { "name": "num_images", "type": "integer", "label": "Images", "min": 1, "max": 4, "default": 1, "options": [ 1 ] }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 2147483647 } ] } ] ``` --- Source: https://01router.com/docs/models/gpt-6-astra # GPT-6 Astra API OpenAI GPT-6 Astra: the most capable GPT-6 tier for hard reasoning, coding and agents. 1.05M context. `POST /api/v1/chat/completions` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "gpt-6-astra" ] | | messages | object[] | yes | Non-empty message array with role and content; content may contain supported multimodal parts. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | stream | boolean | no | Default false. true returns text/event-stream chunks and ends with data: [DONE]. | default: false | | max_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | default: 4096; min: 1 | | max_completion_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | | | temperature | number | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | tools | object[] | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | response_format | object | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | string | — | chat.completion / chat.completion.chunk | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | choices | array | — | Completion choices. Non-streaming replies use choices[].message; streaming chunks use choices[].delta. | | | usage | object | — | prompt_tokens, completion_tokens and total_tokens. Streaming includes usage when supplied by the provider. | | ## cURL ```bash curl 'https://01router.com/api/v1/chat/completions' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-6-astra", "messages": [ { "role": "user", "content": "Hello!" } ], "max_tokens": 512, "stream": false }' ``` ## 200 · application/json ```json { "id": "chat_example", "object": "chat.completion", "model": "gpt-6-astra", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello!" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 8, "completion_tokens": 2, "total_tokens": 10 } } ``` ## SSE · stream: true ```text data: {"id":"chat_example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello!"},"finish_reason":null}]} data: [DONE] ``` ## Usage notes - OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. ## Endpoints for this model - [POST /api/v1/chat/completions](https://01router.com/docs/llms-full.txt?locale=en§ion=chat): Chat completions - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "wavespeed", "params": [] }, { "provider": "kie", "params": [] }, { "provider": "apimart", "params": [] }, { "provider": "evolink", "params": [] }, { "provider": "atlascloud", "params": [] }, { "provider": "vercel", "params": [] }, { "provider": "openrouter", "params": [] } ] ``` --- Source: https://01router.com/docs/models/gpt-6-sol # GPT-6 Sol API OpenAI GPT-6 Sol: balanced GPT-6 tier for everyday reasoning, coding and tool use. 1.05M context. `POST /api/v1/chat/completions` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "gpt-6-sol" ] | | messages | object[] | yes | Non-empty message array with role and content; content may contain supported multimodal parts. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | stream | boolean | no | Default false. true returns text/event-stream chunks and ends with data: [DONE]. | default: false | | max_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | default: 4096; min: 1 | | max_completion_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | | | temperature | number | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | tools | object[] | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | response_format | object | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | string | — | chat.completion / chat.completion.chunk | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | choices | array | — | Completion choices. Non-streaming replies use choices[].message; streaming chunks use choices[].delta. | | | usage | object | — | prompt_tokens, completion_tokens and total_tokens. Streaming includes usage when supplied by the provider. | | ## cURL ```bash curl 'https://01router.com/api/v1/chat/completions' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-6-sol", "messages": [ { "role": "user", "content": "Hello!" } ], "max_tokens": 512, "stream": false }' ``` ## 200 · application/json ```json { "id": "chat_example", "object": "chat.completion", "model": "gpt-6-sol", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello!" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 8, "completion_tokens": 2, "total_tokens": 10 } } ``` ## SSE · stream: true ```text data: {"id":"chat_example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello!"},"finish_reason":null}]} data: [DONE] ``` ## Usage notes - OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. ## Endpoints for this model - [POST /api/v1/chat/completions](https://01router.com/docs/llms-full.txt?locale=en§ion=chat): Chat completions - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "wavespeed", "params": [] }, { "provider": "kie", "params": [] }, { "provider": "apimart", "params": [] }, { "provider": "evolink", "params": [] }, { "provider": "atlascloud", "params": [] }, { "provider": "vercel", "params": [] }, { "provider": "openrouter", "params": [] } ] ``` --- Source: https://01router.com/docs/models/gpt-6-luna # GPT-6 Luna API OpenAI GPT-6 Luna: the fastest, lowest-cost GPT-6 tier for high-volume tasks. 1.05M context. `POST /api/v1/chat/completions` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "gpt-6-luna" ] | | messages | object[] | yes | Non-empty message array with role and content; content may contain supported multimodal parts. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | stream | boolean | no | Default false. true returns text/event-stream chunks and ends with data: [DONE]. | default: false | | max_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | default: 4096; min: 1 | | max_completion_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | | | temperature | number | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | tools | object[] | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | response_format | object | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | string | — | chat.completion / chat.completion.chunk | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | choices | array | — | Completion choices. Non-streaming replies use choices[].message; streaming chunks use choices[].delta. | | | usage | object | — | prompt_tokens, completion_tokens and total_tokens. Streaming includes usage when supplied by the provider. | | ## cURL ```bash curl 'https://01router.com/api/v1/chat/completions' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-6-luna", "messages": [ { "role": "user", "content": "Hello!" } ], "max_tokens": 512, "stream": false }' ``` ## 200 · application/json ```json { "id": "chat_example", "object": "chat.completion", "model": "gpt-6-luna", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello!" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 8, "completion_tokens": 2, "total_tokens": 10 } } ``` ## SSE · stream: true ```text data: {"id":"chat_example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello!"},"finish_reason":null}]} data: [DONE] ``` ## Usage notes - OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. ## Endpoints for this model - [POST /api/v1/chat/completions](https://01router.com/docs/llms-full.txt?locale=en§ion=chat): Chat completions - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "01router", "params": [] }, { "provider": "wavespeed", "params": [] }, { "provider": "kie", "params": [] }, { "provider": "apimart", "params": [] }, { "provider": "evolink", "params": [] }, { "provider": "atlascloud", "params": [] }, { "provider": "vercel", "params": [] }, { "provider": "openrouter", "params": [] } ] ``` --- Source: https://01router.com/docs/models/gpt-5.6-sol # GPT-5.6 Sol API OpenAI GPT-5.6 Sol: flagship GPT-5.6 tier for complex reasoning and coding. `POST /api/v1/chat/completions` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "gpt-5.6-sol" ] | | messages | object[] | yes | Non-empty message array with role and content; content may contain supported multimodal parts. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | stream | boolean | no | Default false. true returns text/event-stream chunks and ends with data: [DONE]. | default: false | | max_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | default: 4096; min: 1 | | max_completion_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | | | temperature | number | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | tools | object[] | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | response_format | object | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | string | — | chat.completion / chat.completion.chunk | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | choices | array | — | Completion choices. Non-streaming replies use choices[].message; streaming chunks use choices[].delta. | | | usage | object | — | prompt_tokens, completion_tokens and total_tokens. Streaming includes usage when supplied by the provider. | | ## cURL ```bash curl 'https://01router.com/api/v1/chat/completions' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-5.6-sol", "messages": [ { "role": "user", "content": "Hello!" } ], "max_tokens": 512, "stream": false }' ``` ## 200 · application/json ```json { "id": "chat_example", "object": "chat.completion", "model": "gpt-5.6-sol", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello!" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 8, "completion_tokens": 2, "total_tokens": 10 } } ``` ## SSE · stream: true ```text data: {"id":"chat_example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello!"},"finish_reason":null}]} data: [DONE] ``` ## Usage notes - OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. ## Endpoints for this model - [POST /api/v1/chat/completions](https://01router.com/docs/llms-full.txt?locale=en§ion=chat): Chat completions - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "replicate", "params": [] }, { "provider": "wavespeed", "params": [] }, { "provider": "kie", "params": [] }, { "provider": "apimart", "params": [] }, { "provider": "evolink", "params": [] }, { "provider": "atlascloud", "params": [] }, { "provider": "vercel", "params": [] }, { "provider": "openrouter", "params": [] } ] ``` --- Source: https://01router.com/docs/models/gpt-5.6-terra # GPT-5.6 Terra API OpenAI GPT-5.6 Terra: mid GPT-5.6 tier balancing quality and cost. `POST /api/v1/chat/completions` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "gpt-5.6-terra" ] | | messages | object[] | yes | Non-empty message array with role and content; content may contain supported multimodal parts. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | stream | boolean | no | Default false. true returns text/event-stream chunks and ends with data: [DONE]. | default: false | | max_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | default: 4096; min: 1 | | max_completion_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | | | temperature | number | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | tools | object[] | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | response_format | object | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | string | — | chat.completion / chat.completion.chunk | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | choices | array | — | Completion choices. Non-streaming replies use choices[].message; streaming chunks use choices[].delta. | | | usage | object | — | prompt_tokens, completion_tokens and total_tokens. Streaming includes usage when supplied by the provider. | | ## cURL ```bash curl 'https://01router.com/api/v1/chat/completions' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-5.6-terra", "messages": [ { "role": "user", "content": "Hello!" } ], "max_tokens": 512, "stream": false }' ``` ## 200 · application/json ```json { "id": "chat_example", "object": "chat.completion", "model": "gpt-5.6-terra", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello!" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 8, "completion_tokens": 2, "total_tokens": 10 } } ``` ## SSE · stream: true ```text data: {"id":"chat_example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello!"},"finish_reason":null}]} data: [DONE] ``` ## Usage notes - OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. ## Endpoints for this model - [POST /api/v1/chat/completions](https://01router.com/docs/llms-full.txt?locale=en§ion=chat): Chat completions - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "replicate", "params": [] }, { "provider": "wavespeed", "params": [] }, { "provider": "kie", "params": [] }, { "provider": "apimart", "params": [] }, { "provider": "evolink", "params": [] }, { "provider": "atlascloud", "params": [] }, { "provider": "vercel", "params": [] }, { "provider": "openrouter", "params": [] } ] ``` --- Source: https://01router.com/docs/models/gpt-5.6-luna # GPT-5.6 Luna API OpenAI GPT-5.6 Luna: small, fast GPT-5.6 tier. `POST /api/v1/chat/completions` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "gpt-5.6-luna" ] | | messages | object[] | yes | Non-empty message array with role and content; content may contain supported multimodal parts. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | stream | boolean | no | Default false. true returns text/event-stream chunks and ends with data: [DONE]. | default: false | | max_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | default: 4096; min: 1 | | max_completion_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | | | temperature | number | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | tools | object[] | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | response_format | object | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | string | — | chat.completion / chat.completion.chunk | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | choices | array | — | Completion choices. Non-streaming replies use choices[].message; streaming chunks use choices[].delta. | | | usage | object | — | prompt_tokens, completion_tokens and total_tokens. Streaming includes usage when supplied by the provider. | | ## cURL ```bash curl 'https://01router.com/api/v1/chat/completions' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-5.6-luna", "messages": [ { "role": "user", "content": "Hello!" } ], "max_tokens": 512, "stream": false }' ``` ## 200 · application/json ```json { "id": "chat_example", "object": "chat.completion", "model": "gpt-5.6-luna", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello!" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 8, "completion_tokens": 2, "total_tokens": 10 } } ``` ## SSE · stream: true ```text data: {"id":"chat_example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello!"},"finish_reason":null}]} data: [DONE] ``` ## Usage notes - OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. ## Endpoints for this model - [POST /api/v1/chat/completions](https://01router.com/docs/llms-full.txt?locale=en§ion=chat): Chat completions - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "replicate", "params": [] }, { "provider": "wavespeed", "params": [] }, { "provider": "kie", "params": [] }, { "provider": "apimart", "params": [] }, { "provider": "evolink", "params": [] }, { "provider": "atlascloud", "params": [] }, { "provider": "vercel", "params": [] }, { "provider": "openrouter", "params": [] } ] ``` --- Source: https://01router.com/docs/models/claude-opus-5.5 # Claude Opus 5.5 API Anthropic Claude Opus 5.5: frontier model for agentic coding, long-horizon tasks and deep analysis. 1M context. `POST /api/v1/chat/completions` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "claude-opus-5.5" ] | | messages | object[] | yes | Non-empty message array with role and content; content may contain supported multimodal parts. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | stream | boolean | no | Default false. true returns text/event-stream chunks and ends with data: [DONE]. | default: false | | max_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | default: 4096; min: 1 | | max_completion_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | | | temperature | number | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | tools | object[] | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | response_format | object | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | string | — | chat.completion / chat.completion.chunk | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | choices | array | — | Completion choices. Non-streaming replies use choices[].message; streaming chunks use choices[].delta. | | | usage | object | — | prompt_tokens, completion_tokens and total_tokens. Streaming includes usage when supplied by the provider. | | ## cURL ```bash curl 'https://01router.com/api/v1/chat/completions' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-opus-5.5", "messages": [ { "role": "user", "content": "Hello!" } ], "max_tokens": 512, "stream": false }' ``` ## 200 · application/json ```json { "id": "chat_example", "object": "chat.completion", "model": "claude-opus-5.5", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello!" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 8, "completion_tokens": 2, "total_tokens": 10 } } ``` ## SSE · stream: true ```text data: {"id":"chat_example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello!"},"finish_reason":null}]} data: [DONE] ``` ## Usage notes - OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. ## Endpoints for this model - [POST /api/v1/chat/completions](https://01router.com/docs/llms-full.txt?locale=en§ion=chat): Chat completions - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "replicate", "params": [] }, { "provider": "wavespeed", "params": [] }, { "provider": "kie", "params": [] }, { "provider": "apimart", "params": [] }, { "provider": "evolink", "params": [] }, { "provider": "vercel", "params": [] }, { "provider": "openrouter", "params": [] } ] ``` --- Source: https://01router.com/docs/models/claude-sonnet-5.5 # Claude Sonnet 5.5 API Anthropic Claude Sonnet 5.5: fast, capable everyday model for coding, writing and agents. 1M context. `POST /api/v1/chat/completions` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "claude-sonnet-5.5" ] | | messages | object[] | yes | Non-empty message array with role and content; content may contain supported multimodal parts. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | stream | boolean | no | Default false. true returns text/event-stream chunks and ends with data: [DONE]. | default: false | | max_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | default: 4096; min: 1 | | max_completion_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | | | temperature | number | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | tools | object[] | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | response_format | object | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | string | — | chat.completion / chat.completion.chunk | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | choices | array | — | Completion choices. Non-streaming replies use choices[].message; streaming chunks use choices[].delta. | | | usage | object | — | prompt_tokens, completion_tokens and total_tokens. Streaming includes usage when supplied by the provider. | | ## cURL ```bash curl 'https://01router.com/api/v1/chat/completions' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-5.5", "messages": [ { "role": "user", "content": "Hello!" } ], "max_tokens": 512, "stream": false }' ``` ## 200 · application/json ```json { "id": "chat_example", "object": "chat.completion", "model": "claude-sonnet-5.5", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello!" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 8, "completion_tokens": 2, "total_tokens": 10 } } ``` ## SSE · stream: true ```text data: {"id":"chat_example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello!"},"finish_reason":null}]} data: [DONE] ``` ## Usage notes - OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. ## Endpoints for this model - [POST /api/v1/chat/completions](https://01router.com/docs/llms-full.txt?locale=en§ion=chat): Chat completions - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "wavespeed", "params": [] }, { "provider": "kie", "params": [] }, { "provider": "apimart", "params": [] }, { "provider": "evolink", "params": [] }, { "provider": "vercel", "params": [] }, { "provider": "openrouter", "params": [] } ] ``` --- Source: https://01router.com/docs/models/gemini-4-argon # Gemini 4 Argon API Google Gemini 4 Argon: multimodal reasoning model with a 1M-token context. `POST /api/v1/chat/completions` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "gemini-4-argon" ] | | messages | object[] | yes | Non-empty message array with role and content; content may contain supported multimodal parts. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | stream | boolean | no | Default false. true returns text/event-stream chunks and ends with data: [DONE]. | default: false | | max_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | default: 4096; min: 1 | | max_completion_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | | | temperature | number | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | tools | object[] | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | response_format | object | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | string | — | chat.completion / chat.completion.chunk | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | choices | array | — | Completion choices. Non-streaming replies use choices[].message; streaming chunks use choices[].delta. | | | usage | object | — | prompt_tokens, completion_tokens and total_tokens. Streaming includes usage when supplied by the provider. | | ## cURL ```bash curl 'https://01router.com/api/v1/chat/completions' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-4-argon", "messages": [ { "role": "user", "content": "Hello!" } ], "max_tokens": 512, "stream": false }' ``` ## 200 · application/json ```json { "id": "chat_example", "object": "chat.completion", "model": "gemini-4-argon", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello!" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 8, "completion_tokens": 2, "total_tokens": 10 } } ``` ## SSE · stream: true ```text data: {"id":"chat_example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello!"},"finish_reason":null}]} data: [DONE] ``` ## Usage notes - OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. ## Endpoints for this model - [POST /api/v1/chat/completions](https://01router.com/docs/llms-full.txt?locale=en§ion=chat): Chat completions - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "wavespeed", "params": [] }, { "provider": "kie", "params": [] }, { "provider": "apimart", "params": [] }, { "provider": "evolink", "params": [] }, { "provider": "atlascloud", "params": [] }, { "provider": "vercel", "params": [] }, { "provider": "openrouter", "params": [] } ] ``` --- Source: https://01router.com/docs/models/gemini-3.8-flash # Gemini 3.8 Flash API Google Gemini 3.8 Flash: fast, low-cost multimodal model with a 1M-token context. `POST /api/v1/chat/completions` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "gemini-3.8-flash" ] | | messages | object[] | yes | Non-empty message array with role and content; content may contain supported multimodal parts. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | stream | boolean | no | Default false. true returns text/event-stream chunks and ends with data: [DONE]. | default: false | | max_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | default: 4096; min: 1 | | max_completion_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | | | temperature | number | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | tools | object[] | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | response_format | object | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | string | — | chat.completion / chat.completion.chunk | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | choices | array | — | Completion choices. Non-streaming replies use choices[].message; streaming chunks use choices[].delta. | | | usage | object | — | prompt_tokens, completion_tokens and total_tokens. Streaming includes usage when supplied by the provider. | | ## cURL ```bash curl 'https://01router.com/api/v1/chat/completions' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-3.8-flash", "messages": [ { "role": "user", "content": "Hello!" } ], "max_tokens": 512, "stream": false }' ``` ## 200 · application/json ```json { "id": "chat_example", "object": "chat.completion", "model": "gemini-3.8-flash", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello!" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 8, "completion_tokens": 2, "total_tokens": 10 } } ``` ## SSE · stream: true ```text data: {"id":"chat_example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello!"},"finish_reason":null}]} data: [DONE] ``` ## Usage notes - OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. ## Endpoints for this model - [POST /api/v1/chat/completions](https://01router.com/docs/llms-full.txt?locale=en§ion=chat): Chat completions - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "wavespeed", "params": [] }, { "provider": "kie", "params": [] }, { "provider": "apimart", "params": [] }, { "provider": "evolink", "params": [] }, { "provider": "atlascloud", "params": [] }, { "provider": "vercel", "params": [] }, { "provider": "openrouter", "params": [] } ] ``` --- Source: https://01router.com/docs/models/grok-4.7 # Grok 4.7 API xAI Grok 4.7: reasoning model with real-time knowledge and a 500K context. `POST /api/v1/chat/completions` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "grok-4.7" ] | | messages | object[] | yes | Non-empty message array with role and content; content may contain supported multimodal parts. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | stream | boolean | no | Default false. true returns text/event-stream chunks and ends with data: [DONE]. | default: false | | max_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | default: 4096; min: 1 | | max_completion_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | | | temperature | number | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | tools | object[] | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | response_format | object | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | string | — | chat.completion / chat.completion.chunk | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | choices | array | — | Completion choices. Non-streaming replies use choices[].message; streaming chunks use choices[].delta. | | | usage | object | — | prompt_tokens, completion_tokens and total_tokens. Streaming includes usage when supplied by the provider. | | ## cURL ```bash curl 'https://01router.com/api/v1/chat/completions' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "grok-4.7", "messages": [ { "role": "user", "content": "Hello!" } ], "max_tokens": 512, "stream": false }' ``` ## 200 · application/json ```json { "id": "chat_example", "object": "chat.completion", "model": "grok-4.7", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello!" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 8, "completion_tokens": 2, "total_tokens": 10 } } ``` ## SSE · stream: true ```text data: {"id":"chat_example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello!"},"finish_reason":null}]} data: [DONE] ``` ## Usage notes - OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. ## Endpoints for this model - [POST /api/v1/chat/completions](https://01router.com/docs/llms-full.txt?locale=en§ion=chat): Chat completions - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "wavespeed", "params": [] }, { "provider": "kie", "params": [] }, { "provider": "apimart", "params": [] }, { "provider": "evolink", "params": [] }, { "provider": "atlascloud", "params": [] }, { "provider": "vercel", "params": [] }, { "provider": "openrouter", "params": [] } ] ``` --- Source: https://01router.com/docs/models/deepseek-v4.1-flash # DeepSeek V4.1 Flash API DeepSeek V4.1 Flash: very low-cost fast model with a 1M-token context. `POST /api/v1/chat/completions` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "deepseek-v4.1-flash" ] | | messages | object[] | yes | Non-empty message array with role and content; content may contain supported multimodal parts. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | stream | boolean | no | Default false. true returns text/event-stream chunks and ends with data: [DONE]. | default: false | | max_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | default: 4096; min: 1 | | max_completion_tokens | integer | no | Positive integer. Default 4096. Do not combine with max_completion_tokens. | | | temperature | number | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | tools | object[] | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | | response_format | object | no | OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | string | — | chat.completion / chat.completion.chunk | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | choices | array | — | Completion choices. Non-streaming replies use choices[].message; streaming chunks use choices[].delta. | | | usage | object | — | prompt_tokens, completion_tokens and total_tokens. Streaming includes usage when supplied by the provider. | | ## cURL ```bash curl 'https://01router.com/api/v1/chat/completions' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "deepseek-v4.1-flash", "messages": [ { "role": "user", "content": "Hello!" } ], "max_tokens": 512, "stream": false }' ``` ## 200 · application/json ```json { "id": "chat_example", "object": "chat.completion", "model": "deepseek-v4.1-flash", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello!" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 8, "completion_tokens": 2, "total_tokens": 10 } } ``` ## SSE · stream: true ```text data: {"id":"chat_example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello!"},"finish_reason":null}]} data: [DONE] ``` ## Usage notes - OpenAI-compatible sampling, tools and structured output fields depend on the selected model and provider. Only n = 1 is supported. ## Endpoints for this model - [POST /api/v1/chat/completions](https://01router.com/docs/llms-full.txt?locale=en§ion=chat): Chat completions - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "01router", "params": [] }, { "provider": "wavespeed", "params": [] }, { "provider": "kie", "params": [] }, { "provider": "apimart", "params": [] }, { "provider": "evolink", "params": [] }, { "provider": "atlascloud", "params": [] }, { "provider": "vercel", "params": [] }, { "provider": "openrouter", "params": [] } ] ``` --- Source: https://01router.com/docs/models/suno-v6 # Suno V6 API Suno V6 music generation: full songs with vocals or instrumentals from a description, or your own lyrics and style in custom mode. Each request returns two tracks. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "suno-v6" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | no | Song description (simple mode) or lyrics (custom mode) | | | input.custom_mode | boolean | no | Use your own lyrics, style and title | default: false | | input.instrumental | boolean | no | | default: false | | input.style | string | no | Custom mode only, e.g. "dream pop, female vocals" | | | input.title | string | no | Custom mode only | | | input.negative_tags | string | no | | | | input.vocal_gender | enum | no | | options: [ "m", "f" ] | | input.duration | integer | no | Custom mode only | min: 10; max: 360 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "suno-v6", "input": { "prompt": "A cinematic landscape at sunrise.", "custom_mode": false, "instrumental": false } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "suno-v6", "type": "audio", "provider": "kie", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "custom_mode": false, "instrumental": false }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Prompt / lyrics", "description": "Song description (simple mode) or lyrics (custom mode)", "maxLength": 5000 }, { "name": "custom_mode", "type": "boolean", "label": "Custom mode", "description": "Use your own lyrics, style and title", "default": false }, { "name": "instrumental", "type": "boolean", "label": "Instrumental", "default": false }, { "name": "style", "type": "string", "label": "Style", "description": "Custom mode only, e.g. \"dream pop, female vocals\"", "maxLength": 1000 }, { "name": "title", "type": "string", "label": "Title", "description": "Custom mode only", "maxLength": 80 }, { "name": "negative_tags", "type": "string", "label": "Exclude styles" }, { "name": "vocal_gender", "type": "enum", "label": "Vocal gender", "options": [ "m", "f" ] }, { "name": "duration", "type": "integer", "label": "Duration (s)", "description": "Custom mode only", "min": 10, "max": 360 } ] }, { "provider": "apimart", "params": [ { "name": "prompt", "type": "text", "label": "Prompt / lyrics", "description": "Song description (simple mode) or lyrics (custom mode)", "maxLength": 5000 }, { "name": "custom_mode", "type": "boolean", "label": "Custom mode", "description": "Use your own lyrics, style and title", "default": false }, { "name": "instrumental", "type": "boolean", "label": "Instrumental", "default": false }, { "name": "style", "type": "string", "label": "Style", "description": "Custom mode only, e.g. \"dream pop, female vocals\"", "maxLength": 1000 }, { "name": "title", "type": "string", "label": "Title", "description": "Custom mode only", "maxLength": 80 }, { "name": "negative_tags", "type": "string", "label": "Exclude styles" }, { "name": "vocal_gender", "type": "enum", "label": "Vocal gender", "options": [ "m", "f" ] }, { "name": "duration", "type": "integer", "label": "Duration (s)", "description": "Custom mode only", "min": 10, "max": 360 } ] }, { "provider": "evolink", "params": [ { "name": "prompt", "type": "text", "label": "Prompt / lyrics", "description": "Song description (simple mode) or lyrics (custom mode)" }, { "name": "custom_mode", "type": "boolean", "label": "Custom mode", "description": "Use your own lyrics, style and title", "default": false }, { "name": "instrumental", "type": "boolean", "label": "Instrumental", "default": false }, { "name": "style", "type": "string", "label": "Style", "description": "Custom mode only, e.g. \"dream pop, female vocals\"" }, { "name": "title", "type": "string", "label": "Title", "description": "Custom mode only" }, { "name": "negative_tags", "type": "string", "label": "Exclude styles" }, { "name": "vocal_gender", "type": "enum", "label": "Vocal gender", "options": [ "m", "f" ] }, { "name": "duration", "type": "integer", "label": "Duration (s)", "description": "Custom mode only", "min": 10, "max": 360 } ] }, { "provider": "atlascloud", "params": [ { "name": "prompt", "type": "text", "label": "Prompt / lyrics", "description": "Song description (simple mode) or lyrics (custom mode)", "maxLength": 3000 }, { "name": "custom_mode", "type": "boolean", "label": "Custom mode", "description": "Use your own lyrics, style and title", "default": false }, { "name": "instrumental", "type": "boolean", "label": "Instrumental", "default": false }, { "name": "style", "type": "string", "label": "Style", "description": "Custom mode only, e.g. \"dream pop, female vocals\"", "maxLength": 500 }, { "name": "title", "type": "string", "label": "Title", "description": "Custom mode only", "maxLength": 200 }, { "name": "negative_tags", "type": "string", "label": "Exclude styles", "maxLength": 500 }, { "name": "vocal_gender", "type": "enum", "label": "Vocal gender", "options": [ "m", "f" ] }, { "name": "duration", "type": "integer", "label": "Duration (s)", "description": "Custom mode only", "min": 10, "max": 360 } ] } ] ``` --- Source: https://01router.com/docs/models/gemini-3.8-flash-tts # Gemini 3.8 Flash TTS API Google Gemini 3.8 Flash TTS: expressive speech in 30 voices with natural-language style control and inline vocal events like . `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "gemini-3.8-flash-tts" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.voice | enum | no | | default: "Kore"; options: [ "Kore", "Puck", "Charon", "Fenrir", "Leda", "Orus", "Aoede", "Zephyr", "Callirrhoe", "Autonoe", "Enceladus", "Iapetus", "Umbriel", "Algieba", "Despina", "Erinome", "Algenib", "Rasalgethi", "Laomedeia", "Achernar", "Alnilam", "Schedar", "Gacrux", "Pulcherrima", "Achird", "Zubenelgenubi", "Vindemiatrix", "Sadachbia", "Sadaltager", "Sulafat" ] | | input.style_instructions | string | no | e.g. "cheerful and friendly"; billing depends on the provider | | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-3.8-flash-tts", "input": { "prompt": "A cinematic landscape at sunrise.", "voice": "Kore" } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "gemini-3.8-flash-tts", "type": "audio", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "voice": "Kore" }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Text", "required": true }, { "name": "voice", "type": "enum", "label": "Voice", "options": [ "Kore", "Puck", "Charon", "Fenrir", "Leda", "Orus", "Aoede", "Zephyr", "Callirrhoe", "Autonoe", "Enceladus", "Iapetus", "Umbriel", "Algieba", "Despina", "Erinome", "Algenib", "Rasalgethi", "Laomedeia", "Achernar", "Alnilam", "Schedar", "Gacrux", "Pulcherrima", "Achird", "Zubenelgenubi", "Vindemiatrix", "Sadachbia", "Sadaltager", "Sulafat" ], "default": "Kore" }, { "name": "style_instructions", "type": "string", "label": "Style", "description": "e.g. \"cheerful and friendly\"; billing depends on the provider" } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Text", "required": true, "maxLength": 8000 }, { "name": "voice", "type": "enum", "label": "Voice", "options": [ "Kore", "Puck", "Charon", "Fenrir", "Leda", "Orus", "Aoede", "Zephyr", "Callirrhoe", "Autonoe", "Enceladus", "Iapetus", "Umbriel", "Algieba", "Despina", "Erinome", "Algenib", "Rasalgethi", "Laomedeia", "Achernar", "Alnilam", "Schedar", "Gacrux", "Pulcherrima", "Achird", "Zubenelgenubi", "Vindemiatrix", "Sadachbia", "Sadaltager", "Sulafat" ], "default": "Kore" }, { "name": "style_instructions", "type": "string", "label": "Style", "description": "e.g. \"cheerful and friendly\"; billing depends on the provider", "maxLength": 2000 } ] }, { "provider": "kie", "params": [ { "name": "prompt", "type": "text", "label": "Text", "required": true, "maxLength": 8000 }, { "name": "voice", "type": "enum", "label": "Voice", "options": [ "Kore", "Puck", "Charon", "Fenrir", "Leda", "Orus", "Aoede", "Zephyr", "Callirrhoe", "Autonoe", "Enceladus", "Iapetus", "Umbriel", "Algieba", "Despina", "Erinome", "Algenib", "Rasalgethi", "Laomedeia", "Achernar", "Alnilam", "Schedar", "Gacrux", "Pulcherrima", "Achird", "Zubenelgenubi", "Vindemiatrix", "Sadachbia", "Sadaltager", "Sulafat" ], "default": "Kore" }, { "name": "style_instructions", "type": "string", "label": "Style", "description": "e.g. \"cheerful and friendly\"; billing depends on the provider", "maxLength": 2000 } ] }, { "provider": "vercel", "params": [ { "name": "prompt", "type": "text", "label": "Text", "required": true, "maxLength": 8000 }, { "name": "voice", "type": "enum", "label": "Voice", "options": [ "Kore", "Puck", "Charon", "Fenrir", "Leda", "Orus", "Aoede", "Zephyr", "Callirrhoe", "Autonoe", "Enceladus", "Iapetus", "Umbriel", "Algieba", "Despina", "Erinome", "Algenib", "Rasalgethi", "Laomedeia", "Achernar", "Alnilam", "Schedar", "Gacrux", "Pulcherrima", "Achird", "Zubenelgenubi", "Vindemiatrix", "Sadachbia", "Sadaltager", "Sulafat" ], "default": "Kore" }, { "name": "style_instructions", "type": "string", "label": "Style", "description": "e.g. \"cheerful and friendly\"; billing depends on the provider", "maxLength": 2000 } ] }, { "provider": "openrouter", "params": [ { "name": "prompt", "type": "text", "label": "Text", "required": true, "maxLength": 8000 }, { "name": "voice", "type": "enum", "label": "Voice", "options": [ "Kore", "Puck", "Charon", "Fenrir", "Leda", "Orus", "Aoede", "Zephyr", "Callirrhoe", "Autonoe", "Enceladus", "Iapetus", "Umbriel", "Algieba", "Despina", "Erinome", "Algenib", "Rasalgethi", "Laomedeia", "Achernar", "Alnilam", "Schedar", "Gacrux", "Pulcherrima", "Achird", "Zubenelgenubi", "Vindemiatrix", "Sadachbia", "Sadaltager", "Sulafat" ], "default": "Kore" }, { "name": "style_instructions", "type": "string", "label": "Style", "description": "e.g. \"cheerful and friendly\"; billing depends on the provider", "maxLength": 2000 } ] } ] ``` --- Source: https://01router.com/docs/models/elevenlabs-tts-v4 # ElevenLabs Eleven v4 API ElevenLabs Eleven v4: expressive multilingual speech with audio tags, voice selection and delivery controls. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "elevenlabs-tts-v4" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | maxLength: 5000 | | input.voice | string | no | | default: "Rachel" | | input.stability | number | no | | default: 0.5; min: 0; max: 1 | | input.similarity_boost | number | no | | default: 0.75; min: 0; max: 1 | | input.language_code | string | no | ISO 639-1, e.g. en or zh | | | input.seed | integer | no | | min: 0; max: 4294967295 | | input.output_format | enum | no | | default: "mp3_44100_128"; options: [ "mp3_22050_32", "mp3_44100_32", "mp3_44100_64", "mp3_44100_96", "mp3_44100_128", "mp3_44100_192", "pcm_8000", "pcm_16000", "pcm_22050", "pcm_24000", "pcm_44100", "pcm_48000", "ulaw_8000", "alaw_8000", "opus_48000_32", "opus_48000_64", "opus_48000_96", "opus_48000_128", "opus_48000_192" ] | | input.apply_text_normalization | enum | no | | default: "auto"; options: [ "auto", "on", "off" ] | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "elevenlabs-tts-v4", "input": { "prompt": "A cinematic landscape at sunrise.", "voice": "Rachel", "stability": 0.5, "similarity_boost": 0.75, "output_format": "mp3_44100_128", "apply_text_normalization": "auto" } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "elevenlabs-tts-v4", "type": "audio", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "voice": "Rachel", "stability": 0.5, "similarity_boost": 0.75, "output_format": "mp3_44100_128", "apply_text_normalization": "auto" }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Text", "required": true, "maxLength": 5000 }, { "name": "voice", "type": "string", "label": "Voice", "default": "Rachel" }, { "name": "stability", "type": "number", "label": "Stability", "min": 0, "max": 1, "default": 0.5 }, { "name": "similarity_boost", "type": "number", "label": "Voice similarity", "min": 0, "max": 1, "default": 0.75 }, { "name": "language_code", "type": "string", "label": "Language code", "description": "ISO 639-1, e.g. en or zh" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 4294967295 }, { "name": "output_format", "type": "enum", "label": "Output format", "options": [ "mp3_22050_32", "mp3_44100_32", "mp3_44100_64", "mp3_44100_96", "mp3_44100_128", "mp3_44100_192", "pcm_8000", "pcm_16000", "pcm_22050", "pcm_24000", "pcm_44100", "pcm_48000", "ulaw_8000", "alaw_8000", "opus_48000_32", "opus_48000_64", "opus_48000_96", "opus_48000_128", "opus_48000_192" ], "default": "mp3_44100_128" }, { "name": "apply_text_normalization", "type": "enum", "label": "Text normalization", "options": [ "auto", "on", "off" ], "default": "auto" } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Text", "required": true, "maxLength": 5000 }, { "name": "voice", "type": "string", "label": "Voice", "default": "Alicia" }, { "name": "stability", "type": "number", "label": "Stability", "min": 0, "max": 1, "default": 0.5 }, { "name": "similarity_boost", "type": "number", "label": "Voice similarity", "min": 0, "max": 1, "default": 0.75 } ] }, { "provider": "openrouter", "params": [ { "name": "prompt", "type": "text", "label": "Text", "required": true, "maxLength": 5000 }, { "name": "voice", "type": "string", "label": "Voice", "default": "george", "options": [ "george", "sarah", "adam", "alice", "bella", "bill", "brian", "callum", "charlie", "chris", "daniel", "eric", "harry", "jessica", "laura", "liam", "lily", "matilda", "river", "roger", "will" ] } ] } ] ``` --- Source: https://01router.com/docs/models/elevenlabs-tts-v4-turbo # ElevenLabs Eleven v4 Turbo API ElevenLabs Eleven v4 Turbo: expressive multilingual speech with audio tags, voice selection and delivery controls. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "elevenlabs-tts-v4-turbo" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | maxLength: 5000 | | input.voice | string | no | | default: "Rachel" | | input.stability | number | no | | default: 0.5; min: 0; max: 1 | | input.similarity_boost | number | no | | default: 0.75; min: 0; max: 1 | | input.language_code | string | no | ISO 639-1, e.g. en or zh | | | input.seed | integer | no | | min: 0; max: 4294967295 | | input.output_format | enum | no | | default: "mp3_44100_128"; options: [ "mp3_22050_32", "mp3_44100_32", "mp3_44100_64", "mp3_44100_96", "mp3_44100_128", "mp3_44100_192", "pcm_8000", "pcm_16000", "pcm_22050", "pcm_24000", "pcm_44100", "pcm_48000", "ulaw_8000", "alaw_8000", "opus_48000_32", "opus_48000_64", "opus_48000_96", "opus_48000_128", "opus_48000_192" ] | | input.apply_text_normalization | enum | no | | default: "auto"; options: [ "auto", "on", "off" ] | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "elevenlabs-tts-v4-turbo", "input": { "prompt": "A cinematic landscape at sunrise.", "voice": "Rachel", "stability": 0.5, "similarity_boost": 0.75, "output_format": "mp3_44100_128", "apply_text_normalization": "auto" } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "elevenlabs-tts-v4-turbo", "type": "audio", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "voice": "Rachel", "stability": 0.5, "similarity_boost": 0.75, "output_format": "mp3_44100_128", "apply_text_normalization": "auto" }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again. ## Endpoints for this model - [POST /api/v1/generations](https://01router.com/docs/llms-full.txt?locale=en§ion=create): Create a generation - [GET /api/v1/generations/{id}](https://01router.com/docs/llms-full.txt?locale=en§ion=poll): Get the result - [POST /api/v1/generations/{id}/cancel](https://01router.com/docs/llms-full.txt?locale=en§ion=cancel): Cancel a task - [POST /api/v1/quote](https://01router.com/docs/llms-full.txt?locale=en§ion=quote): Quote - [GET /api/v1/models/{slug}](https://01router.com/docs/llms-full.txt?locale=en§ion=model-detail): Get one model For /generations and /quote, put these parameters inside input. For /images/generations, put them at the top level. Chat parameters go at the top level of /chat/completions. Select a provider to see its effective parameter limits. Automatic routing chooses a provider that supports your input. Examples include defaults and required inputs; replace example media URLs with accessible files. ### Provider parameter schemas ```json [ { "provider": "fal", "params": [ { "name": "prompt", "type": "text", "label": "Text", "required": true, "maxLength": 5000 }, { "name": "voice", "type": "string", "label": "Voice", "default": "Rachel" }, { "name": "stability", "type": "number", "label": "Stability", "min": 0, "max": 1, "default": 0.5 }, { "name": "similarity_boost", "type": "number", "label": "Voice similarity", "min": 0, "max": 1, "default": 0.75 }, { "name": "language_code", "type": "string", "label": "Language code", "description": "ISO 639-1, e.g. en or zh" }, { "name": "seed", "type": "integer", "label": "Seed", "min": 0, "max": 4294967295 }, { "name": "output_format", "type": "enum", "label": "Output format", "options": [ "mp3_22050_32", "mp3_44100_32", "mp3_44100_64", "mp3_44100_96", "mp3_44100_128", "mp3_44100_192", "pcm_8000", "pcm_16000", "pcm_22050", "pcm_24000", "pcm_44100", "pcm_48000", "ulaw_8000", "alaw_8000", "opus_48000_32", "opus_48000_64", "opus_48000_96", "opus_48000_128", "opus_48000_192" ], "default": "mp3_44100_128" }, { "name": "apply_text_normalization", "type": "enum", "label": "Text normalization", "options": [ "auto", "on", "off" ], "default": "auto" } ] }, { "provider": "wavespeed", "params": [ { "name": "prompt", "type": "text", "label": "Text", "required": true, "maxLength": 5000 }, { "name": "voice", "type": "string", "label": "Voice", "default": "Alicia" }, { "name": "stability", "type": "number", "label": "Stability", "min": 0, "max": 1, "default": 0.5 }, { "name": "similarity_boost", "type": "number", "label": "Voice similarity", "min": 0, "max": 1, "default": 0.75 } ] }, { "provider": "openrouter", "params": [ { "name": "prompt", "type": "text", "label": "Text", "required": true, "maxLength": 5000 }, { "name": "voice", "type": "string", "label": "Voice", "default": "george", "options": [ "george", "sarah", "adam", "alice", "bella", "bill", "brian", "callum", "charlie", "chris", "daniel", "eric", "harry", "jessica", "laura", "liam", "lily", "matilda", "river", "roger", "will" ] } ] } ] ``` ---