LTX-2.5 Pro · Get one model
Model objects include slug, name, type, vendor, params and providers. Each provider supplies params, prices and billing for local frontend quotes using public fields.
/api/v1/models/{slug}Public · No API keyEndpoints for this model
/generationsCreate a generationGET/generations/{id}Get the resultPOST/generations/{id}/cancelCancel a taskPOST/quoteQuoteGET/models/{slug}Get one modelSelect 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.
Where to find pricing data
GET /api/v1/models returns object=list and a data array. Each standard model has slug, params and providers. Select a channel from data[].providers[] and read its prices, params and billing. GET /api/v1/models/MODEL_SLUG returns the model object directly, without a data wrapper.
With the project query parameter, each data[] entry already selects a provider; prices, params and billing are directly on the model, with no providers array. Project prices[] contain only unit, conditions and priceMicros; billing.priceScope=project and creditsPerUsd=null. Read custom model names from this list; the model detail endpoint does not resolve project.
No API key is required. For cross-origin browser reads, use /api/v1/models: standard catalogs are public, while project catalogs follow configured domain restrictions. Catalogs are cached for 60 seconds. Prices below are illustrative; read current responses rather than hard-coding them. Quotes do not lock prices. See /docs/quote for the five billing methods.
Model fields: icon and price range
Each model object also carries an icon and a price range for list views. The range is the lowest and highest per-unit price across all providers and price rules, with gateway pricing already applied. It is not a request total, and the two ends can use different units. For a quote, read the selected provider’s prices.
data[]
| Field | Type | Meaning and use |
|---|---|---|
iconUrl | string | null | Absolute URL of the model icon (SVG or WebP), or null when there is none. |
iconMono | boolean | true when the icon is a single dark color; invert it on dark backgrounds. |
fromMicros | number | null | Lowest per-unit price in micro-USD across all providers; null when the model has no price. |
maxMicros | number | null | Highest per-unit price in micro-USD across all providers; null when the model has no price. |
fromUnit / maxUnit | string | null | Billing unit of fromMicros / maxMicros (request / second / image / kchar / input_token / output_token). Always show a price together with its unit. |
fromOriginalMicros / maxOriginalMicros | number | null | List price of the lowest / highest rule when it is discounted; null otherwise. Display only. |
Usage notes
A project catalog (?project=) returns iconUrl, iconMono, fromMicros, fromUnit, maxMicros and maxUnit too, with the project ratio already applied. It does not return fromOriginalMicros or maxOriginalMicros.
params: input definitions
Model params describe model-wide capabilities; provider params describe inputs actually supported by that channel. billing.modelParams and billing.upstreamParams use the same schema. The table describes one parameter object; optional fields may be absent from JSON.
params[]
| Field | Type | Meaning and use |
|---|---|---|
name | string | Input field name, such as prompt, duration or num_images. |
type | string | text / string: text; integer: whole number; number: numeric value; boolean: boolean; enum: enum value; image: one HTTP(S) image URL; images: an array of image URLs. |
label / description | string | Optional display label and description; display name when absent. |
required | boolean | Optional; defaults to false. A required value must not remain empty after applying defaults. |
default | string | number | boolean | Optional default used for missing, null or empty-string input. Absence does not mean zero. |
options | array | Optional allowed strings, numbers or booleans. For enum, select a listed value and preserve its type. |
min / max | number | Optional inclusive numeric bounds. integer values must also be whole numbers. |
maxItems | number | Optional maximum image count for an images parameter. |
maxLength | number | Optional maximum text length measured by JavaScript string length. The overall limit is 10,000, also used when absent. |
Usage notes
Prepare input: billing.version=1 is the current calculation contract; a nonempty billing.unavailableReason prevents quoting. Validate model input against billing.modelParams, then validate and apply defaults using the channel’s params types, required, default, options and min/max constraints. If billing.upstreamParams exists, its validated input and defaults are final. Ignore a field unsupported by the channel or upstream only when its value equals the model default; otherwise reject it. Derive mode as image or text from whether image/images fields in the final parameter definitions have a value; do not trust a user-supplied mode.
prices: pricing rules
prices is an array of pricing rules, not a request total. Validate and apply input defaults before selecting a rule. For ordinary billing, derive quantity from unit and calculate round(priceMicros × quantity). Requests use 1, seconds use duration, images use num_images, and characters use the characterBilling-adjusted count divided by 1,000. Seconds and images each have a minimum of 1.
prices[]
| Field | Type | Meaning and use |
|---|---|---|
unit | string | request / second / image / kchar / input_token / output_token: per request, second, image, thousand characters, million input tokens or million output tokens. |
conditions | object | Condition names mapped to strings, numbers or booleans. An empty object is unconditional. For ordinary billing, match all conditions and prefer the most specific rule. For tokens, min_input_tokens is the input-length threshold, defaulting to 0. |
priceMicros | number | Unit price in micro-USD; 1,000,000 = 1 USD. Gateway pricing is already applied, and project prices also include the resale ratio. Do not apply discounts or markups again. |
originalMicros | number | null | Comparison list unit price in the standard catalog; null means no discounted list price is available. Omitted in project catalogs. |
credits | number | Rule-level display credits in the standard catalog, not a factor to multiply by request quantity. Calculate total credits from total dollars and billing.creditsPerUsd. Omitted in project catalogs. |
Usage notes
For request, second, image and character billing, match every prices[].conditions entry against the final input, comparing values as strings. Choose the matching rule with the most conditions; keep response order for ties. For tokens, use the input-length tiers below.
Input and output have separate prices, each per 1,000,000 tokens. For each unit, choose the highest min_input_tokens threshold reached by the input token count; an omitted threshold is 0, and ties keep response order. The output price tier also depends on the input count.
Total micro-USD = ceil(input price × input tokens / 1,000,000 + output price × output tokens / 1,000,000). Add both costs before rounding up. Example: input price 1,000,000 and output price 2,000,000 micro-USD, with 1,000 input and 500 output tokens, costs $0.002. Token counts are not character counts; unknown output usage is only an estimate.
Above, round means rounding to integer micro-USD with Math.round; ceil means rounding up with Math.ceil. Dollars = total micro-USD / 1,000,000. When billing.creditsPerUsd is non-null, credits = max(1, ceil(dollars × creditsPerUsd - 1e-9)). The minimum is 1 credit; subtracting 1e-9 avoids extra credits from floating-point error. Example: $0.40 at 250 credits per dollar is 100 credits.
In the standard catalog example, the default duration is 5 seconds at 200,000 micro-USD per second: $1 total, or 250 credits at 250 credits per dollar. The rule’s display credits of 50 are not the total. The project example charges 240,000 micro-USD per second: $1.20 for 5 seconds. This is a resale price with no gateway credit total.
billing: calculation and settlement
billing supplies calculation rules for each price source, without keys or upstream costs. Paths below are relative to billing. A missing optional object means that rule does not apply; do not invent character blocks or audio reservations.
billing
| Field | Type | Meaning and use |
|---|---|---|
version | number | Currently 1. Calculation contract version, not a price lock. Stop quoting and refresh for an unsupported version. |
priceScope | "gateway" | "project" | gateway means gateway charges; project means resale display prices with the project ratio already applied. |
creditsPerUsd | number | null | Gateway credits per dollar. Null in project catalogs; do not infer gateway credits from resale prices. |
modelParams | array | Model-level parameter definitions with the same schema as params[]. Validate input against these first. |
upstreamParams | array | Optional final parameter definitions with the same schema as params[]. When present, validate and apply their defaults after provider validation. |
characterBilling | object | Optional character rules. Without them, count prompt using JavaScript string length, with a minimum of 1 character and no automatic rounding to whole thousands. |
characterBilling.fields | string[] | Input field names whose lengths are summed; returned within characterBilling. Missing input contributes an empty string. |
characterBilling.minimum | number | Minimum billable character count, returned within characterBilling. |
characterBilling.block | number | Optional block size: round characters up to its multiple before applying minimum. Omitted or zero means no block rounding. |
metering | object | Optional metered audio settings. The pre-generation quote is a token-based reservation; final settlement can differ. |
metering.outputTokenHold | number | Reserved output token count, returned within metering. |
metering.providerCost | boolean | When true, final cost requires a provider report and cannot be inferred from public unit prices alone. Omitted or false means settlement uses actual token counts. |
unavailableReason | string | Optional reason this configuration cannot be quoted. When nonempty, stop calculating and show the reason, not a free price. |
Usage notes
Audio reservation: when billing.metering exists, estimate input tokens as the UTF-8 byte length of prompt concatenated with style_instructions plus 256, and use outputTokenHold for output tokens. Apply the token formula to reserve funds. Final settlement uses actual usage; providerCost=true requires the provider’s cost report.
Project prices: billing.priceScope=project means unit prices already include the resale ratio; do not apply it again. billing.creditsPerUsd=null, so these prices cannot determine gateway credits. POST /quote returns gateway prices and credits even with project supplied; it excludes project resale markup.
Consistency: these rules match backend calculations for the same price configuration, pinned provider and input. Catalogs are cached for 60 seconds; refresh after price changes. Frontend estimates do not lock prices. Routing also considers availability, priority and circuit breakers, so a local minimum is not a guaranteed charge. Invalid input, unsupported versions or missing prices must show an unavailable quote, not a free price.
Input parameters
Query / path parametersslugstring · pathRequiredModel slug from the catalog. Project keys may use a project-specific model slug.
Allowed values:"ltx-2.5-pro"
Response fields
slugstringModel slug from the catalog. Project keys may use a project-specific model slug.
paramsarrayParameter definitions: name, type, required, default, options, min, max, maxItems and maxLength when configured.
providersarrayAvailable providers with their parameter constraints and public price tiers.
iconUrlstring | nullAbsolute URL of the model icon (SVG or WebP), or null when there is none.
iconMonobooleantrue when the icon is a single dark color; invert it on dark backgrounds.
Request
curl 'https://01router.com/api/v1/models/ltx-2.5-pro'Response example
{
"slug": "ltx-2.5-pro",
"name": "LTX-2.5 Pro",
"type": "video",
"vendor": "Lightricks",
"description": "Lightricks LTX-2.5 Pro: higher-fidelity LTX with audio and first/last frame, 6–10 s, 720p/1080p.",
"tags": [
"text-to-video",
"image-to-video",
"audio"
],
"coverUrl": "",
"iconUrl": "https://01router.com/models/lightricks.svg",
"iconMono": true,
"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
],
"default": 6
},
{
"name": "resolution",
"type": "enum",
"label": "Resolution",
"options": [
"720p",
"1080p"
],
"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
}
],
"providers": [
{
"provider": "fal",
"providerName": "fal.ai",
"discount": 90,
"preferred": false,
"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
],
"default": 6
},
{
"name": "resolution",
"type": "enum",
"label": "Resolution",
"options": [
"720p",
"1080p"
],
"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
}
],
"billing": {
"version": 1,
"priceScope": "gateway",
"creditsPerUsd": 100,
"modelParams": [
{
"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
],
"default": 6
},
{
"name": "resolution",
"type": "enum",
"label": "Resolution",
"options": [
"720p",
"1080p"
],
"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
}
]
},
"prices": [
{
"unit": "second",
"conditions": {
"resolution": "720p"
},
"priceMicros": 108000,
"originalMicros": 120000,
"credits": 11
},
{
"unit": "second",
"conditions": {
"resolution": "1080p"
},
"priceMicros": 153000,
"originalMicros": 170000,
"credits": 16
}
]
},
{
"provider": "atlascloud",
"providerName": "AtlasCloud",
"discount": 90,
"preferred": false,
"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
],
"default": 6
},
{
"name": "resolution",
"type": "enum",
"label": "Resolution",
"options": [
"720p",
"1080p"
],
"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
}
],
"billing": {
"version": 1,
"priceScope": "gateway",
"creditsPerUsd": 100,
"modelParams": [
{
"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
],
"default": 6
},
{
"name": "resolution",
"type": "enum",
"label": "Resolution",
"options": [
"720p",
"1080p"
],
"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
}
]
},
"prices": [
{
"unit": "second",
"conditions": {
"resolution": "720p"
},
"priceMicros": 118800,
"originalMicros": 132000,
"credits": 12
},
{
"unit": "second",
"conditions": {
"resolution": "1080p"
},
"priceMicros": 168300,
"originalMicros": 187000,
"credits": 17
}
]
}
],
"fromMicros": 108000,
"fromOriginalMicros": 120000,
"fromUnit": "second",
"maxMicros": 168300,
"maxOriginalMicros": 187000,
"maxUnit": "second"
}{
"provider": "example-chat",
"providerName": "Example chat",
"discount": null,
"preferred": false,
"params": [],
"prices": [
{
"unit": "input_token",
"conditions": {
"min_input_tokens": 0
},
"priceMicros": 1000000,
"originalMicros": null,
"credits": 250
},
{
"unit": "output_token",
"conditions": {
"min_input_tokens": 0
},
"priceMicros": 2000000,
"originalMicros": null,
"credits": 500
},
{
"unit": "input_token",
"conditions": {
"min_input_tokens": 100000
},
"priceMicros": 2000000,
"originalMicros": null,
"credits": 500
},
{
"unit": "output_token",
"conditions": {
"min_input_tokens": 100000
},
"priceMicros": 4000000,
"originalMicros": null,
"credits": 1000
}
],
"billing": {
"version": 1,
"priceScope": "gateway",
"creditsPerUsd": 250,
"modelParams": []
}
}{
"provider": "example-speech",
"providerName": "Example speech",
"discount": null,
"preferred": false,
"params": [
{
"name": "prompt",
"type": "text",
"required": true,
"maxLength": 10000
},
{
"name": "style_instructions",
"type": "string",
"default": "",
"maxLength": 1000
}
],
"prices": [
{
"unit": "kchar",
"conditions": {},
"priceMicros": 100000,
"originalMicros": null,
"credits": 1
}
],
"billing": {
"version": 1,
"priceScope": "gateway",
"creditsPerUsd": 250,
"modelParams": [
{
"name": "prompt",
"type": "text",
"required": true,
"maxLength": 10000
},
{
"name": "style_instructions",
"type": "string",
"default": "",
"maxLength": 1000
}
],
"characterBilling": {
"fields": [
"prompt",
"style_instructions"
],
"minimum": 1000,
"block": 1000
}
}
}{
"provider": "example-audio",
"providerName": "Example audio",
"discount": null,
"preferred": false,
"params": [
{
"name": "prompt",
"type": "text",
"required": true,
"maxLength": 10000
},
{
"name": "style_instructions",
"type": "string",
"default": "",
"maxLength": 1000
}
],
"prices": [
{
"unit": "input_token",
"conditions": {
"min_input_tokens": 0
},
"priceMicros": 1000000,
"originalMicros": null,
"credits": 250
},
{
"unit": "output_token",
"conditions": {
"min_input_tokens": 0
},
"priceMicros": 2000000,
"originalMicros": null,
"credits": 500
}
],
"billing": {
"version": 1,
"priceScope": "gateway",
"creditsPerUsd": 250,
"modelParams": [
{
"name": "prompt",
"type": "text",
"required": true,
"maxLength": 10000
},
{
"name": "style_instructions",
"type": "string",
"default": "",
"maxLength": 1000
}
],
"upstreamParams": [
{
"name": "prompt",
"type": "text",
"required": true,
"maxLength": 10000
},
{
"name": "style_instructions",
"type": "string",
"default": "",
"maxLength": 1000
}
],
"metering": {
"outputTokenHold": 1000,
"providerCost": false
}
}
}Responses are illustrative. IDs, usage, prices and results depend on the actual request.
Use with AI
Give your coding assistant the documentation index or the full API reference, including live model parameters.