---
title: "List models"
method: GET
path: "/api/v2/models"
tags: ["Models"]
---

# List models

`GET /api/v2/models`

## Request

- Base URL: `https://azurade.com`
- URL: `https://azurade.com/api/v2/models`
- Auth: none required

Every model the generation endpoint accepts: display name, what it is best for, the kinds of input it takes, its largest resolution and longest duration, the fields it takes with their defaults and allowed values, and the credits a request that sends only a prompt costs, the same figure POST /api/v2/generations/estimate returns for it. When pricing.varies is true, other resolutions, durations or inputs cost differently: estimate those before submitting. Public.

## Response `200`

OK

- ModelList
  - `models` Model[]
    - `best_for` string: What the model is best at, in one clause
    - `fields` FieldInfo[]
      - `default` unknown
      - `description` string
      - `enum` string[]: Allowed values, matched without case
      - `input` 'image' | 'video' | 'audio': Kind of file whose public URL the field takes (upload one with POST /api/v2/uploads); absent for every other field
      - `maximum` number: Largest value accepted (integer and number fields)
      - `minimum` number: Smallest value accepted (integer and number fields)
      - `name` string
      - `required` boolean
      - `type` 'string' | 'integer' | 'number' | 'boolean' | 'array'
    - `id` string
    - `inputs` string[]: Kinds of input the model takes
    - `max_duration` integer: Longest duration in seconds; absent when the model has no duration field
    - `max_resolution` string: Largest resolution value the model accepts; absent when it has no resolution field
    - `name` string: Display name
    - `pricing` object
      - `changes` object[]: The request that sends only a prompt with one field changed, where that changes the price; absent when none does. Changes combined are not listed: estimate them
        - `credits` number: Total credits for that whole request, every other field at its default (a video model's clip at its default duration)
        - `field` string
        - `value` unknown
      - `credits` number: Total credits for a request that sends only a prompt, the figure the estimate endpoint returns for it (a video model's is the whole default clip); absent when the pricing row is missing
      - `per` 'second' | 'image': The unit the price multiplies by: each second of video, or each image asked for. Absent when the price is per request
      - `unit_credits` number: Credits per unit named by per; absent when the pricing row is missing
      - `varies` boolean: True when a request can cost something other than the default price (credits): the price is per unit (per), or a change in changes costs something else. The estimate prices any request
    - `requires_image` boolean: True when an image or video input is required, so a prompt alone is refused
    - `type` 'image' | 'video'

## Other responses

- `400`: Invalid request

---

[API](https://skmtc.dev/azurade/apis/azurade-ai-api.md) · [All operations](https://skmtc.dev/azurade/apis/azurade-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/azurade/apis/azurade-ai-api/revisions/0530fd2c8b63?raw)
