Skip to main content
GET
cURL

Authorizations

X-API-Key
string
header
required

Query Parameters

types
enum<string>[] | null

Generation type enum

NOTE: this enum is used to determine the type of generation and is used to determine the type of asset that will be generated.

Available options:
image,
video,
text_to_speech,
speech_to_speech,
voice_clone,
audio_isolation,
video_stitching,
video_upscale,
video_to_video,
video_background_removal,
image_upscale,
agent_response,
audio_from_video,
text_to_sound,
music,
assets_to_image_text_prompt,
assets_to_audio_text_prompt

Response

Successful Response

slug
string
required

Stable cross-environment identifier for the model, e.g. google/nano-banana. Unique and identical across local/staging/production. Prefer slug over id when referencing models — id is environment-specific and will be removed in a later migration (model-registry plan step 7).

name
string
required

Name of the model

description
string | null
required

Description of the model.

type
string
required

Type of generation the model applies to.

price_details
AIModelPrice · object
required

Pricing details of the model.

id
string | null

Environment-specific UUID of the model, or null for a code-backed model with no ai_models row (identified by slug). Being removed in favor of slug (model-registry plan step 7); prefer slug.

aspect_ratios
string[] | null

Aspect ratios the model supports.

aspect_ratio_range
Aspect Ratio Range · object | null

If set to (min, max), the model accepts any keyframe whose width/height ratio is in [min, max], not just the values in aspect_ratios. The model snaps the output to its internal grid. aspect_ratios then serves as UI/preset labels rather than as an enum gate.

resolutions
string[] | null

Resolutions the model supports.

default_resolution
string | null

Backend-declared default output resolution for this model.

durations
string[] | null

Durations the model supports.

target_frame_rates
integer[] | null

Output frame rates a video-upscale model can interpolate up to. Absent when the model offers no frame-rate control.

fps_engines
FpsEngineOption · object[] | null

Interpolation engines offered with target_fps, in display order; the first is the default. price_multiplier scales the whole upscale charge.

requires_character_orientation
boolean | null

Whether the model requires character orientation (motion control).

eta_ms
integer | null

Average generation duration in milliseconds.

tags
string[] | null

Tags for model categorization.

max_duration_ms
integer | null

Maximum output duration in milliseconds for video/audio models.

custom_resolution
boolean | null

Whether the model supports custom resolution.

pricing
Pricing · object | null

Extensible pricing information with dimension modifiers for resolution, audio, etc.

credit_range
Credit Range · object | null

Min and max credits one generation can cost across the model's resolution/duration grid, computed server-side through the model's own pricing (sentinel durations billed as charged, audio-off discounts included). Null for models priced from a resolved asset (audio-driven, extension) — render the base price_details cost instead.

dimensions
Dimensions · object | null

Width and height for each aspect_ratio and resolution tuple.

min_prompt_length
integer | null

Minimum character count for text prompts. Null means no minimum.

max_prompt_length
integer | null

Maximum character count for text prompts. Null means no maximum.

supports_prompt_enhancement
boolean
default:true

Whether the model accepts automatic server-side prompt enhancement during generation.

prompt_enhancement_mode
enum<string>
default:generic

Whether enhancement is unavailable, uses the generic contract, or uses a reviewed model-specific guide.

Available options:
unsupported,
generic,
model_specific
inputs
InputMode · object[] | null

List of input modes the model supports. Each mode groups mutually exclusive input slots. The frontend picks one mode. text_to_video (no inputs) is always implicitly available for VIDEO type models. Null means the model takes no media input.

conditional_constraints
ConditionalConstraint · object[] | null

Machine-readable conditional input rules the backend enforces at submit. Each rule's when is conjunctive over the closed keys resolution (matched against the effective resolution: the requested one, or default_resolution when omitted) and references_present; its then narrows what the model advertises — audio_input_max_duration_ms caps the driving audio, durations (int ms) replaces the offered durations, and disallowed_resolutions removes resolutions. When several rules match: numeric caps take the minimum, durations intersect, disallowed_resolutions union. Null when the model declares none.

options
ModelOption · object[] | null

Scalar options the model accepts per generation (closed enums and booleans), price-neutral unless a value declares a price_multiplier — the quote endpoint reflects any declared multiplier, so clients never do pricing math. Submit validates the request's options payload against this declaration; every default equals the provider's own default, so omission and explicit-default are equivalent. Null when the model publishes none.

alternative_model_slugs
string[] | null

Ordered slugs of models to suggest when the user switches away after a failed generation (moderation/capacity rejection). Slug is the stable catalog identity to match on; the legacy id is nullable and absent on newer models, so it cannot address them. Only models present and not disabled in this build are listed. Null when the model declares no alternatives.

logo_url
string | null

URL of the model's logo in SVG format.

premium
boolean
default:true

Whether this is a premium model.

display_order
integer | null

Display order for UI sorting. Lower values appear first.