---
url: https://docs.freetheai.org/api/models.md
description: >-
  GET /v1/models - list the FreeTheAI models your API key can use, in the OpenAI
  model list format.
---

# Models

Lists the models your key can use, in the OpenAI model list format. Apps with a model picker call it to fill their list.

`GET https://api.freetheai.org/v1/models`

## Request

::: code-group

```bash [curl]
curl https://api.freetheai.org/v1/models \
  -H "Authorization: Bearer $FTAI_KEY"
```

```python [Python]
import os
from openai import OpenAI

client = OpenAI(base_url="https://api.freetheai.org/v1", api_key=os.environ["FTAI_KEY"])

for model in client.models.list():
    print(model.id)
```

```ts [TypeScript]
import OpenAI from 'openai'

const client = new OpenAI({ baseURL: 'https://api.freetheai.org/v1', apiKey: process.env.FTAI_KEY })

for await (const model of client.models.list()) {
  console.log(model.id)
}
```

:::

No parameters. The list depends on your key: a key with **Allowed models** lists only those models, and a key with **Tool-capable models only** lists only models that can make tool calls ([key settings](/getting-started/account#key-settings)).

## Response

```json
{
  "object": "list",
  "data": [
    { "id": "fta/zai/glm-5.3", "object": "model", "created": 1790000000, "owned_by": "..." },
    { "id": "fta/kimi/k3", "object": "model", "created": 1790000000, "owned_by": "..." }
  ]
}
```

| Field | Type | Description |
| --- | --- | --- |
| `object` | string | Always `list`. |
| `data[].id` | string | The model ID to send as `model`. |
| `data[].object` | string | Always `model`. |
| `data[].created` | integer | Unix timestamp. |
| `data[].owned_by` | string | The catalog name the model is listed under. Not needed to make requests. |

Context sizes, output limits, image support, and supported endpoints are on each model's page at [freetheai.org/models](https://freetheai.org/models).

## Errors

| Status | Meaning |
| --- | --- |
| `401` | Missing or invalid API key. |
