Матрица эндпоинтов
Base URL:
https://api.rout.my/v1| Endpoint | Method | Тело | Ответ | Примечания |
|---|---|---|---|---|
GET /models | GET | нет | OpenAI-style список моделей | Сначала вызови его и скопируй точный ID модели. |
POST /chat/completions | POST | model, messages, опционально stream, tools, vision content | Chat completion или SSE stream | Основной вариант для OpenAI-compatible клиентов. |
POST /responses | POST | model, input, опционально tools/stream-like поля | Responses-style объект или stream | Для клиентов, которые ожидают Responses API shape. |
POST /embeddings | POST | model, input, опционально encoding_format | Список embedding vectors | Для поиска, RAG, кластеризации и semantic matching. |
POST /systemone | POST | model, state, questions | answers, usage | Нативный TypeSafe: noul, choice, score, confidence и structured legend; без streaming. |
/typesafe/v1/systemone, /typesafe/v1/models | POST, GET | Native SDK prefix; inference/reseller key | System One response / {models: [...]} | SDK base URL: https://api.rout.my/typesafe. |
POST /images/generations | POST | model, prompt, опционально n, size, quality, image_config | data[].url или data[].b64_json | Генерация изображения по одному prompt. |
POST /images/edits | POST | model, prompt, images или multipart image, опциональные edit fields | data[].url или data[].b64_json | OpenAI-style редактирование изображений через OpenAI-compatible providers. |
POST /video/generations | POST | model, prompt, опциональные unified video fields (duration, resolution, audio, quality, media inputs) | Ответ генерации видео | rout.my мапит единые поля в provider-specific video options, если модель их поддерживает. |
GET https://api.rout.my/embed/image:{model} | GET | query params | Raw image bytes | Удобно для вставки generated images в страницы. Этот route находится вне /v1. |
POST /messages | POST | Anthropic-style messages body | Anthropic-compatible ответ | Для Anthropic-native клиентов. |
POST https://api.rout.my/compatible/v1beta/models/{model}:generateContent | POST | Gemini-style contents | Gemini-compatible ответ | Для Gemini-compatible клиентов. Этот route находится вне /v1; не добавляйте к нему Base URL выше. |
Compatibility Notes
- rout.my передает model-specific поля, если выбранный provider их поддерживает.
- Неизвестные поля могут игнорироваться или отклоняться в зависимости от endpoint family и provider behavior.
- Для browser tools держи ключ пользовательским. Не вшивай общий ключ в публичный frontend.
- Для retry используй exponential backoff на
429,500,502и503.
Запасные сбросы квоты
| Метод | Путь | Авторизация | Назначение |
|---|---|---|---|
| GET | /api/v1/user/quota-resets | User JWT | Свой запас сбросов, недельный лимит и auto_reset_enabled |
| PUT | /api/v1/user/quota-resets | User JWT | Сохранить {auto_reset_enabled: boolean}; по умолчанию false; ответ содержит сохранённый флаг |
| POST | /api/v1/user/quota-resets/use | User JWT | Вручную использовать один доступный сброс |
Включение настройки само по себе не расходует сброс. При остатке меньше 100 дневных токенов следующий запрос с расходом дневной квоты использует один доступный сброс и продолжится с восстановленным лимитом. Сначала расходуется еженедельный сброс, затем подаренные. Если запаса нет, остаётся обычная ошибка квоты. Бесплатные модели, Kimi fixed quota, reseller PAYG и trusted read-only не запускают автосброс. Настройка сохраняется при смене дня и недели.
Переводы дневных токенов
| Метод | Путь | Авторизация | Назначение |
|---|---|---|---|
| GET, POST | /api/v1/user/token-transfers | User JWT | Свои лимиты/история; отправка {recipient, amount, idempotency_key} |
| POST | /api/v1/user/token-transfers/preview | User JWT | Проверка {recipient, amount} и точного получателя |
| PATCH | /api/v1/user/token-transfers/preferences | User JWT | Настройка {receive_disabled} |
| GET, PUT | /api/v1/admin/token-transfers/policy | Admin, CSRF для PUT | Правила с проверкой текущей revision |
| GET | /api/v1/admin/token-transfers | Admin | Последние 100 операций, опциональный user_id |
Подарок восполняет потраченные токены в пределах существующей дневной квоты получателя до ближайших 00:00 UTC. Персональные и общие лимиты включают pending операции и не обновляются при сбросе квоты. Полученные токены нельзя пересылать дальше в тот же день. Ответ 202 означает незавершённую операцию: при проверке неизвестного результата сохраняйте тот же payload и idempotency key. Отправитель определяется сессией; inference API key не заменяет user JWT.