List aicut models
list_modelsReturns the AI video, image and audio models this API can generate with: each model's exact parameters (names, allowed values, limits, defaults), the media inputs it takes and its pricing. WHEN: call this, NARROWED and never as the whole catalog, before the first generate_video, generate_image or generate_audio of a session: model ids cannot be guessed, nor can the resolutions, durations or aspect ratios a model allows (generate_* rejects a combination not published here). A speech model's voice comes from list_voices, not from here. NARROW IT, DO NOT PULL IT: the unfiltered listing is several thousand tokens, mostly pricing tables. query is free text (send the user's own words; ignored_query_terms names the words that matched nothing). tags is a closed vocabulary, ANDed, derived from each entry's own fields: video / image / audio, speech / music / sound-effects, vertical / horizontal / square, image-input with start-image / end-image / reference-image (or text-only), native-audio (an audio switch, default OFF), recommended; tag_vocabulary rides on every answer and an unknown tag is a 400. There is no duration tag: durations are searchable (query: '10') and every entry carries its durations. type is the product, model one id. PAGING only if you ask: with no limit you get every match. With limit the answer carries total_matching, has_more and next_cursor: READ THEM before telling a user something does not exist, and continue with the SAME filters. PRICING, one shape per entry: video and image models carry pricing, an enumerated table (the row matching your resolution, duration, quality and audio is the cost); audio models carry pricing_rates (per character, minute or second): there is no row to match and you must NOT multiply the rate yourself; use estimate_only: true on generate_audio.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tags every returned model must carry (an AND), e.g. `['video','vertical','reference-image']`; `tag_vocabulary` rides on every answer and an unknown tag is a 400. | |
| type | No | Only one product: `video`, `image` or `audio`. Omit for all three. | |
| limit | No | 1-100. Omit to get every match (right once filtered); otherwise read `has_more` and `total_matching`. | |
| model | No | Only the model with this exact id (for example `kling-3.0`). | |
| query | No | Free text: the user's own words ('vertical product ad', '4k'). Words that match nothing are dropped and named in `ignored_query_terms`; the rest must all match (an AND). | |
| cursor | No | The previous `next_cursor`. Send the SAME `type` / `model` / `query` / `tags` with it: different filters are a 400, not a restart. |