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

# Как получить список моделей

> Как получить и фильтровать список доступных AI моделей через API

<Note>
  Актуальный перечень моделей с ценами можно посмотреть на [speshu.ai](https://speshu.ai/).
</Note>

В этом разделе вы узнаете, как через API получить список доступных моделей в SpeShu.AI, отфильтровать их и посмотреть подробности — тип, параметры и стоимость.

<Note>
  Дополнительно описание endpoint доступно в разделе [API Reference](/docs/api-reference/models/list).
</Note>

## Endpoint

```
GET https://speshu.ai/api/v1/models
```

Запрос возвращает все доступные модели с базовой информацией: тип, возможности и цены.

## Параметры

При необходимости результат можно отфильтровать:

`type` — ограничивает список по типу модели

`include_providers` — добавляет данные о провайдерах

### Типы моделей (type)

| Значение    | Описание                                         |
| ----------- | ------------------------------------------------ |
| `chat`      | текстовые модели (например, GPT, Claude, Gemini) |
| `image`     | генерация изображений                            |
| `embedding` | создание эмбеддингов                             |
| `audio`     | работа со звуком                                 |
| `video`     | генерация видео                                  |
| `tts`       | синтез речи                                      |
| `stt`       | распознавание речи                               |

## Примеры запросов

<CodeGroup>
  ```typescript TypeScript theme={null} theme={null}
  // Все модели
  const response = await fetch('https://speshu.ai/api/v1/models', {
    headers: {
      'Authorization': 'Bearer <SPESHU_AI_API_KEY>'
    }
  });
  const data = await response.json();
  console.log(`Найдено ${data.data.length} моделей`);

  // Только чат-модели
  const chatModels = await fetch('https://speshu.ai/api/v1/models?type=chat', {
    headers: {
      'Authorization': 'Bearer <SPESHU_AI_API_KEY>'
    }
  });

  // С информацией о провайдерах
  const detailed = await fetch('https://speshu.ai/api/v1/models?type=chat&include_providers=true', {
    headers: {
      'Authorization': 'Bearer <SPESHU_AI_API_KEY>'
    }
  });
  ```

  ```python Python theme={null} theme={null}
  import requests

  headers = {'Authorization': 'Bearer <SPESHU_AI_API_KEY>'}

  # Все модели
  response = requests.get(
      'https://speshu.ai/api/v1/models',
      headers=headers
  )
  data = response.json()
  print(f"Найдено {len(data['data'])} моделей")

  # Только чат-модели
  chat_models = requests.get(
      'https://speshu.ai/api/v1/models',
      params={'type': 'chat'},
      headers=headers
  )

  # С информацией о провайдерах
  detailed = requests.get(
      'https://speshu.ai/api/v1/models',
      params={'type': 'chat', 'include_providers': 'true'},
      headers=headers
  )
  ```

  ```bash cURL theme={null} theme={null}
  # Все модели
  curl "https://speshu.ai/api/v1/models" \
    -H "Authorization: Bearer <SPESHU_AI_API_KEY>"

  # Только чат-модели
  curl "https://speshu.ai/api/v1/models?type=chat" \
    -H "Authorization: Bearer <SPESHU_AI_API_KEY>"

  # С информацией о провайдерах
  curl "https://speshu.ai/api/v1/models?type=chat&include_providers=true" \
    -H "Authorization: Bearer <SPESHU_AI_API_KEY>"
  ```
</CodeGroup>

## Структура ответа

```json theme={null} theme={null}
{
  "data": [
    {
      "id": "openai/gpt-5.5",
      "name": "GPT-5.4",
      "type": "chat",
      "short_description": "Флагманская мультимодальная модель OpenAI",
      "created": 1715367049,
      "architecture": {
        "modality": "text+image->text",
        "input_modalities": ["text", "image"],
        "output_modalities": ["text"],
        "tokenizer": "o200k_base"
      },
      "top_provider": {
        "is_moderated": true,
        "context_length": 128000,
        "max_completion_tokens": 16384,
        "pricing": {
          "prompt_per_million": "7.50",
          "completion_per_million": "22.50",
          "currency": "RUB"
        },
        "supported_parameters": ["temperature", "top_p", "frequency_penalty", "presence_penalty", "tools", "tool_choice", "response_format"],
        "default_parameters": {
          "temperature": 1.0,
          "top_p": 1.0,
          "frequency_penalty": 0
        }
      },
      "endpoints": ["/api/v1/chat/completions"]
    }
  ]
}
```

### Описание полей

| Поле                | Описание                             |
| ------------------- | ------------------------------------ |
| `id`                | используется в запросах к API        |
| `name`              | отображаемое название                |
| `type`              | категория модели                     |
| `short_description` | краткое описание                     |
| `created`           | дата создания (timestamp)            |
| `architecture`      | входы, выходы и токенизатор          |
| `top_provider`      | параметры и цены у провайдера        |
| `endpoints`         | доступные endpoint'ы                 |
| `parameters`        | дополнительные настройки (если есть) |
| `operations`        | поддерживаемые операции              |

### Блок architecture

| Поле                | Описание                  |
| ------------------- | ------------------------- |
| `modality`          | формат входа и выхода     |
| `input_modalities`  | допустимые входные данные |
| `output_modalities` | формат ответа             |
| `tokenizer`         | используемый токенизатор  |

### Блок top\_provider

| Поле                    | Описание              |
| ----------------------- | --------------------- |
| `is_moderated`          | есть ли модерация     |
| `context_length`        | максимальный контекст |
| `max_completion_tokens` | лимит ответа          |
| `pricing`               | стоимость             |
| `supported_parameters`  | доступные параметры   |
| `default_parameters`    | значения по умолчанию |

### Цены (pricing)

Набор полей зависит от модели:

| Поле                             | Описание                                |
| -------------------------------- | --------------------------------------- |
| `prompt_per_million`             | цена за входные токены (RUB за 1М)      |
| `completion_per_million`         | цена за выходные токены (RUB за 1М)     |
| `image_input_per_million`        | цена за входные изображения (RUB за 1М) |
| `audio_per_million`              | цена за аудио (RUB за 1М)               |
| `per_request`                    | цена за запрос (RUB)                    |
| `stt_per_minute`                 | цена за минуту распознавания речи (RUB) |
| `tts_per_million_characters`     | цена за 1М символов синтеза речи (RUB)  |
| `video_per_second`               | цена за секунду видео (RUB)             |
| `internal_reasoning_per_million` | цена за reasoning токены (RUB за 1М)    |
| `input_cache_read_per_million`   | цена за чтение из кэша (RUB за 1М)      |
| `input_cache_write_per_million`  | цена за запись в кэш (RUB за 1М)        |
| `currency`                       | валюта (всегда RUB)                     |

## Использование модели

ID из ответа передаётся в параметр `model` при вызове API:

```typescript theme={null} theme={null}
const completion = await openai.chat.completions.create({
  model: 'openai/gpt-5.5',  // ID модели из /models
  messages: [...]
});
```
