# Модели

## Формат идентификатора

Модель задаётся слагом в формате `провайдер/модель`:

```
openai/gpt-4.1
anthropic/claude-3.5-sonnet
google/gemini-2.0-flash
deepseek/deepseek-chat
```

Слаг без префикса провайдера (`gpt-4.1`) невалиден и приведёт к ошибке от провайдера.
Актуальные слаги смотрите в каталоге [Модели](https://agentapi.ru/models) на сайте.

## Список моделей

```
GET https://api.agentapi.ru/models
```

Эндпоинт публичный — ключ не требуется. Обратите внимание: он **без префикса `/v1`**.

| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
| `q` | string | — | Поиск по названию или слагу |
| `limit` | number | 10 | Размер страницы |
| `page` | number | 1 | Номер страницы |
| `order` | string | — | Сортировка (см. ниже) |

Значения `order`: `newest`, `most-popular`, `top-weekly`, `pricing-low-to-high`,
`pricing-high-to-low`, `context-high-to-low`, `latency-low-to-high`,
`throughput-high-to-low`.

```bash
curl "https://api.agentapi.ru/models?q=claude&limit=2&order=newest"
```

```json
{
  "data": [
    {
      "id": "anthropic/claude-3.5-sonnet",
      "name": "Anthropic: Claude 3.5 Sonnet",
      "context_length": 200000,
      "pricing": {
        "prompt": "0.000003",
        "completion": "0.000015"
      },
      "architecture": {
        "input_modalities": ["text", "image"],
        "output_modalities": ["text"]
      }
    }
  ],
  "total": 14,
  "total_pages": 7
}
```

Поле `pricing` — справочные тарифы модели за токен. Итоговое списание с баланса идёт
в рублях, см. [Биллинг](https://agentapi.ru/docs/billing).

## Чего в этом списке нет

- **Embedding-модели отфильтрованы.** Всё, что отдаёт `embeddings` в `output_modalities`,
  из выдачи исключается. Названия для [эндпоинта embeddings](https://agentapi.ru/docs/endpoints/embeddings)
  берите из документации провайдера.
- **Эндпоинта `GET /v1/ai/models` не существует.** Плагины, которые подтягивают список
  моделей автоматически, покажут пустой список — слаг нужно вводить руками. Это отражено
  в инструкциях по [интеграциям](https://agentapi.ru/docs/integrations/continue).

## Выбор модели по умолчанию

Поле `model` необязательно, но полагаться на это не стоит: без явного указания выбор
модели остаётся на стороне провайдера, а в статистику расходов запрос попадёт под
служебным именем. Всегда указывайте `model` явно.

## Fallback при отказе

Вместо одной модели можно передать приоритетный список — если первая недоступна,
используется следующая:

```json
{
  "models": ["openai/gpt-4.1", "anthropic/claude-3.5-sonnet", "deepseek/deepseek-chat"],
  "messages": [{"role": "user", "content": "Привет!"}]
}
```

Модель, которая фактически ответила, возвращается в поле `model`.

## Предпочтения провайдера

Один и тот же слаг может обслуживаться разными хостингами. Порядок можно задать:

```json
{
  "model": "openai/gpt-4.1",
  "messages": [{"role": "user", "content": "Привет!"}],
  "provider": {
    "order": ["openai", "azure"],
    "allow_fallbacks": true
  }
}
```
