API docsAPI reference

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
ltx-2.5-proVideo · LightricksModel details & pricing

Endpoints for this model

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.

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[]

FieldTypeMeaning and use
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.
fromMicrosnumber | nullLowest per-unit price in micro-USD across all providers; null when the model has no price.
maxMicrosnumber | nullHighest per-unit price in micro-USD across all providers; null when the model has no price.
fromUnit / maxUnitstring | nullBilling unit of fromMicros / maxMicros (request / second / image / kchar / input_token / output_token). Always show a price together with its unit.
fromOriginalMicros / maxOriginalMicrosnumber | nullList 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[]

FieldTypeMeaning and use
namestringInput field name, such as prompt, duration or num_images.
typestringtext / 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 / descriptionstringOptional display label and description; display name when absent.
requiredbooleanOptional; defaults to false. A required value must not remain empty after applying defaults.
defaultstring | number | booleanOptional default used for missing, null or empty-string input. Absence does not mean zero.
optionsarrayOptional allowed strings, numbers or booleans. For enum, select a listed value and preserve its type.
min / maxnumberOptional inclusive numeric bounds. integer values must also be whole numbers.
maxItemsnumberOptional maximum image count for an images parameter.
maxLengthnumberOptional 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[]

FieldTypeMeaning and use
unitstringrequest / second / image / kchar / input_token / output_token: per request, second, image, thousand characters, million input tokens or million output tokens.
conditionsobjectCondition 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.
priceMicrosnumberUnit 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.
originalMicrosnumber | nullComparison list unit price in the standard catalog; null means no discounted list price is available. Omitted in project catalogs.
creditsnumberRule-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

FieldTypeMeaning and use
versionnumberCurrently 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.
creditsPerUsdnumber | nullGateway credits per dollar. Null in project catalogs; do not infer gateway credits from resale prices.
modelParamsarrayModel-level parameter definitions with the same schema as params[]. Validate input against these first.
upstreamParamsarrayOptional final parameter definitions with the same schema as params[]. When present, validate and apply their defaults after provider validation.
characterBillingobjectOptional character rules. Without them, count prompt using JavaScript string length, with a minimum of 1 character and no automatic rounding to whole thousands.
characterBilling.fieldsstring[]Input field names whose lengths are summed; returned within characterBilling. Missing input contributes an empty string.
characterBilling.minimumnumberMinimum billable character count, returned within characterBilling.
characterBilling.blocknumberOptional block size: round characters up to its multiple before applying minimum. Omitted or zero means no block rounding.
meteringobjectOptional metered audio settings. The pre-generation quote is a token-based reservation; final settlement can differ.
metering.outputTokenHoldnumberReserved output token count, returned within metering.
metering.providerCostbooleanWhen 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.
unavailableReasonstringOptional 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 parameters
slug
string · pathRequired

Model slug from the catalog. Project keys may use a project-specific model slug.

Allowed values:"ltx-2.5-pro"

Response fields

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.

Request

cURL
curl 'https://01router.com/api/v1/models/ltx-2.5-pro'

Response example

200 · application/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)
{
  "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)
{
  "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)
{
  "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.