Справочник API
Полная документация всех эндпоинтов ModelSwitch API. Совместим с форматом OpenAI API — используйте существующие SDK и библиотеки без изменений.
Base URL
Аутентификация
Все запросы к API требуют аутентификации через API ключ. Передайте ключ в заголовке Authorization в формате Bearer token.
1curl https://modelswitch.ru/v1/chat/completions \2 -H "Authorization: Bearer ms-xxxxxxxxxxxxxxxxxxxxxxxx" \3 -H "Content-Type: application/json" \4 -d '{"model": "gpt-4o", "messages": [{"role": "user", "content": "Hello"}]}'API ключи создаются в Личном кабинете → API ключи. Ключи начинаются с префикса ms-.
POST /v1/chat/completions
Создание ответа на основе диалога. Основной эндпоинт для работы с чат-моделями. Поддерживает streaming через SSE.
Параметры запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| model | string | Да | ID модели (например, gpt-4o, claude-3-5-sonnet-20241022) |
| messages | array | Да | Массив сообщений диалога (role + content) |
| temperature | number | Нет | Температура семплирования (0-2, по умолчанию 1) |
| max_tokens | integer | Нет | Максимальное количество токенов в ответе |
| stream | boolean | Нет | Включить потоковую передачу ответа (SSE) |
| top_p | number | Нет | Nucleus sampling (0-1, по умолчанию 1) |
Пример запроса
1POST /v1/chat/completions2
3{4 "model": "gpt-4o",5 "messages": [6 {"role": "system", "content": "Ты — полезный ассистент."},7 {"role": "user", "content": "Что такое ModelSwitch?"}8 ],9 "temperature": 0.7,10 "max_tokens": 1000,11 "stream": false12}Пример ответа
1{2 "id": "chatcmpl-abc123",3 "object": "chat.completion",4 "created": 1709000000,5 "model": "gpt-4o",6 "choices": [7 {8 "index": 0,9 "message": {10 "role": "assistant",11 "content": "ModelSwitch — это единый API шлюз..."12 },13 "finish_reason": "stop"14 }15 ],16 "usage": {17 "prompt_tokens": 25,18 "completion_tokens": 150,19 "total_tokens": 17520 }21}POST /v1/completions
Генерация текста на основе промта. Для моделей, поддерживающих legacy completions API (например, gpt-3.5-turbo-instruct).
Пример запроса
1POST /v1/completions2
3{4 "model": "gpt-3.5-turbo-instruct",5 "prompt": "Напиши функцию сортировки на Python:",6 "max_tokens": 256,7 "temperature": 0.58}Пример ответа
1{2 "id": "cmpl-xyz789",3 "object": "text_completion",4 "created": 1709000000,5 "model": "gpt-3.5-turbo-instruct",6 "choices": [7 {8 "text": "\ndef bubble_sort(arr):\n ...",9 "index": 0,10 "finish_reason": "stop"11 }12 ],13 "usage": {14 "prompt_tokens": 12,15 "completion_tokens": 85,16 "total_tokens": 9717 }18}POST /v1/embeddings
Создание векторных представлений (embeddings) текста. Используются для семантического поиска, кластеризации и RAG.
Пример запроса
1POST /v1/embeddings2
3{4 "model": "text-embedding-3-small",5 "input": "ModelSwitch — единый AI API шлюз",6 "encoding_format": "float"7}Пример ответа
1{2 "object": "list",3 "data": [4 {5 "object": "embedding",6 "index": 0,7 "embedding": [0.0023, -0.0091, 0.0156, ...]8 }9 ],10 "model": "text-embedding-3-small",11 "usage": {12 "prompt_tokens": 12,13 "total_tokens": 1214 }15}GET /v1/models
Получение списка всех доступных моделей с информацией о ценах. Не требует аутентификации.
Пример ответа
1GET /v1/models2
3{4 "object": "list",5 "data": [6 {7 "id": "gpt-4o",8 "object": "model",9 "owned_by": "openai",10 "pricing": {11 "prompt": "0.0025",12 "completion": "0.01"13 }14 },15 {16 "id": "claude-3-5-sonnet-20241022",17 "object": "model",18 "owned_by": "anthropic",19 "pricing": {20 "prompt": "0.003",21 "completion": "0.015"22 }23 }24 ]25}Коды ошибок
API использует стандартные HTTP статус-коды. В случае ошибки тело ответа содержит объект с полем error.
| Код | Статус | Описание |
|---|---|---|
| 400 | Bad Request | Некорректный запрос. Проверьте формат тела запроса и параметры. |
| 401 | Unauthorized | Отсутствует или неверный API ключ. Проверьте заголовок Authorization. |
| 403 | Forbidden | Доступ запрещён. Ключ деактивирован или недостаточно средств на балансе. |
| 404 | Not Found | Модель не найдена. Проверьте правильность идентификатора модели. |
| 429 | Rate Limited | Превышен лимит запросов. Подождите и повторите запрос. |
| 500 | Internal Error | Внутренняя ошибка сервера. Попробуйте повторить запрос позже. |
| 502 | Bad Gateway | Ошибка при обращении к провайдеру модели. Попробуйте другую модель или повторите позже. |
| 503 | Service Unavailable | Сервис временно недоступен. Обычно восстанавливается в течение нескольких минут. |