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

# List models

`GET /api/models`

## Request

- Base URL: `https://makefx.app`
- URL: `https://makefx.app/api/models`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://makefx.app/api/oauth/authorize`, token URL `https://makefx.app/api/oauth/token`, scopes: `read`)
  - API key in cookie `auth_token`

Lists the compact model catalog, optionally filtered by media kind, model family, or one model id, and scoped to an authorized space billing account. Speech voices are listed by GET /api/voices.

## Query parameters

- `kind` 'image' | 'video' | 'audio'
- `family` 'provider' | 'internal' | 'browser'
- `model` string: Catalog id; returns only that model.
- `space_id` string

## Headers

- `API-Version` '2026-09-10'

## Response `200`

Success

- object
  - `credit_eur` number, required
  - `models` object[], required
    - `id` string, required
    - `terms` string, required
    - `kind` 'image' | 'video' | 'audio', required
    - `family` 'provider' | 'internal' | 'browser', required
    - `provider` string, required
    - `provider_model` string, required
    - `provider_model_kind` 'snapshot' | 'alias', required
    - `label` string, required
    - `description` string, required
    - `default_for_kind` boolean, required
    - `availability` 'available' | 'preview' | 'unavailable', required
    - `typical_seconds` number, required
    - `params_schema` object, required
    - `reference_slots` object[], required
      - `slot` string, required
      - `kinds` string[], required
      - `min` integer, required
      - `max` integer, required
      - `order` string
      - `exclusive_with` string[]
      - `requires` string[]
    - `output` object, required
    - `price` object, required
      - `unit` 'image' | 'second' | 'minute' | 'track' | 'none', required
      - `credits` number, required
      - `rules` object[], required
        - `when` object, required
        - `credits` number, required
      - `minimum_credits` number
      - `managed_markup_percent` number: Rates include this percentage markup. Before rounding per asset, use the larger of that markup or the own_key minimum fee added to the underlying reference charge.
      - `own_key` union: Independent platform fee when the paying account supplies the provider key.
        - object
          - `unit` 'image', required
          - `credits` integer, required
        - object
          - `unit` 'second', required
          - `credits` integer, required
          - `seconds` integer, required: Duration of one started billing block, rounded per asset.
          - `estimated_seconds` number: Quote duration when output length is not requested.
      - `until` string, date-time, nullable, required
      - `after` object, nullable, required
        - `credits` number, required
        - `rules` object[], required
          - `when` object, required
          - `credits` number, required
    - `error_codes` string[], required
    - `hidden` boolean, required
    - `renders_in` 'browser'
    - `prompt_max_chars` integer: Longest prompt accepted, in Unicode code points, where the model is stricter than the 8,000-character prompt cap; absent when only that cap applies.
  - `actions` union[], required
    - union
      - object
        - `id` 'describe', required
        - `terms` string, required
        - `label` string, required
        - `tool` 'describe_asset', required
        - `applies_to` string[], required
        - `writes` 'traits', required
        - `price` object, required
          - `unit` 'none', required
          - `credits` number, required
      - object
        - `id` 'align_audio', required
        - `terms` string, required
        - `label` string, required
        - `tool` 'align_audio', required
        - `applies_to` unknown[], required
          - unknown
        - `writes` 'word_timings', required
        - `price` object, required
          - `unit` 'minute', required
          - `credits` number, required
          - `minimum_credits` integer, required
        - `billing` 'platform' | 'own_key'

## Other responses

- `400`: The request did not match the schema
- `401`: No valid credentials. WWW-Authenticate names the protected resource metadata to start from
- `403`: The credentials are valid but not enough: the token lacks the scope, or the action needs a browser session rather than an app token
- `404`: Not found
- `429`: Rate limited. RateLimit names the policy; Retry-After says when to try again
- `500`: Internal server error

---

[API](https://skmtc.dev/makefx/apis/makefx-app-api.md) · [All operations](https://skmtc.dev/makefx/apis/makefx-app-api/llms.txt) · [OpenAPI document](https://skmtc.dev/makefx/apis/makefx-app-api/revisions/a05584da31c6?raw)
