Source: https://01router.com/docs/models/ltx-2.5-pro/model-detail Base URL: https://01router.com/api/v1 # 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. `GET /api/v1/models/{slug}` Public · No API key ## 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 | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | slug | string · path | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "ltx-2.5-pro" ] | ## 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. | | | 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. | | ## cURL ```bash curl 'https://01router.com/api/v1/models/ltx-2.5-pro' ``` ## 200 · application/json ```json { "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" } ``` ## Token provider fragment (one standard providers[] entry) ```json { "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": [] } } ``` ## Character provider fragment (one standard providers[] entry) ```json { "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 } } } ``` ## Audio reservation fragment (one standard providers[] entry) ```json { "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 } } } ```