List Available AI Models (Legacy API)
Retrieve the list of AI models available through the Hedra API, including image, video, and audio generation models.
Authorizations
Query Parameters
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.
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
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 of the model
Description of the model.
Type of generation the model applies to.
Pricing details of the model.
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 the model supports.
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 the model supports.
Backend-declared default output resolution for this model.
Durations the model supports.
Output frame rates a video-upscale model can interpolate up to. Absent when the model offers no frame-rate control.
Interpolation engines offered with target_fps, in display order; the first is the default. price_multiplier scales the whole upscale charge.
Whether the model requires character orientation (motion control).
Average generation duration in milliseconds.
Tags for model categorization.
Maximum output duration in milliseconds for video/audio models.
Whether the model supports custom resolution.
Extensible pricing information with dimension modifiers for resolution, audio, etc.
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.
Width and height for each aspect_ratio and resolution tuple.
Minimum character count for text prompts. Null means no minimum.
Maximum character count for text prompts. Null means no maximum.
Whether the model accepts automatic server-side prompt enhancement during generation.
Whether enhancement is unavailable, uses the generic contract, or uses a reviewed model-specific guide.
unsupported, generic, model_specific 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.
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.
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.
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.
URL of the model's logo in SVG format.
Whether this is a premium model.
Display order for UI sorting. Lower values appear first.