> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unifically.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Models

> List every model available to your account, across video, image, audio, and LLM

Returns every enabled model your API key can access — video, image, and audio generation models alongside LLMs — in the OpenAI-compatible list format, so existing OpenAI SDK code works unchanged.

<Note>
  This endpoint returns the raw OpenAI list shape (`{ "object": "list", "data": [...] }`), **not** the standard `{ success, code, data }` envelope used by the rest of the API.
</Note>

## Request

```bash theme={null}
curl https://api.unifically.com/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"
```

## Response

```json theme={null}
{
  "object": "list",
  "data": [
    {
      "id": "elevenlabs/text-to-speech",
      "object": "model",
      "created": 1715040000,
      "added": 1753142400,
      "owned_by": "elevenlabs",
      "display_name": "ElevenLabs Text-to-Speech",
      "category": "audio"
    },
    {
      "id": "anthropic/claude-opus-4-8",
      "object": "model",
      "created": 1764547200,
      "added": 1764633600,
      "owned_by": "anthropic",
      "display_name": "Claude Opus 4.8",
      "category": "llm",
      "context_length": 200000,
      "max_output": 64000
    },
    {
      "id": "google/veo-3.1-fast",
      "object": "model",
      "created": 1760486400,
      "added": 1760572800,
      "owned_by": "google",
      "display_name": "Veo 3.1 Fast",
      "category": "video"
    }
  ]
}
```

## Response Fields

<ResponseField name="object" type="string">
  Always `"list"`.
</ResponseField>

<ResponseField name="data" type="array">
  The list of models, grouped by category and sorted by display name.

  <Expandable title="Model object">
    <ResponseField name="id" type="string">
      Model identifier in `provider/model-name` format. This is the exact value to pass as `model` when creating tasks or LLM requests.
    </ResponseField>

    <ResponseField name="object" type="string">
      Always `"model"`.
    </ResponseField>

    <ResponseField name="created" type="integer">
      Provider's official release date as a unix timestamp (seconds). Falls back to `added` when the release date is unknown.
    </ResponseField>

    <ResponseField name="added" type="integer">
      Unix timestamp (seconds) when the model was added to Unifically.
    </ResponseField>

    <ResponseField name="owned_by" type="string">
      Provider slug, e.g. `google`, `anthropic`, `elevenlabs`.
    </ResponseField>

    <ResponseField name="display_name" type="string">
      Human-readable model name.
    </ResponseField>

    <ResponseField name="category" type="string">
      One of `audio`, `image`, `video`, `llm`. Provider-anchored: ElevenLabs and Suno models are always `audio` (including speech-to-text and lyrics).
    </ResponseField>

    <ResponseField name="context_length" type="integer">
      Maximum context window in tokens. LLM models only.
    </ResponseField>

    <ResponseField name="max_output" type="integer">
      Maximum output tokens per request. LLM models only.
    </ResponseField>
  </Expandable>
</ResponseField>

***

## Retrieve a Model

**GET** `/v1/models/{model_id}`

Returns a single model object by its exact ID (OpenAI retrieve-model compatible).

```bash theme={null}
curl https://api.unifically.com/v1/models/google/veo-3.1-fast \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json theme={null}
{
  "id": "google/veo-3.1-fast",
  "object": "model",
  "created": 1760486400,
  "added": 1760572800,
  "owned_by": "google",
  "display_name": "Veo 3.1 Fast",
  "category": "video"
}
```

## Filter by Provider

If the path segment is a provider slug instead of a model ID, the response is a list filtered to that provider:

```bash theme={null}
curl https://api.unifically.com/v1/models/elevenlabs \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json theme={null}
{
  "object": "list",
  "data": [
    {
      "id": "elevenlabs/text-to-speech",
      "object": "model",
      "created": 1715040000,
      "added": 1753142400,
      "owned_by": "elevenlabs",
      "display_name": "ElevenLabs Text-to-Speech",
      "category": "audio"
    }
  ]
}
```

## Errors

An unknown model ID or provider returns a `404` in the OpenAI error shape:

```json 404 theme={null}
{
  "error": {
    "message": "model or provider not found: foo/bar",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}
```

## Authentication

All requests require a valid API key in the Authorization header:

```
Authorization: Bearer YOUR_API_KEY
```

<Info>
  Get your API key from the [Unifically Dashboard](https://unifically.com/dashboard).
</Info>
