Skip to main content
Use the models endpoints to discover which models your project can use, which parameters each one accepts, and what each one costs.

What these endpoints return

Every model comes back with its supported parameters and its currently effective pricing. Use them when you need to:
  • discover current model IDs
  • separate image models from video models
  • validate aspect_ratio, resolution, duration, and sound before you submit a generation
  • read the current price per billable unit

List models

Filter by type

Use the optional type query parameter when you only want one category.
Use type=image for image models and type=video for video models.

Get a single model

Pass a model ID to read one model without fetching the whole list.
The response is a single model object.
An unknown model ID returns 404 with error code not_found.

Response fields

Supported parameters and defaults

supported_aspect_ratios, supported_durations, and supported_resolutions are ordered. The first value is the default the API applies when you omit the parameter, so you can send a minimal request and still get a sensible result. Sending a value that isn’t in the list returns 400 with error code invalid_parameter.

Reference image roles

supported_references maps each role the model accepts to the maximum number of reference images for that role.
A role that isn’t in the object isn’t supported by that model. Use this to check a role before you submit rather than discovering it from a 400. See Generate images and Generate videos for how roles work.

Pricing

Each model carries the rates currently in effect for your project. To find the rate for a generation, match on the resolution and sound values you plan to send. For videos, not_applicable also acts as a fallback when no exact match exists. unit_price is a string so you can parse it as a decimal without floating-point rounding. Use your language’s decimal type rather than a float when you total costs.
An empty rates array means no active rates are configured for that model. It does not mean generation is free. Current rates are also listed on the Models page.
For what you have actually spent, see Billing.

Validate before you generate

Fetch the model and check your parameters against it. That turns a failed generation into a local check.
To check a reference image role, read supported_references.

Image vs video models

Choose the model type based on the generation type:
  • Image models are for POST /v2/images/generations
  • Video models are for POST /v2/videos/generations
Sending an image model to the video endpoint, or the reverse, returns 400 with error code invalid_parameter.

How to choose a model

Start with these checks:
  • generation type: image or video
  • input shape: prompt only, reference image, first frame, or last frame
  • output needs: aspect ratio, resolution, duration, and sound
If your integration depends on a specific capability, read the model before you submit a generation and validate against its supported parameters. That keeps your production flow stable as model availability changes.

Where to check current availability

Use one of these sources:
  • GET /v2/models and GET /v2/models/{model} in your integration
  • the Models page in the dashboard
Avoid hardcoding a fixed model list, parameter set, or price in your integration. All of them can change.