# List models

- **Method:** `GET`
- **Path:** `/v1/models`
- **Operation ID:** `listModels`
- **Tags:** Account

Lists the models you can generate with, with their languages and preset voices.

## Effective servers

- `https://api.vcp.name`

## Authentication

- **bearer**: HTTP bearer (`API key`)

  An API key from Settings, starting vcp\_live\_.

## Responses

### 200 OK.

**Content type:** `application/json`

schema: `ModelList`, no additional properties

- **`models` (required)**: `array`

  **Items:**

  schema: `Model`, no additional properties
  - **`clone` (required)**: `boolean`

    Speaks in saved voices.
  - **`design` (required)**: `boolean`

    Designs voices from a description.
  - **`design_takes_text` (required)**: `boolean`

    Voice design speaks the given text.
  - **`id` (required)**: `string`

    Pass as model.
  - **`languages` (required)**: `array of string`

    Languages to pass as language.
  - **`name` (required)**: `string`
  - **`presets` (required)**: `array`

    Preset voices of this model.

    **Items:**

    schema: `Preset`, no additional properties
    - **`description` (required)**: `string`
    - **`id` (required)**: `string`

      Pass as voice.
    - **`language` (required)**: `string | null`

      The language the preset speaks, or null.
    - **`name` (required)**: `string`

**Example:**

```json
{
  "models": [
    {
      "id": "qwen3-tts",
      "name": "Qwen3",
      "clone": true,
      "design": true,
      "design_takes_text": true,
      "languages": [
        "English",
        "Spanish",
        "French"
      ],
      "presets": [
        {
          "id": "Ryan",
          "name": "Ryan",
          "description": "",
          "language": "English"
        }
      ]
    }
  ]
}
```

### 401, 403, 429, 500, 503

- `401` The API key is missing, invalid or revoked.
- `403` The account needs a paid plan, or the action is not allowed.
- `429` Too many requests. Retry after the Retry-After header.
- `500` Something went wrong on our side.
- `503` Temporarily unavailable. Retry after the Retry-After header.

**Content type:** `application/json`

schema: `ErrorBody`, no additional properties

- **`error` (required)**: `object`, schema: `ErrorDetail`, no additional properties
  - **`code` (required)**: `string`

    A code from the error tables.
  - **`message` (required)**: `string`

    What went wrong.
  - **`param`**: `string`

    The request field at fault, when there is one.

**Example:**

```json
{
  "error": {
    "code": "invalid_request",
    "message": "text is required.",
    "param": "text"
  }
}
```

## Schemas

### ErrorBody

**Type:** `object`, no additional properties

*Schema `ErrorBody` is shown above.*

**Example:**

```json
{
  "error": {
    "code": "invalid_request",
    "message": "text is required.",
    "param": "text"
  }
}
```

- `ErrorDetail` — shown above.
- `Model` — shown above.
- `Preset` — shown above.
- `ModelList` — shown above.
