# Документация Elysium AI

Практическое руководство: от первого API-ключа до рабочего запроса, контроля расходов и обработки ошибок.

https://elysiumai.garden/docs

## Как проходит запрос

Ваше приложение обращается к одному API-адресу. Elysium AI проверяет ключ и баланс, отправляет запрос выбранной модели и возвращает ответ в OpenAI-совместимом формате.

1. Ваше приложение
2. Проверка ключа
3. Выбранная модель
4. Готовый ответ

```
POST /v1/chat/completions
Authorization: Bearer sk-...
Content-Type: application/json

{
  "model": "your-model-id",
  "messages": [
    {"role": "user", "content": "Привет!"}
  ]
}
```

```
HTTP/1.1 200 OK
Content-Type: application/json

{
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "Привет! Чем помочь?"
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 7,
    "total_tokens": 16
  }
}
```

## Что понадобится

- Аккаунт с положительным балансом.
- API-ключ из личного кабинета.
- ID модели из каталога, GET /v1/models или GET /v1/model-options.
- ElysiumAI Gateway: https://elysiumai.garden/v1.

- [Быстрый старт](https://elysiumai.garden/docs/quickstart): Первый запрос через curl, Python или JavaScript.
- [Авторизация](https://elysiumai.garden/docs/authentication): Как безопасно передавать и хранить API-ключ.
- [Модели](https://elysiumai.garden/docs/models): Как получить общие ID, варианты и розничные цены.
- [Баланс и стоимость](https://elysiumai.garden/docs/billing): Как считаются списания и где смотреть расходы.
- [Кэш контекста](https://elysiumai.garden/docs/cache): Наглядный расчёт cache read и cache write.
- [Подключение к IDE](https://elysiumai.garden/docs/integrations/code-and-ide): Cursor, Cline, Roo Code, Continue, Codex, Claude Code, JetBrains и другие — пошагово.
- [Интеграции](https://elysiumai.garden/docs/integrations/overview): Подключение SDK, агентов и готовых приложений.

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

## Главный адрес

Все запросы идут через ElysiumAI Gateway. Он OpenAI-совместим: в клиенте достаточно указать этот Base URL и API-ключ.

### ElysiumAI Gateway

```text
https://elysiumai.garden/v1
```

---

# Быстрый старт

Создайте ключ, выберите модель и получите первый ответ.

https://elysiumai.garden/docs/quickstart

## 1. Создайте API-ключ

Откройте раздел API-ключей в кабинете и создайте новый ключ. Скопируйте его сразу после создания и храните только на сервере или в переменной окружения.

- [Открыть API-ключи](https://elysiumai.garden/dashboard/api-keys): Создание, отключение и индивидуальный бюджет ключа.

## 2. Получите ID модели

GET /v1/models возвращает общие ID моделей для автоматического выбора — такой ID можно сразу передать в запросе. GET /v1/model-options показывает вызываемые варианты и розничные тарифы; передавайте полный id варианта, если хотите выбрать конкретный тариф. Для media-вариантов ответ содержит ставки в USD за единицу с параметрами операции; для точной оценки используйте POST /v1/media/quote. Режим dynamic означает, что фиксированной цены в каталоге нет.

### curl

```bash
curl https://elysiumai.garden/v1/models   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

## 3. Отправьте запрос

### curl

```bash
curl https://elysiumai.garden/v1/chat/completions   -H "Authorization: Bearer $ELYSIUM_API_KEY"   -H "Content-Type: application/json"   -d '{"model":"your-model-id","messages":[{"role":"user","content":"Привет!"}]}'
```

### Python

```python
from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["ELYSIUM_API_KEY"],
    base_url="https://elysiumai.garden/v1",
)

response = client.chat.completions.create(
    model="your-model-id",
    messages=[{"role": "user", "content": "Привет!"}],
)

print(response.choices[0].message.content)
```

### JavaScript

```javascript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.ELYSIUM_API_KEY,
  baseURL: "https://elysiumai.garden/v1",
});

const response = await client.chat.completions.create({
  model: "your-model-id",
  messages: [{ role: "user", content: "Привет!" }],
});

console.log(response.choices[0].message.content);
```

## 4. Прочитайте результат

Текст ответа находится в choices[0].message.content. Причина завершения — в finish_reason, а количество использованных токенов — в объекте usage.

1. JSON-запрос
2. Авторизация
3. Генерация
4. choices + usage

```
POST /v1/chat/completions
Authorization: Bearer sk-...
Content-Type: application/json

{
  "model": "your-model-id",
  "messages": [
    {"role": "user", "content": "Привет!"}
  ]
}
```

```
HTTP/1.1 200 OK
Content-Type: application/json

{
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "Привет! Чем помочь?"
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 7,
    "total_tokens": 16
  }
}
```

---

# Подключение к IDE

Пошаговые инструкции для Cursor, Cline, Roo Code, Kilo Code, Continue, Codex, Claude Code, Zed, JetBrains, OpenCode, Aider и других инструментов.

https://elysiumai.garden/docs/integrations/code-and-ide

## Три значения для любого инструмента

Почти любой редактор или агент подключается одинаково: адрес API, ключ и ID модели. Ниже — где их взять.

| Поле | Что указать |
| --- | --- |
| Base URL | https://elysiumai.garden/v1 |
| API-ключ | sk-… — создайте в Кабинете → API-ключи |
| Model ID | точный ID из каталога, например anthropic/claude-sonnet-5 |

> Base URL указывается без /chat/completions — клиент сам добавит нужный путь. Два исключения: Claude Code (адрес https://elysiumai.garden, без /v1) и Janitor AI (полный адрес https://elysiumai.garden/v1/chat/completions).

## Редакторы и расширения

- [Cursor](https://elysiumai.garden/docs/integrations/cursor): Через расширение Cline, Roo Code или Kilo Code внутри Cursor.
- [VS Code + Cline](https://elysiumai.garden/docs/integrations/cline): Провайдер OpenAI Compatible в настройках Cline.
- [Roo Code](https://elysiumai.garden/docs/integrations/roo-code): Провайдер OpenAI Compatible, нужна модель с tool calling.
- [Kilo Code](https://elysiumai.garden/docs/integrations/kilo-code): Custom provider во вкладке Providers.
- [Continue](https://elysiumai.garden/docs/integrations/continue): provider: openai и apiBase в config.yaml.
- [Zed](https://elysiumai.garden/docs/integrations/zed): OpenAI-compatible provider в настройках агента.
- [JetBrains](https://elysiumai.garden/docs/integrations/jetbrains): AI Assistant → Third-party AI providers → OpenAI-compatible.
- [Windsurf](https://elysiumai.garden/docs/integrations/windsurf): Встроенный Cascade не подключается — работает через расширение.
- [OAI Compatible Copilot](https://elysiumai.garden/docs/integrations/oai-compatible-copilot): Модели Elysium AI в окне Copilot Chat.

## Агенты в терминале

- [Codex CLI](https://elysiumai.garden/docs/integrations/codex): Свой провайдер в ~/.codex/config.toml, протокол Responses.
- [Claude Code](https://elysiumai.garden/docs/integrations/claude-code): Anthropic Messages: ANTHROPIC_BASE_URL и ключ.
- [OpenCode](https://elysiumai.garden/docs/integrations/opencode): Провайдер в opencode.json и выбор через /models.
- [Aider](https://elysiumai.garden/docs/integrations/aider): OPENAI_API_BASE и модель с префиксом openai/.
- [Qwen Code](https://elysiumai.garden/docs/integrations/qwen-code): modelProviders в ~/.qwen/settings.json.

## Чат-приложения

- [SillyTavern](https://elysiumai.garden/docs/integrations/sillytavern): Chat Completion → Custom (OpenAI-compatible).
- [Janitor AI](https://elysiumai.garden/docs/integrations/janitor-ai): Proxy с полным адресом /v1/chat/completions.

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Основная работа с кодом и агентом | anthropic/claude-sonnet-5 |
| Быстро и недорого | deepseek/deepseek-v4.1-flash |
| Сложные задачи и архитектура (дороже) | anthropic/claude-opus-5.5 |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## Безопасный первый запуск

- Создайте для инструмента отдельный API-ключ с небольшим бюджетом.
- Не храните ключ в файлах проекта, которые попадают в Git.
- Первый запрос отправьте в режиме без правок файлов: «Ответь одним словом: работает».
- Проверьте запрос в Кабинете → Analytics и только потом разрешайте агенту менять файлы.

## Соберите конфигурацию

Помощник подставит адрес и ID модели из каталога для выбранного клиента. Ключ сюда вводить не нужно.

[Соберите конфигурацию](https://elysiumai.garden/docs/integrations/code-and-ide#assistant)

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# Cursor

Подключите Elysium AI к Cursor через расширение Cline, Roo Code или Kilo Code.

https://elysiumai.garden/docs/integrations/cursor

## Как это работает

Встроенные модели Cursor (Agent и Tab) официально принимают только ключи OpenAI, Anthropic, Google, Azure и Bedrock. Поэтому Elysium AI подключается через расширение внутри Cursor: оно работает в своей панели, со своим выбором модели.

## 1. Установите расширение

- Откройте Cursor и панель Extensions: Ctrl+Shift+X (Windows, Linux) или Cmd+Shift+X (macOS).
- Найдите Cline и нажмите Install. Подойдут также Roo Code или Kilo Code — шаги почти такие же.

## 2. Откройте настройки

- Нажмите значок Cline на боковой панели.
- Нажмите шестерёнку ⚙️ и найдите список API Provider.

## 3. Заполните поля

| Поле | Значение |
| --- | --- |
| API Provider | OpenAI Compatible |
| Base URL | https://elysiumai.garden/v1 |
| API Key | ваш ключ sk-… из Кабинета → API-ключи |
| Model ID | anthropic/claude-sonnet-5 |

> Сохраните настройки. Ключ хранится в расширении, в файлы проекта он не попадает.

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Основная работа с кодом и агентом | anthropic/claude-sonnet-5 |
| Быстро и недорого | deepseek/deepseek-v4.1-flash |
| Сложные задачи и архитектура (дороже) | anthropic/claude-opus-5.5 |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## 4. Проверьте, что работает

- Переключите Cline в режим Plan, чтобы он не менял файлы.
- Отправьте «Ответь одним словом: работает». Пришёл ответ — подключение работает.
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| Модели Elysium AI нет в селекторе Cursor Agent | Так и задумано: модель доступна только в панели расширения. |
| Переключатель Override OpenAI Base URL в Cursor Settings → Models | Его нет в официальной документации Cursor. По отзывам он работает в основном в режиме Ask и может ломать встроенные модели. Надёжнее расширение. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. Base URL должен быть ровно https://elysiumai.garden/v1 — без /chat/completions на конце и без второго /v1. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Готовая конфигурация под вашу модель

Выберите модель из каталога — помощник подставит её ID и адрес. Ключ сюда вводить не нужно.

[Готовая конфигурация под вашу модель](https://elysiumai.garden/docs/integrations/cursor#assistant)

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# VS Code + Cline

Подключите Elysium AI к Cline через провайдер OpenAI Compatible.

https://elysiumai.garden/docs/integrations/cline

## 1. Установите

- Установите VS Code (code.visualstudio.com), если его ещё нет.
- Откройте Extensions (Ctrl+Shift+X или Cmd+Shift+X), найдите Cline и нажмите Install.

## 2. Откройте настройки

- Нажмите значок Cline на боковой панели.
- Нажмите шестерёнку ⚙️ и в API Provider выберите OpenAI Compatible.

## 3. Заполните поля

| Поле | Значение |
| --- | --- |
| API Provider | OpenAI Compatible |
| Base URL | https://elysiumai.garden/v1 |
| API Key | ваш ключ sk-… из Кабинета → API-ключи |
| Model ID | anthropic/claude-sonnet-5 |

> Блок Model Configuration можно не трогать. Если меняете: Context Window — не больше лимита модели из каталога; Image Support включайте только для моделей с изображениями; Input/Output Price влияют лишь на подсказку в Cline, а не на списание.

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Основная работа с кодом и агентом | anthropic/claude-sonnet-5 |
| Быстро и недорого | deepseek/deepseek-v4.1-flash |
| Сложные задачи и архитектура (дороже) | anthropic/claude-opus-5.5 |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## 4. Проверьте, что работает

- Переключите Cline в режим Plan, чтобы он не менял файлы.
- Отправьте «Ответь одним словом: работает». Пришёл ответ — подключение работает.
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| Cline отвечает текстом вместо действий или пишет об ошибке инструментов | Выберите модель с поддержкой tool calling, например anthropic/claude-sonnet-5. |
| Cline показывает стоимость $0 | Это локальная оценка из полей Input/Output Price. Реальное списание — в Кабинете → Analytics. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. Base URL должен быть ровно https://elysiumai.garden/v1 — без /chat/completions на конце и без второго /v1. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Готовая конфигурация под вашу модель

Выберите модель из каталога — помощник подставит её ID и адрес. Ключ сюда вводить не нужно.

[Готовая конфигурация под вашу модель](https://elysiumai.garden/docs/integrations/cline#assistant)

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# Roo Code

Подключите Elysium AI к Roo Code через провайдер OpenAI Compatible.

https://elysiumai.garden/docs/integrations/roo-code

## 1. Установите

- Откройте Extensions в VS Code (Ctrl+Shift+X или Cmd+Shift+X).
- Найдите Roo Code и нажмите Install.

## 2. Откройте настройки

- Нажмите значок Roo Code на боковой панели, затем значок настроек.
- В API Provider выберите OpenAI Compatible. Чтобы не менять другие подключения, сначала создайте отдельный профиль для Elysium AI.

## 3. Заполните поля

| Поле | Значение |
| --- | --- |
| API Provider | OpenAI Compatible |
| Base URL | https://elysiumai.garden/v1 |
| API Key | ваш ключ sk-… из Кабинета → API-ключи |
| Model | anthropic/claude-sonnet-5 |

> Roo Code работает только через нативный tool calling. Модель без поддержки инструментов не сможет читать файлы и выполнять команды.

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Основная работа с кодом и агентом | anthropic/claude-sonnet-5 |
| Быстро и недорого | deepseek/deepseek-v4.1-flash |
| Сложные задачи и архитектура (дороже) | anthropic/claude-opus-5.5 |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## 4. Проверьте, что работает

- Выберите режим Ask — в нём Roo Code не меняет файлы.
- Отправьте «Ответь одним словом: работает». Пришёл ответ — подключение работает.
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| Ошибка tool calling или модель не вызывает инструменты | Смените модель на anthropic/claude-sonnet-5. Повторный запуск и отключение проверок не помогут. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. Base URL должен быть ровно https://elysiumai.garden/v1 — без /chat/completions на конце и без второго /v1. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Готовая конфигурация под вашу модель

Выберите модель из каталога — помощник подставит её ID и адрес. Ключ сюда вводить не нужно.

[Готовая конфигурация под вашу модель](https://elysiumai.garden/docs/integrations/roo-code#assistant)

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# Kilo Code

Добавьте Elysium AI в Kilo Code как Custom provider.

https://elysiumai.garden/docs/integrations/kilo-code

## 1. Установите

- Откройте Extensions в VS Code (Ctrl+Shift+X или Cmd+Shift+X).
- Найдите Kilo Code и нажмите Install.

## 2. Откройте настройки

- Откройте Kilo Code, нажмите шестерёнку ⚙️ и перейдите на вкладку Providers.
- Прокрутите список вниз и нажмите Custom provider.

## 3. Заполните поля

| Поле | Значение |
| --- | --- |
| Provider ID | elysium |
| Display name | Elysium AI |
| Provider API | OpenAI Compatible |
| Base URL | https://elysiumai.garden/v1 |
| API key | ваш ключ sk-… из Кабинета → API-ключи |
| Models | нажмите Fetch models или добавьте вручную anthropic/claude-sonnet-5 |

> Нажмите Submit, затем выберите модель Elysium AI в окне чата.

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Основная работа с кодом и агентом | anthropic/claude-sonnet-5 |
| Быстро и недорого | deepseek/deepseek-v4.1-flash |
| Сложные задачи и архитектура (дороже) | anthropic/claude-opus-5.5 |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## 4. Проверьте, что работает

- Выберите режим Ask, чтобы Kilo Code не менял файлы.
- Отправьте «Ответь одним словом: работает». Пришёл ответ — подключение работает.
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| Fetch models не загрузил список | Проверьте ключ и Base URL. Модель можно добавить и вручную — по точному ID из каталога. |
| Ошибки после выбора OpenAI Responses или Anthropic Messages | Для обычной настройки используйте Provider API = OpenAI Compatible. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. Base URL должен быть ровно https://elysiumai.garden/v1 — без /chat/completions на конце и без второго /v1. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Готовая конфигурация под вашу модель

Выберите модель из каталога — помощник подставит её ID и адрес. Ключ сюда вводить не нужно.

[Готовая конфигурация под вашу модель](https://elysiumai.garden/docs/integrations/kilo-code#assistant)

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# Continue

Подключите Elysium AI к Continue в VS Code или JetBrains через config.yaml.

https://elysiumai.garden/docs/integrations/continue

## 1. Установите

- VS Code: Extensions → найдите Continue → Install.
- JetBrains: Settings → Plugins → Marketplace → Continue → Install.

## 2. Откройте config.yaml

- Откройте панель Continue, нажмите выпадающий список конфигураций справа над полем ввода и выберите значок шестерёнки — откроется локальный config.yaml.
- Файл лежит здесь: ~/.continue/config.yaml (macOS, Linux) или %USERPROFILE%\.continue\config.yaml (Windows).

## 3. Добавьте модели

Замените содержимое файла или добавьте модели в существующий список models. Вместо sk-... вставьте свой ключ.

| Поле | Значение |
| --- | --- |
| provider | openai |
| apiBase | https://elysiumai.garden/v1 |
| apiKey | ваш ключ sk-… из Кабинета → API-ключи |
| model | anthropic/claude-sonnet-5 |
| capabilities | tool_use — без него не работает режим Agent |

### config.yaml

```yaml
name: Elysium AI
version: 1.0.0
schema: v1
models:
  - name: Claude Sonnet 5 (Elysium)
    provider: openai
    model: anthropic/claude-sonnet-5
    apiBase: https://elysiumai.garden/v1
    apiKey: sk-...
    roles:
      - chat
      - edit
      - apply
    capabilities:
      - tool_use
  - name: DeepSeek V4.1 Flash (Elysium)
    provider: openai
    model: deepseek/deepseek-v4.1-flash
    apiBase: https://elysiumai.garden/v1
    apiKey: sk-...
    roles:
      - chat
      - edit
      - apply
    capabilities:
      - tool_use
```

> Автодополнение (роль autocomplete) не настраивайте: для него нужны специальные модели вроде Codestral или Qwen Coder, а обычные чат-модели дают плохие подсказки.

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Основная работа с кодом и агентом | anthropic/claude-sonnet-5 |
| Быстро и недорого | deepseek/deepseek-v4.1-flash |
| Сложные задачи и архитектура (дороже) | anthropic/claude-opus-5.5 |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## 4. Проверьте, что работает

- Сохраните config.yaml — Continue перечитает его сам.
- В панели Continue выберите «Claude Sonnet 5 (Elysium)» и отправьте «Ответь одним словом: работает».
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| Continue пишет об ошибке в конфигурации | Проверьте отступы: YAML чувствителен к пробелам. Скопируйте пример целиком и замените только ключ. |
| Режим Agent недоступен для модели | Добавьте модели capabilities: [tool_use], как в примере. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. Base URL должен быть ровно https://elysiumai.garden/v1 — без /chat/completions на конце и без второго /v1. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# Codex CLI

Подключите Elysium AI к OpenAI Codex CLI как свой model provider.

https://elysiumai.garden/docs/integrations/codex

## 1. Установите

Нужен Node.js 18 или новее. Выполните команду в терминале:

### Terminal

```bash
npm install -g @openai/codex
```

## 2. Сохраните ключ и откройте config.toml

Codex берёт ключ из переменной окружения. Настройки провайдера читаются только из пользовательского файла ~/.codex/config.toml (Windows: %USERPROFILE%\.codex\config.toml), а не из .codex в проекте.

### macOS / Linux

```bash
echo 'export ELYSIUM_API_KEY="sk-..."' >> ~/.zshrc
source ~/.zshrc
```

### Windows

```powershell
setx ELYSIUM_API_KEY "sk-..."
# Затем закройте и снова откройте терминал
```

> В Linux с bash используйте ~/.bashrc вместо ~/.zshrc.

## 3. Добавьте провайдера

| Поле | Значение |
| --- | --- |
| model | openai/gpt-6-sol |
| model_provider | elysium |
| base_url | https://elysiumai.garden/v1 |
| env_key | ELYSIUM_API_KEY |
| wire_api | responses |

### ~/.codex/config.toml

```toml
model = "openai/gpt-6-sol"
model_provider = "elysium"

[model_providers.elysium]
name = "Elysium AI"
base_url = "https://elysiumai.garden/v1"
env_key = "ELYSIUM_API_KEY"
wire_api = "responses"
```

> Не добавляйте /responses к base_url — Codex добавит путь сам.

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Основная работа с кодом | openai/gpt-6-sol |
| Быстро и недорого | openai/gpt-6-luna |
| Сложные задачи | openai/gpt-6-astra |

> Codex работает только с моделями, которые поддерживают Responses API — в каталоге https://elysiumai.garden/models у них указан формат Responses. ID актуальны на октябрь 2026.

## 4. Проверьте, что работает

- Откройте новый терминал, чтобы подхватилась переменная ELYSIUM_API_KEY.
- Выполните короткую проверку из блока ниже. Пришёл ответ — всё работает.
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

### Terminal

```bash
codex exec "Ответь одним словом: работает"
```

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| Codex просит войти в аккаунт ChatGPT | В config.toml не задан model_provider = "elysium" или переменная ELYSIUM_API_KEY не видна. Проверьте файл и откройте новый терминал. |
| Ошибка о неподдерживаемом формате или endpoint | Модель не поддерживает Responses. Выберите модель из таблицы выше. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. В base_url должно быть ровно https://elysiumai.garden/v1 — без /responses и без второго /v1. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# Claude Code

Подключите Claude Code к Anthropic-совместимому API Elysium AI.

https://elysiumai.garden/docs/integrations/claude-code

## Как это работает

Claude Code отправляет запросы в формате Anthropic Messages на /v1/messages. Elysium AI принимает этот формат, поэтому достаточно задать адрес и ключ. Адрес указывается без /v1: https://elysiumai.garden.

> Используйте модели Claude: Anthropic не поддерживает работу Claude Code с другими моделями через шлюзы.

## 1. Установите

Нужен Node.js 18 или новее. Выполните команду в терминале:

### Terminal

```bash
npm install -g @anthropic-ai/claude-code
```

## 2. Задайте переменные

| Переменная | Значение |
| --- | --- |
| ANTHROPIC_BASE_URL | https://elysiumai.garden |
| ANTHROPIC_AUTH_TOKEN | ваш ключ sk-… из Кабинета → API-ключи |
| ANTHROPIC_MODEL | anthropic/claude-sonnet-5 |
| ANTHROPIC_DEFAULT_SONNET_MODEL | anthropic/claude-sonnet-5 |
| ANTHROPIC_DEFAULT_OPUS_MODEL | anthropic/claude-opus-5.5 |
| ANTHROPIC_DEFAULT_HAIKU_MODEL | anthropic/claude-sonnet-5 — для фоновых задач |

### macOS / Linux

```bash
export ANTHROPIC_BASE_URL="https://elysiumai.garden"
export ANTHROPIC_AUTH_TOKEN="sk-..."
export ANTHROPIC_MODEL="anthropic/claude-sonnet-5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-5"
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-5.5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-sonnet-5"
claude
```

### PowerShell

```powershell
$env:ANTHROPIC_BASE_URL = "https://elysiumai.garden"
$env:ANTHROPIC_AUTH_TOKEN = "sk-..."
$env:ANTHROPIC_MODEL = "anthropic/claude-sonnet-5"
$env:ANTHROPIC_DEFAULT_SONNET_MODEL = "anthropic/claude-sonnet-5"
$env:ANTHROPIC_DEFAULT_OPUS_MODEL = "anthropic/claude-opus-5.5"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "anthropic/claude-sonnet-5"
claude
```

> Эти команды действуют только в текущем окне терминала. Для постоянной настройки используйте файл из следующего шага.

## 3. Постоянная настройка

Добавьте блок env в ~/.claude/settings.json (Windows: %USERPROFILE%\.claude\settings.json). Не кладите ключ в .claude/settings.json внутри проекта — этот файл попадает в Git.

### ~/.claude/settings.json

```json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://elysiumai.garden",
    "ANTHROPIC_AUTH_TOKEN": "sk-...",
    "ANTHROPIC_MODEL": "anthropic/claude-sonnet-5",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "anthropic/claude-sonnet-5",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "anthropic/claude-opus-5.5",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "anthropic/claude-sonnet-5"
  }
}
```

> Для расширения Claude Code в VS Code задайте те же переменные в пользовательских настройках VS Code, параметр claudeCode.environmentVariables.

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Основная работа с кодом | anthropic/claude-sonnet-5 |
| Сложные задачи (opus, дороже) | anthropic/claude-opus-5.5 |
| Фоновые задачи (haiku) | anthropic/claude-sonnet-5 |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## 4. Проверьте, что работает

- Сначала проверьте ключ без Claude Code — командой ниже. Ответ с "content" означает, что адрес и ключ верны.
- Запустите claude из того же терминала и выполните /status: строка Anthropic base URL должна показывать адрес Elysium AI, а строка Auth token — ANTHROPIC_AUTH_TOKEN.
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

### macOS / Linux

```bash
curl -sS "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"anthropic/claude-sonnet-5","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'
```

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| Claude Code показывает экран входа | Ключ не дошёл до Claude Code. Задайте ANTHROPIC_AUTH_TOKEN в этом же терминале или в ~/.claude/settings.json и запустите claude заново. |
| 400 · Extra inputs are not permitted или неизвестные поля | Добавьте переменную CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 — Claude Code перестанет отправлять экспериментальные поля. |
| Нужной модели нет в /model | Задайте её в ANTHROPIC_MODEL и ANTHROPIC_DEFAULT_*_MODEL, как в таблице выше. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. ANTHROPIC_BASE_URL должен быть ровно https://elysiumai.garden — без /v1 и без /v1/messages. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# Zed

Добавьте Elysium AI в Zed как OpenAI-compatible провайдера.

https://elysiumai.garden/docs/integrations/zed

## 1. Установите

- Скачайте Zed с zed.dev и откройте его.

## 2. Откройте настройки агента

- Откройте палитру команд (Ctrl+Shift+P или Cmd+Shift+P) и выполните agent: open settings.
- В разделе LLM Providers нажмите Add Provider и выберите OpenAI-compatible.

## 3. Заполните поля

| Поле | Значение |
| --- | --- |
| Provider name | elysium-ai |
| API URL | https://elysiumai.garden/v1 |
| Model ID | anthropic/claude-sonnet-5 |
| Context window | 128000 или лимит модели из каталога |
| API key | ваш ключ sk-… — вводите только в окне провайдера |

> Не пишите ключ в settings.json. Вместо окна провайдера можно задать переменную ELYSIUM_AI_API_KEY — её имя Zed строит из названия провайдера.

## Что появится в settings.json

Zed сохранит ключ в системной связке ключей, а в settings.json добавит такой блок. Его можно вставить и вручную.

### settings.json

```json
{
  "language_models": {
    "openai_compatible": {
      "elysium-ai": {
        "api_url": "https://elysiumai.garden/v1",
        "available_models": [
          {
            "name": "anthropic/claude-sonnet-5",
            "display_name": "Claude Sonnet 5 (Elysium)",
            "max_tokens": 128000,
            "capabilities": { "tools": true }
          }
        ]
      }
    }
  }
}
```

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Основная работа с кодом и агентом | anthropic/claude-sonnet-5 |
| Быстро и недорого | deepseek/deepseek-v4.1-flash |
| Сложные задачи и архитектура (дороже) | anthropic/claude-opus-5.5 |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## 4. Проверьте, что работает

- Откройте Agent Panel и выберите модель Claude Sonnet 5 (Elysium).
- Отправьте «Ответь одним словом: работает». Пришёл ответ — подключение работает.
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| Агент не читает файлы и не выполняет команды | Убедитесь, что у модели capabilities.tools = true и выбрана модель с tool calling. |
| Ошибка о превышении контекста | Уменьшите max_tokens до лимита модели из каталога. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. В api_url должно быть ровно https://elysiumai.garden/v1 — без /chat/completions и без второго /v1. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Готовая конфигурация под вашу модель

Выберите модель из каталога — помощник подставит её ID и адрес. Ключ сюда вводить не нужно.

[Готовая конфигурация под вашу модель](https://elysiumai.garden/docs/integrations/zed#assistant)

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# JetBrains AI Assistant

Подключите Elysium AI к AI Assistant в IntelliJ IDEA, PyCharm, WebStorm и других IDE JetBrains.

https://elysiumai.garden/docs/integrations/jetbrains

## 1. Установите

- Откройте Settings → Plugins → Marketplace, найдите AI Assistant и установите плагин.
- Подписка JetBrains AI для стороннего провайдера не обязательна, но без неё часть функций может быть недоступна.

## 2. Откройте настройки

- Откройте Settings → Tools → AI Assistant → Providers & API keys.
- В разделе Third-party AI providers выберите OpenAI-compatible.

## 3. Заполните поля

| Поле | Значение |
| --- | --- |
| URL | https://elysiumai.garden/v1 |
| API Key | ваш ключ sk-… из Кабинета → API-ключи |
| Tool calling | включите, если пользуетесь инструментами MCP |

> Нажмите Test Connection, затем Apply.

> Автодополнение кода и next edit suggestions продолжат работать на моделях JetBrains: обычные чат-модели для них не подходят.

## Какую модель выбрать

В том же окне настроек, в разделе Models Assignment, выберите модели для Core features и Instant helpers по таблице.

| Задача | Model ID |
| --- | --- |
| Core features: чат, генерация кода, коммиты | anthropic/claude-sonnet-5 |
| Instant helpers: заголовки, имена, контекст | deepseek/deepseek-v4.1-flash |
| Сложные задачи (дороже) | anthropic/claude-opus-5.5 |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## 4. Проверьте, что работает

- Откройте AI Chat, нажмите селектор моделей и выберите модель Elysium AI.
- Отправьте «Ответь одним словом: работает». Пришёл ответ — подключение работает.
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| Test Connection не проходит | Проверьте, что URL — ровно https://elysiumai.garden/v1, и что ключ вставлен целиком. |
| Какая-то функция AI Assistant недоступна | Её не поддерживает выбранная модель или она требует подписки JetBrains AI. Попробуйте другую модель в Models Assignment. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. Base URL должен быть ровно https://elysiumai.garden/v1 — без /chat/completions на конце и без второго /v1. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# Windsurf

Встроенный Cascade не подключается к стороннему API. Рабочий путь — расширение Cline или Roo Code внутри Windsurf.

https://elysiumai.garden/docs/integrations/windsurf

## Что поддерживается

В документации Windsurf нет настройки собственного адреса API для Cascade: собственный ключ можно указать только для отдельных провайдеров. Поэтому модели Elysium AI в Cascade не появятся.

> Windsurf основан на VS Code и поддерживает его расширения. Установите Cline или Roo Code — Elysium AI будет работать в панели расширения.

## 1. Установите расширение

- Откройте Extensions в Windsurf (Ctrl+Shift+X или Cmd+Shift+X).
- Найдите Cline или Roo Code и нажмите Install.

## 2. Откройте настройки

- Нажмите значок расширения на боковой панели, затем шестерёнку ⚙️, и в API Provider выберите OpenAI Compatible.

## 3. Заполните поля

| Поле | Значение |
| --- | --- |
| API Provider | OpenAI Compatible |
| Base URL | https://elysiumai.garden/v1 |
| API Key | ваш ключ sk-… из Кабинета → API-ключи |
| Model ID | anthropic/claude-sonnet-5 |

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Основная работа с кодом и агентом | anthropic/claude-sonnet-5 |
| Быстро и недорого | deepseek/deepseek-v4.1-flash |
| Сложные задачи и архитектура (дороже) | anthropic/claude-opus-5.5 |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## 4. Проверьте, что работает

- Выберите режим без правок файлов: Plan в Cline или Ask в Roo Code.
- Отправьте «Ответь одним словом: работает». Пришёл ответ — подключение работает.
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| Модели Elysium AI нет в Cascade | Так и должно быть: модель работает только в панели расширения. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. Base URL должен быть ровно https://elysiumai.garden/v1 — без /chat/completions на конце и без второго /v1. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# OpenCode

Добавьте Elysium AI в OpenCode как своего провайдера.

https://elysiumai.garden/docs/integrations/opencode

## 1. Установите

Нужен Node.js. Выполните команду в терминале:

### Terminal

```bash
npm install -g opencode-ai
```

## 2. Откройте opencode.json

Создайте opencode.json в корне проекта или используйте общий файл настроек для всех проектов:

- macOS / Linux: ~/.config/opencode/opencode.json
- Windows: C:\Users\<name>\.config\opencode\opencode.json

## 3. Укажите провайдера и ключ

Добавьте настройки ниже и вставьте свой API-ключ в provider.elysium.options.apiKey вместо sk-.... ID elysium используется в поле model перед ID модели.

| Поле | Значение |
| --- | --- |
| npm | @ai-sdk/openai-compatible |
| options.baseURL | https://elysiumai.garden/v1 |
| options.apiKey | ваш ключ sk-… из Кабинета → API-ключи |
| models | anthropic/claude-sonnet-5 |
| model | elysium/anthropic/claude-sonnet-5 |

### opencode.json

```json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "elysium": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Elysium AI",
      "options": {
        "baseURL": "https://elysiumai.garden/v1",
        "apiKey": "sk-..."
      },
      "models": {
        "anthropic/claude-sonnet-5": { "name": "Claude Sonnet 5" },
        "deepseek/deepseek-v4.1-flash": { "name": "DeepSeek V4.1 Flash" }
      }
    }
  },
  "model": "elysium/anthropic/claude-sonnet-5"
}
```

> Вместо ключа в файле можно указать "apiKey": "{env:ELYSIUM_API_KEY}" и задать ELYSIUM_API_KEY в окружении, из которого запускается OpenCode. Если переменная не задана, ключ будет пустым.

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Основная работа с кодом и агентом | anthropic/claude-sonnet-5 |
| Быстро и недорого | deepseek/deepseek-v4.1-flash |
| Сложные задачи и архитектура (дороже) | anthropic/claude-opus-5.5 |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## 4. Проверьте, что работает

- Перезапустите opencode, выполните /models и выберите модель Elysium AI.
- Отправьте «Ответь одним словом: работает». Пришёл ответ — подключение работает.
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| Модели нет в /models | Проверьте блок provider.elysium.models в opencode.json и префикс elysium/ в поле model. Перезапустите OpenCode. |
| 401, хотя ключ верный | Проверьте provider.elysium.options.apiKey. Если используете {env:ELYSIUM_API_KEY}, переменная должна быть задана в окружении OpenCode. |
| Custom providers are unavailable on this server | Добавление своего провайдера через /connect → Other сейчас недоступно в приложении OpenCode. Укажите провайдера и options.apiKey в opencode.json по примеру выше и перезапустите OpenCode. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. Base URL должен быть ровно https://elysiumai.garden/v1 — без /chat/completions на конце и без второго /v1. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Готовая конфигурация под вашу модель

Выберите модель из каталога — помощник подставит её ID и адрес. Ключ сюда вводить не нужно.

[Готовая конфигурация под вашу модель](https://elysiumai.garden/docs/integrations/opencode#assistant)

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# Aider

Подключите Elysium AI к Aider через OpenAI-совместимый адрес.

https://elysiumai.garden/docs/integrations/aider

## 1. Установите

Нужен Python. Выполните команды в терминале:

### Terminal

```bash
python -m pip install aider-install
aider-install
```

## 2. Задайте адрес и ключ

### macOS / Linux

```bash
export OPENAI_API_BASE="https://elysiumai.garden/v1"
export OPENAI_API_KEY="sk-..."
```

### Windows

```powershell
setx OPENAI_API_BASE "https://elysiumai.garden/v1"
setx OPENAI_API_KEY "sk-..."
# Затем закройте и снова откройте терминал
```

> Команды export действуют в текущем окне терминала. После setx в Windows откройте новый терминал.

## 3. Запустите с моделью

Перед ID модели добавьте префикс openai/ — так Aider поймёт, что запрос идёт на OpenAI-совместимый адрес. Слабая модель (--weak-model) пишет коммиты и сжимает историю.

| Параметр | Значение |
| --- | --- |
| OPENAI_API_BASE | https://elysiumai.garden/v1 |
| OPENAI_API_KEY | ваш ключ sk-… из Кабинета → API-ключи |
| --model | openai/anthropic/claude-sonnet-5 |
| --weak-model | openai/deepseek/deepseek-v4.1-flash |

### Terminal

```bash
cd /path/to/your/project
aider --model openai/anthropic/claude-sonnet-5 --weak-model openai/deepseek/deepseek-v4.1-flash
```

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Основная работа с кодом | openai/anthropic/claude-sonnet-5 |
| Быстро и недорого / --weak-model | openai/deepseek/deepseek-v4.1-flash |
| Сложные задачи (дороже) | openai/anthropic/claude-opus-5.5 |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## 4. Проверьте, что работает

- В окне Aider введите /ask Ответь одним словом: работает — команда /ask не меняет файлы.
- Пришёл ответ — подключение работает.
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| Unknown context window size and costs | Это предупреждение, а не ошибка: Aider не знает лимиты этой модели. Его можно скрыть флагом --no-show-model-warnings. |
| LLM Provider NOT provided или запрос ушёл не туда | Добавьте префикс openai/ перед ID модели. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. Base URL должен быть ровно https://elysiumai.garden/v1 — без /chat/completions на конце и без второго /v1. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# Qwen Code

Подключите Elysium AI к Qwen Code через modelProviders.

https://elysiumai.garden/docs/integrations/qwen-code

## 1. Установите

Нужен Node.js. Выполните команду в терминале:

### Terminal

```bash
npm install -g @qwen-code/qwen-code
```

## 2. Сохраните ключ

Qwen Code читает ключ из переменной окружения, имя которой указано в envKey.

### macOS / Linux

```bash
export ELYSIUM_API_KEY="sk-..."
```

### PowerShell

```powershell
$env:ELYSIUM_API_KEY = "sk-..."
```

## 3. Добавьте модель в ~/.qwen/settings.json

| Поле | Значение |
| --- | --- |
| protocol | openai |
| id | anthropic/claude-sonnet-5 |
| envKey | ELYSIUM_API_KEY |
| baseUrl | https://elysiumai.garden/v1 |

### ~/.qwen/settings.json

```json
{
  "modelProviders": {
    "openai": {
      "protocol": "openai",
      "models": [
        {
          "id": "anthropic/claude-sonnet-5",
          "name": "Claude Sonnet 5 (Elysium)",
          "envKey": "ELYSIUM_API_KEY",
          "baseUrl": "https://elysiumai.garden/v1"
        }
      ]
    }
  }
}
```

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Основная работа с кодом и агентом | anthropic/claude-sonnet-5 |
| Быстро и недорого | deepseek/deepseek-v4.1-flash |
| Сложные задачи и архитектура (дороже) | anthropic/claude-opus-5.5 |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## 4. Проверьте, что работает

- Перезапустите qwen, выполните /model и выберите добавленную модель.
- Отправьте «Ответь одним словом: работает». Пришёл ответ — подключение работает.
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| 401 сразу после запуска | Переменная ELYSIUM_API_KEY не задана в окне, где запущен qwen. Задайте её и перезапустите qwen. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. Base URL должен быть ровно https://elysiumai.garden/v1 — без /chat/completions на конце и без второго /v1. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Готовая конфигурация под вашу модель

Выберите модель из каталога — помощник подставит её ID и адрес. Ключ сюда вводить не нужно.

[Готовая конфигурация под вашу модель](https://elysiumai.garden/docs/integrations/qwen-code#assistant)

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# OAI Compatible Copilot

Добавьте модели Elysium AI в Copilot Chat через расширение OAI Compatible Copilot.

https://elysiumai.garden/docs/integrations/oai-compatible-copilot

## 1. Установите

- Откройте Extensions в VS Code, найдите OAI Compatible Copilot и нажмите Install.

> Это стороннее расширение, а не функция GitHub Copilot или Elysium AI. Проверьте издателя и используйте отдельный ключ с небольшим бюджетом.

## 2. Откройте настройки

- Откройте палитру команд и выполните OAICopilot: Open Configuration UI.

## 3. Заполните поля

| Поле | Значение |
| --- | --- |
| Provider ID | elysium |
| API mode | openai |
| Base URL | https://elysiumai.garden/v1 |
| API Key | ваш ключ sk-… из Кабинета → API-ключи |
| Model ID | anthropic/claude-sonnet-5 |

> Провайдера создайте в Provider Management, модель — в Model Management, выбрав провайдера elysium.

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Основная работа с кодом и агентом | anthropic/claude-sonnet-5 |
| Быстро и недорого | deepseek/deepseek-v4.1-flash |
| Сложные задачи и архитектура (дороже) | anthropic/claude-opus-5.5 |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## 4. Проверьте, что работает

- Откройте Copilot Chat → Manage Models и включите модель OAI Compatible.
- Выберите её и отправьте «Ответь одним словом: работает».
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| Модели нет в Copilot Chat | Включите её в Manage Models и проверьте, что у модели выбран провайдер elysium. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. Base URL должен быть ровно https://elysiumai.garden/v1 — без /chat/completions на конце и без второго /v1. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Готовая конфигурация под вашу модель

Выберите модель из каталога — помощник подставит её ID и адрес. Ключ сюда вводить не нужно.

[Готовая конфигурация под вашу модель](https://elysiumai.garden/docs/integrations/oai-compatible-copilot#assistant)

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# Авторизация и API-ключи

Как передавать ключ, ограничивать расходы и не раскрывать секрет приложению пользователя.

https://elysiumai.garden/docs/authentication

## Заголовок Authorization

Передавайте ключ в каждом API-запросе как Bearer token.

### HTTP header

```http
Authorization: Bearer sk-...
```

## Безопасное хранение

- Храните ключ в переменной окружения или менеджере секретов.
- Не добавляйте ключ в Git и клиентский JavaScript.
- Создавайте отдельный ключ для каждого приложения.
- Отключите ключ в кабинете сразу после возможной утечки.

> Запросы, выполненные с вашим ключом, считаются запросами вашего аккаунта. Используйте индивидуальный бюджет ключа, чтобы ограничить возможные расходы.

## Бюджет ключа

Для отдельного ключа можно включить максимальную сумму расходов. Когда лимит исчерпан, запросы этого ключа перестают выполняться, а остальные ключи аккаунта продолжают работать.

---

# Модели

Где брать актуальный model ID и как понять назначение модели.

https://elysiumai.garden/docs/models

## Актуальный список

GET /v1/models возвращает общие ID моделей для автоматического выбора — такой ID можно сразу передать в запросе. Чтобы увидеть вызываемые варианты и их розничные тарифы, используйте GET /v1/model-options. Передавайте полный id варианта без изменений в поле model, если нужен конкретный тариф. Для media-вариантов media_rates содержит ставки в USD за единицу с указанием операции, компонента и параметров. Применимые компоненты суммируются, а included показывает число единиц, включённых до применения ставки. Точную оценку даёт POST /v1/media/quote. Режим dynamic означает, что фиксированной цены в каталоге нет. Не копируйте ID из документации стороннего сервиса: название в каталоге Elysium AI может отличаться.

### GET /v1/models

```bash
curl https://elysiumai.garden/v1/models -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### GET /v1/model-options

```bash
curl https://elysiumai.garden/v1/model-options -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

## Как выбрать

| Задача | Что искать в каталоге |
| --- | --- |
| Диалог и генерация текста | Chat-модель |
| Поиск и RAG | Embedding-модель |
| Создание изображений | Image-модель |
| Распознавание аудио | Audio transcription |

> Карточка модели показывает доступные форматы и актуальные цены. Если формат не указан, не рассчитывайте на его поддержку.

## Уровни рассуждений

У моделей с поддержкой reasoning передавайте reasoning_effort только из списка на карточке модели. Каталог показывает реальные режимы модели, а совместимые значения клиентов шлюз при необходимости преобразует в ближайший режим.

| Семейство | Доступные значения reasoning_effort | Особенность |
| --- | --- | --- |
| GLM 5.x | high, max | По умолчанию max; отключение через enable_thinking=false |
| DeepSeek V4 | high, max | Два реальных уровня upstream |
| Kimi K3 | low, high, max | По умолчанию max |
| Qwen 3.6/3.7 | none, high | Шлюз преобразует их в enable_thinking=false/true |

> Automatic в LibreChat означает, что reasoning_effort не отправляется и действует значение модели или провайдера по умолчанию.

---

# Баланс и стоимость

Как формируется списание, где смотреть usage и как запросить остаток через API.

https://elysiumai.garden/docs/billing

## Из чего складывается цена

Для текстового запроса отдельно учитываются входные и выходные токены. Если модель возвращает данные о кэш-токенах, они рассчитываются по ценам cache read и cache write из каталога.

| Часть usage | Что означает |
| --- | --- |
| prompt_tokens | Полный вход в OpenAI-формате; может уже включать cache-токены |
| input_tokens | Обычный вход без cache в Anthropic-формате |
| completion_tokens | Сгенерированный ответ |
| cache_read_tokens | Токены, прочитанные из кэша |
| cache_write_tokens | Токены, записанные в кэш |

[Из чего складывается цена](https://elysiumai.garden/docs/billing#calculation)

## Проверка баланса через API

- [Служебные API](https://elysiumai.garden/docs/api/service): Баланс, бюджет ключа, история расходов и оценки без генерации.

### Запрос

```bash
curl https://elysiumai.garden/v1/balance   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### Ответ

```json
{
  "balance": 12.45,
  "total_spent": 7.55
}
```

> Баланс указывается в долларах. Для истории списаний используйте вкладку Analytics в личном кабинете.

## Где смотреть расход

- В ответе API — объект usage с количеством токенов.
- В кабинете — стоимость и история запросов.
- У каждого запроса есть request ID, который помогает найти точную запись в логах.

---

# NovelAI V4.5 и V5

Выбор точной модели, text-to-image и img2img с одной референсной картинкой.

https://elysiumai.garden/docs/novelai

## Как выбрать модель

В каталоге NovelAI показан четырьмя карточками: V4.5 Curated, V4.5 Full, V5 Curated и V5 Full. Внутри карточки выберите разрешение и 20, 24 или 28 шагов, затем скопируйте получившийся точный model ID.

| Часть ID | Значение |
| --- | --- |
| novelai/nai-diffusion-4-5-… | NovelAI V4.5 |
| novelai/nai-diffusion-5-… | NovelAI V5 |
| curated / full | Версия датасета |
| 1024x1024 | Разрешение |
| s20 / s24 / s28 | Количество шагов |

> Разрешение и шаги уже зашиты в model ID. Поле size не требуется и не меняет выбранный SKU.

## Text-to-image

Для обычной генерации используйте OpenAI-совместимый endpoint изображений. Ответ содержит изображение в data[0].b64_json.

### POST /v1/images/generations

```bash
curl https://elysiumai.garden/v1/images/generations   -H "Authorization: Bearer $ELYSIUM_API_KEY"   -H "Content-Type: application/json"   -d '{
    "model": "novelai/nai-diffusion-5-curated-1024x1024-s20",
    "prompt": "1girl, detailed eyes, cinematic light",
    "negative_prompt": "low quality, blurry"
  }'
```

## Img2img с референсом

Референс передаётся через Chat Completions как один content-part типа image_url. Поддерживаются публичный HTTPS URL и data URL. Текстовый part содержит промпт; negative_prompt можно передать на верхнем уровне запроса.

### POST /v1/chat/completions

```json
{
  "model": "novelai/nai-diffusion-5-full-1024x1024-s24",
  "stream": false,
  "negative_prompt": "low quality, blurry",
  "messages": [{
    "role": "user",
    "content": [
      {"type": "text", "text": "same character, night city, detailed illustration"},
      {"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}}
    ]
  }]
}
```

> NovelAI принимает ровно одну входную картинку. Запрос с двумя и более image_url будет отклонён до обращения к провайдеру.

## Форматы и ограничения

- POST /v1/images/generations — генерация только из текста.
- POST /v1/chat/completions — генерация из текста или img2img с одной картинкой.
- Референс нельзя передать через /v1/images/generations: используйте vision-формат Chat Completions.
- Публичный каталог и GET /v1/model-options показывают доступные варианты моделей. Для запроса используйте полный id нужного варианта.
- Цена указана за одно выходное изображение и зависит от выбранного варианта.

---

# Кэш контекста

Как повторное использование длинного контекста отражается в usage и стоимости запроса.

https://elysiumai.garden/docs/cache

## Кэш простыми словами

Представьте длинную инструкцию и документ, которые отправляются в каждом сообщении. В первом запросе повторяемая часть может быть записана в кэш. В следующем запросе тот же фрагмент читается из кэша, а новым входом остаётся только добавленное сообщение.

- Первый запрос: длинный общий контекст + вопрос.
- Повторный запрос: тот же контекст + новый вопрос.
- В usage появляются cache_write_tokens или cache_read_tokens.
- Каждая часть умножается на свою цену за 1 миллион токенов из карточки модели.

[Кэш простыми словами](https://elysiumai.garden/docs/cache#simple)

## Как повысить повторное использование

- Ставьте неизменные инструкции и большой документ в начало контекста.
- Не меняйте пробелы, порядок блоков и служебный текст в уже отправленном префиксе.
- Добавляйте новые сообщения после стабильной части.
- Проверяйте cache_read_tokens в usage и Analytics на повторных запросах.

## Формула списания

Сначала определяется обычный, отдельно не тарифицируемый вход. В OpenAI-формате cache-токены часто уже находятся внутри prompt_tokens, поэтому повторно прибавлять полный prompt_tokens нельзя. Elysium AI выполняет эту нормализацию автоматически.

### Formula

```text
uncached_input = prompt_tokens - cache_read_tokens - cache_write_tokens

cost =
  uncached_input      / 1 000 000 × input_price
+ cache_read_tokens  / 1 000 000 × cache_read_price
+ cache_write_tokens / 1 000 000 × cache_write_price
+ output_tokens      / 1 000 000 × output_price
```

> Все четыре цены задаются в долларах за 1 миллион токенов. Это абсолютные тарифы, а не множители x.

## Поля usage

| Поле | Расчёт |
| --- | --- |
| prompt_tokens | полный OpenAI-вход; перед ручным расчётом вычтите отдельно показанные cache-токены |
| input_tokens | для Anthropic обычно уже означает обычный вход без cache |
| completion_tokens | выход × output price |
| cache_read_tokens | чтение × cache read price |
| cache_write_tokens | запись × cache write price |

---

# Доступные API-маршруты

Основные маршруты, которые нужны для подключения приложения.

https://elysiumai.garden/docs/api/endpoints

## Основные маршруты

- [Служебные API](https://elysiumai.garden/docs/api/service): Параметры, ответы и лимиты вызовов без генерации.
- [Управление аккаунтом](https://elysiumai.garden/docs/api/account): Ключи, маршрутизация, логи и бонусы по API.

| Метод | Маршрут | Назначение |
| --- | --- | --- |
| GET | /v1/models | Общие ID моделей для автоматического выбора |
| GET | /v1/model-options | Доступные варианты моделей и розничные тарифы |
| POST | /v1/media/quote | Точная оценка цены медиа-запроса |
| GET | /v1/balance | Баланс аккаунта |
| POST | /v1/chat/completions | Диалог, tools и мультимодальный ввод |
| POST | /v1/responses | Responses-совместимый запрос |
| POST | /v1/systemone | System One: решения по state и questions |
| POST | /v1/embeddings | Векторные представления |
| POST | /v1/images/generations | Создание изображений |
| POST | /v1/images/edits | Редактирование изображений |
| POST | /v1/video/generations | Создание видео |
| POST | /v1/messages | Anthropic Messages |
| POST | /v1/messages/count_tokens | Локальная оценка токенов Anthropic |
| POST | /compatible/v1beta/models/{model}:generateContent | Gemini generateContent |
| GET | /embed/image:{model} | Готовое изображение как бинарный ответ |
| POST | /v1/audio/transcriptions | Распознавание речи |
| POST | /v1/audio/speech | Синтез речи |
| POST | /v1/rerank | Переранжирование документов |
| GET, PATCH, POST | /v1/account/* | Управление аккаунтом ключом с доступом к управлению |

> Доступность конкретного формата проверяйте в карточке выбранной модели.

---

# Служебные API

Баланс, бюджет ключа, каталог моделей, оценка стоимости и токенов, история расходов и получение медиа-задач.

https://elysiumai.garden/docs/api/service

## Когда использовать служебные API

Служебные вызовы помогают следить за балансом и отправлять уведомления о низком остатке, проверить бюджет перед пакетной обработкой, получить доступные модели и прочитать историю расходов. Они не запускают новую генерацию.

Во всех примерах используйте серверную переменную ELYSIUM_API_KEY со значением sk-… и заголовок Authorization: Bearer sk-…. Для JSON POST добавьте Content-Type: application/json. Пути /api/... идут от корня сайта, а не от Base URL с /v1.

Ниже показаны форматы ответов из обработчиков API; некоторые ответы сокращены до значимых полей. ID, суммы, тарифы и числа токенов в примерах иллюстративные: текущие значения берите из ответа.

> Просмотры, оценка токенов и quote бесплатны. Получение готовой медиа-задачи не оплачивается как отдельная генерация; сама ранее запущенная задача оплачивается при завершении. Проверка баланса не резервирует средства и не гарантирует бюджет следующего запроса.

## Оценка скрытого промпта провайдера

В обычных текстовых ответах Chat Completions, Responses, Anthropic Messages и Gemini generateContent заголовок X-Elysium-Provider-Prompt-Tokens содержит оценку дополнительных входных токенов: вход, сообщённый провайдером с учётом cache read/write, минус наш локальный подсчёт запроса. Заголовок появляется только для запроса без медиа, когда локальная оценка больше нуля, а разница строго больше 200 токенов и 30% сообщённого входа; иначе его нет.

В поддерживаемых OpenAI, Anthropic и Responses SSE-потоках перед data: [DONE], message_stop или response.completed приходит строка комментария : x-elysium-provider-prompt-tokens=<N>. SSE-парсеры игнорируют комментарии; JSON-схема ответа не меняется. Нативный Gemini SSE этот комментарий не передаёт.

В GET /api/log/token те же данные доступны внутри JSON-строки other: provider_prompt_overhead_tokens — оценка дополнительных токенов, estimated_prompt_tokens — наш подсчёт запроса. При разборе other используйте JSON.parse. Заголовок доступен браузерным клиентам через Access-Control-Expose-Headers.

### Response header / SSE comment

```text
X-Elysium-Provider-Prompt-Tokens: 600

: x-elysium-provider-prompt-tokens=600
```

> Это диагностическая оценка, а не доказательство добавленного system prompt: способы подсчёта токенов и обёртки провайдера могут отличаться. Отсутствие поля не доказывает отсутствие скрытого промпта. Оценка не меняет usage, тариф или списание.

## GET /v1/balance — баланс аккаунта

Authorization: Bearer sk-…. Параметров нет. Бесплатно; возвращает кошелёк владельца ключа, независимо от индивидуального бюджета ключа.

| Поле / параметр | Значение |
| --- | --- |
| balance | Остаток кошелька в USD |
| total_spent | Накопленный расход аккаунта в USD |

### curl

```bash
curl "https://elysiumai.garden/v1/balance"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON

```json
{
  "balance": 12.45,
  "total_spent": 7.55
}
```

> Применяются общий API-лимит и защита по IP для balance. Обычная авторизация отклоняет выключенные, истёкшие и исчерпанные ключи; бесплатность вызова не отменяет проверку ключа.

## GET /v1/models и /v1/models/{model} — модели

Authorization: Bearer sk-…. Список не требует параметров; для одной модели передайте её точный ID без / в пути. Для ID с / найдите запись в полном списке. Оба вызова бесплатны. Список учитывает доступ пользователя и ограничения ключа; общий ID семейства позволяет автоматический выбор варианта.

| Поле / параметр | Значение |
| --- | --- |
| data[].id / id | ID для поля model |
| created / owned_by | Время создания в Unix seconds и публичный владелец |
| supported_endpoint_types | Поддерживаемые форматы вызовов |
| reasoning_supported | Поддержка reasoning; supported_reasoning_efforts появляется, если известны режимы |
| is_available | Доступность в каталоге; не гарантия успешности конкретной операции |
| token_multiplier | Метаданные каталога, не денежный тариф; цены берите из model-options |

### curl

```bash
curl "https://elysiumai.garden/v1/models"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON

```json
{
  "success": true,
  "object": "list",
  "data": [
    {
      "id": "your-model-id",
      "object": "model",
      "created": 1626777600,
      "owned_by": "elysiumai",
      "supported_endpoint_types": [
        "openai"
      ],
      "reasoning_supported": false,
      "token_multiplier": 1,
      "is_available": true
    }
  ]
}
```

### curl: model

```bash
curl "https://elysiumai.garden/v1/models/$MODEL_ID"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON: model

```json
{
  "id": "your-model-id",
  "object": "model",
  "created": 1626777600,
  "owned_by": "elysiumai",
  "supported_endpoint_types": [
    "openai"
  ],
  "reasoning_supported": false,
  "token_multiplier": 1,
  "is_available": true
}
```

> Оба пути используют защиту models по IP. Для неизвестной модели одиночный GET может вернуть HTTP 200 с объектом error: проверяйте тело ответа.

## GET /v1/model-options — варианты и тарифы

Authorization: Bearer sk-…. Параметров нет, вызов бесплатный. Возвращает доступные для ключа варианты с розничными ценами; полный options[].id можно передать в поле model для выбора конкретного варианта.

| Поле / параметр | Значение |
| --- | --- |
| model_id / display_name | ID и название семейства |
| options[].id / label / pricing_mode | Вызываемый ID, название варианта и режим цены |
| input_price_per_m / output_price_per_m | USD за 1 млн входных / выходных токенов |
| cache_read_price_per_m / cache_write_price_per_m | USD за 1 млн cache read / write токенов; если настроены |
| request_price / request_prices | Цена запроса или цены по диапазонам длины; если применимо |
| image_output_price / video_*_price_per_second | USD за изображение или секунду видео; если применимо |
| media_rates | Ставки по operation, component, parameters, unit и usd; included — включённый объём |

### curl

```bash
curl "https://elysiumai.garden/v1/model-options"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON

```json
{
  "object": "list",
  "currency": "USD",
  "data": [
    {
      "model_id": "your-model-id",
      "display_name": "Example model",
      "options": [
        {
          "id": "your-model-option-id",
          "label": "Base",
          "pricing_mode": "tokens",
          "input_price_per_m": 1,
          "output_price_per_m": 2,
          "cache_read_price_per_m": 0.1,
          "cache_write_price_per_m": 1.25
        }
      ]
    }
  ]
}
```

> Использует ту же защиту и общее окно models по IP, что и /v1/models. Не все поля цен присутствуют у каждого варианта.

## POST /v1/media/quote — цена медиаоперации

Authorization: Bearer sk-… и Content-Type: application/json. Тело содержит model, operation, prompt и input с параметрами выбранной операции. Вызов бесплатный: задача не создаётся и баланс не списывается. JSON ограничен 1 MiB.

Используйте публичные HTTPS URL для входных файлов. Предварительный расчёт не загружает локальные файлы и не раскрывает ссылки на предыдущие task ID. Разрешение, длительность и другие поля input зависят от схемы модели.

| Поле / параметр | Значение |
| --- | --- |
| billing.version / currency | Версия тарифа и валюта USD |
| billing.model / operation | Модель и операция расчёта |
| billing.usd | Цена известного объёма; при pending это ещё не итог |
| billing.lines[] | unit, quantity, unit_usd и usd — единица, объём, ставка и сумма; parameters — условия ставки |
| billing.pending / lines[].pending | Для итога нужен ещё не измеренный результат |
| billing.quota | Внутренние денежные единицы; не количество токенов |
| input | Нормализованные параметры операции |

### curl

```bash
curl "https://elysiumai.garden/v1/media/quote"   -H "Authorization: Bearer $ELYSIUM_API_KEY"   -H "Content-Type: application/json"   -d '{"model":"openai/gpt-image-2","operation":"text-to-image","prompt":"A garden","input":{"resolution":"1K"}}'
```

### JSON

```json
{
  "object": "media.quote",
  "billing": {
    "version": "media-2026-09-09-v2",
    "model": "openai/gpt-image-2",
    "operation": "text-to-image",
    "currency": "USD",
    "usd": 0,
    "quota": 0,
    "lines": [
      {
        "unit": "output_image",
        "quantity": 0,
        "unit_usd": 0.048,
        "usd": 0,
        "pending": true,
        "parameters": {
          "resolution": "1K"
        }
      }
    ],
    "pending": true
  },
  "input": {
    "prompt": "A garden",
    "resolution": "1K"
  }
}
```

> Применяется critical-лимит по IP. Пример сокращён; тариф иллюстративный. pending=true и usd=0 не означают бесплатную генерацию.

## POST /v1/messages/count_tokens — оценка входа

Authorization: Bearer sk-… и Content-Type: application/json. Передайте Anthropic Messages JSON: обязательный model, сообщения messages, при необходимости system и tools. Бесплатный локальный расчёт: провайдер не вызывается.

| Поле / параметр | Значение |
| --- | --- |
| input_tokens | Оценка числа входных токенов; итоговый usage провайдера может отличаться |

### curl

```bash
curl "https://elysiumai.garden/v1/messages/count_tokens"   -H "Authorization: Bearer $ELYSIUM_API_KEY"   -H "Content-Type: application/json"   -d '{"model":"your-claude-model-id","messages":[{"role":"user","content":"Hello!"}]}'
```

### JSON

```json
{
  "input_tokens": 12
}
```

> Применяются RPM ключа, модели и пользователя, а также настроенные общие лимиты запросов. Алиасы: /anthropic/v1/messages/count_tokens и /v1/v1/messages/count_tokens. Можно использовать x-api-key: sk-… с anthropic-version: 2023-06-01.

## GET /api/usage/token/ — бюджет ключа

Authorization: Bearer sk-…. Параметров нет. Бесплатно; возвращает сведения только о переданном ключе. Read-only авторизация допускает существующий выключенный, истёкший или исчерпанный ключ, если аккаунт активен. Удалённый ключ не работает.

| Поле / параметр | Значение |
| --- | --- |
| code / message | Признак успешного ответа и сообщение |
| data.total_granted / total_used / total_available | Общий бюджет, расход и остаток ключа в quota, не USD и не токены |
| data.unlimited_quota | true: отдельный бюджет не ограничен; это не бесконечный баланс аккаунта |
| data.rpm_limit | Лимит ключа в запросах в минуту; 0 — отдельный лимит не задан |
| data.model_limits / model_limits_enabled | Карта разрешённых моделей и признак её применения |
| data.expires_at | Unix seconds; 0 — без срока |
| data.name / object | Название ключа и тип token_usage |

### curl

```bash
curl "https://elysiumai.garden/api/usage/token/"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON

```json
{
  "code": true,
  "message": "ok",
  "data": {
    "object": "token_usage",
    "name": "My app",
    "total_granted": 5000000,
    "total_used": 1000000,
    "total_available": 4000000,
    "unlimited_quota": false,
    "rpm_limit": 60,
    "model_limits": {},
    "model_limits_enabled": false,
    "expires_at": 0
  }
}
```

> Применяются общий API-лимит и critical-лимит по IP. Для денежных отчётов используйте amount_usd / net_usd в API истории ниже, а не считайте quota токенами.

## GET /api/usage/self/requests — история аккаунта

Authorization: Bearer sk-…. Бесплатно; история всего аккаунта, а не только текущего ключа. Необязательные start_timestamp и end_timestamp — Unix seconds, начало включительно, конец исключительно. По умолчанию последние 30 дней; период не более 90 дней, конец не далее чем на сутки в будущем.

| Поле / параметр | Значение |
| --- | --- |
| limit / cursor | limit: 1–100, по умолчанию 50. cursor: положительный ID; передайте next_cursor из предыдущей страницы |
| data.items[] | Списания и возвраты по убыванию ID |
| id / created_at / request_id / model | ID записи, время Unix seconds, ID запроса и модель |
| kind / amount_usd / quota | charge или refund; сумма в USD и quota. Возвраты отрицательные |
| prompt_tokens / completion_tokens / cache_read_tokens / cache_write_tokens | Счётчики входа, выхода, cache read и write |
| data.has_more / next_cursor | Есть ли следующая страница и её cursor; next_cursor отсутствует на последней |

### curl

```bash
curl "https://elysiumai.garden/api/usage/self/requests?limit=50"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON

```json
{
  "success": true,
  "message": "",
  "data": {
    "items": [
      {
        "id": 42,
        "created_at": 1791417600,
        "request_id": "example-request-id",
        "model": "your-model-id",
        "kind": "charge",
        "prompt_tokens": 100,
        "completion_tokens": 50,
        "cache_read_tokens": 0,
        "cache_write_tokens": 0,
        "quota": 500,
        "amount_usd": 0.001
      }
    ],
    "has_more": false
  }
}
```

> Применяются общий API-лимит и critical-лимит по IP. Исчерпанный ключ допускается; выключенный или истёкший — нет. Учитываются IP-ограничения ключа. Для этих двух API также поддерживается x-api-key: sk-….

## GET /api/usage/self/summary — расход за период

Authorization: Bearer sk-…. Бесплатно; история всего аккаунта, а не только текущего ключа. Необязательные start_timestamp и end_timestamp — Unix seconds, начало включительно, конец исключительно. По умолчанию последние 30 дней; период не более 90 дней, конец не далее чем на сутки в будущем.

| Поле / параметр | Значение |
| --- | --- |
| start_timestamp / end_timestamp | Фактические границы периода |
| requests | Число записей списания; возвраты не увеличивают счётчик |
| net_usd / net_quota | Расход за вычетом возвратов в USD и quota |
| by_model[] | Те же суммы и число запросов по model, плюс prompt_tokens и completion_tokens |

### curl

```bash
curl "https://elysiumai.garden/api/usage/self/summary"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON

```json
{
  "success": true,
  "message": "",
  "data": {
    "start_timestamp": 1788825600,
    "end_timestamp": 1791417600,
    "requests": 1,
    "net_quota": 500,
    "net_usd": 0.001,
    "by_model": [
      {
        "model": "your-model-id",
        "requests": 1,
        "prompt_tokens": 100,
        "completion_tokens": 50,
        "net_quota": 500,
        "net_usd": 0.001
      }
    ]
  }
}
```

> Применяются общий API-лимит и critical-лимит по IP. Исчерпанный ключ допускается; выключенный или истёкший — нет. Учитываются IP-ограничения ключа. Для этих двух API также поддерживается x-api-key: sk-….

## GET /api/log/token — последние записи ключа

Authorization: Bearer sk-…. Параметров нет, вызов бесплатный. Возвращает последние записи только данного ключа, без пагинации. Для новой интеграции с историей всего аккаунта удобнее /api/usage/self/requests.

| Поле / параметр | Значение |
| --- | --- |
| success / message / data | Признак успеха, сообщение и массив записей; [] — записей нет |
| data[].created_at / request_id / model_name | Время Unix seconds, ID запроса и модель |
| data[].type / quota | Тип записи и внутренние денежные единицы |
| data[].prompt_tokens / completion_tokens / use_time / is_stream | Вход, выход, время выполнения в секундах и потоковый режим |

### curl

```bash
curl "https://elysiumai.garden/api/log/token"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON

```json
{
  "success": true,
  "message": "",
  "data": []
}
```

> Применяются общий API-лимит и critical-лимит по IP. Доступ по существующему ключу такой же, как у /api/usage/token/. Лимит числа записей задаётся сервером.

## GET /v1/dashboard/billing/subscription — legacy-лимит

Authorization: Bearer sk-…. Параметров нет, вызов бесплатный. Алиас: /dashboard/billing/subscription. Формат совместимости старых OpenAI-клиентов; это не перечень подписок и не создание подписки.

| Поле / параметр | Значение |
| --- | --- |
| object / has_payment_method | Тип ответа и флаг совместимости; не подтверждение привязанной банковской карты |
| soft_limit_usd / hard_limit_usd / system_hard_limit_usd | Одинаковый общий объём: остаток + расход |
| access_until | Срок ключа в Unix seconds при статистике ключа; 0 — срок не указан |

### curl

```bash
curl "https://elysiumai.garden/v1/dashboard/billing/subscription"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON

```json
{
  "object": "billing_subscription",
  "has_payment_method": true,
  "soft_limit_usd": 20,
  "hard_limit_usd": 20,
  "system_hard_limit_usd": 20,
  "access_until": 0
}
```

> Применяется общий API-лимит. Сервер выбирает статистику аккаунта или ключа и формат USD / CNY / tokens; суффикс _usd не гарантирует USD при иной настройке. Для unlimited-ключа возвращается условный лимит 100000000. Для кошелька в USD используйте /v1/balance.

## GET /v1/dashboard/billing/usage — legacy-расход

Authorization: Bearer sk-…. Параметров нет, вызов бесплатный. Алиас: /dashboard/billing/usage. start_date и end_date не обрабатываются: возвращается весь накопленный расход.

| Поле / параметр | Значение |
| --- | --- |
| object | Тип list, несмотря на отсутствие списка записей |
| total_usage | При USD-настройке — центы: 755 означает $7.55. При другом формате — отображаемый расход ×100 |

### curl

```bash
curl "https://elysiumai.garden/v1/dashboard/billing/usage"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON

```json
{
  "object": "list",
  "total_usage": 755
}
```

> Применяется общий API-лимит. Как и subscription, использует статистику аккаунта или ключа по настройке сервера. Для отчёта за период в USD используйте /api/usage/self/summary.

## Статус медиа-задач и скачивание видео

Authorization: Bearer sk-…. Бесплатные GET для уже созданной задачи: /v1/videos/{task_id}, /v1/video/generations/{task_id}, /v1/audio/generations/{task_id} и /v1/videos/{task_id}/content. Единственный параметр — публичный task_id вашей задачи в пути.

Для видео /v1/videos/{task_id} возвращает OpenAI video JSON; /v1/video/generations/{task_id} — оболочку code/message/data с task_id, status, progress и result_url в data. Для аудио возвращаются object=audio.generation, id, task_id, model, status, created_at и tracks; у готового трека есть id и url, иногда duration. Ошибки аудио находятся в error, расчёт — в billing.

content возвращает бинарный файл готового видео, а не JSON. Сохраняйте его через curl -o. Сам GET не создаёт новую платную задачу; оплата исходной генерации происходит при её завершении. Проверяйте статус раз в 3–5 секунд, останавливайтесь на completed / failed.

- [Видео](https://elysiumai.garden/docs/api/video): Формат задач и получение готового результата.
- [Аудио и музыка](https://elysiumai.garden/docs/api/audio): Статусы, треки и параметры операций.

### curl

```bash
curl "https://elysiumai.garden/v1/videos/$TASK_ID"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON: video

```json
{
  "id": "task_public_id",
  "object": "video",
  "status": "completed",
  "metadata": {
    "url": "https://elysiumai.garden/v1/media/opaque-token"
  }
}
```

### curl: task

```bash
curl "https://elysiumai.garden/v1/video/generations/$TASK_ID"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON: task

```json
{
  "code": "success",
  "message": "",
  "data": {
    "task_id": "task_public_id",
    "status": "SUCCESS",
    "progress": "100%",
    "result_url": "https://elysiumai.garden/v1/media/opaque-token"
  }
}
```

### curl: audio

```bash
curl "https://elysiumai.garden/v1/audio/generations/$TASK_ID"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON: audio

```json
{
  "id": "task_public_id",
  "task_id": "task_public_id",
  "object": "audio.generation",
  "model": "your-audio-model-id",
  "status": "processing",
  "created_at": 1791417600,
  "tracks": []
}
```

### curl: download

```bash
curl "https://elysiumai.garden/v1/videos/$TASK_ID/content"   -H "Authorization: Bearer $ELYSIUM_API_KEY"   -o video.mp4
```

> Аудио GET использует лимиты ключа, модели и пользователя. Видео GET и content не подключают этот RPM middleware, но требуют авторизацию и проверяют владельца задачи. Формат результата зависит от модели; готовая медиа-ссылка временная.

## Каталог для Anthropic и Gemini

Authorization: Bearer sk-…. Все перечисленные GET бесплатны. Параметров у списков нет, {model} — точный ID без / в пути. Для ID с / используйте полный список. Anthropic: /anthropic/v1/models и /anthropic/v1/models/{model}; также GET /v1/models с x-api-key: sk-… и anthropic-version: 2023-06-01 возвращает Anthropic-список.

Gemini-список: /v1beta/models и /compatible/v1beta/models. Ответ содержит models и nextPageToken; name / baseModelId — ID модели, supportedGenerationMethods — поддерживаемые методы. /compatible/v1beta/models/{model} возвращает одиночный OpenAI model JSON из раздела выше.

OpenAI-формат списка также доступен по /v1beta/openai/models, /compatible/v1beta/openai/models, /compatible/v1/models и /compatible/models. Формат ответа такой же, как у /v1/models.

### curl: Anthropic

```bash
curl "https://elysiumai.garden/anthropic/v1/models"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON: Anthropic

```json
{
  "data": [
    {
      "id": "your-model-id",
      "type": "model",
      "display_name": "your-model-id",
      "created_at": "2021-07-20T10:40:00Z"
    }
  ],
  "has_more": false,
  "first_id": "your-model-id",
  "last_id": "your-model-id"
}
```

### curl: Anthropic model

```bash
curl "https://elysiumai.garden/anthropic/v1/models/$MODEL_ID"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON: Anthropic model

```json
{
  "id": "your-model-id",
  "type": "model",
  "display_name": "your-model-id",
  "created_at": "2021-07-20T10:40:00Z"
}
```

### curl: Gemini

```bash
curl "https://elysiumai.garden/compatible/v1beta/models"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON: Gemini

```json
{
  "models": [
    {
      "name": "your-model-id",
      "baseModelId": "your-model-id",
      "displayName": "your-model-id",
      "supportedGenerationMethods": [
        "generateContent",
        "streamGenerateContent"
      ]
    }
  ],
  "nextPageToken": null
}
```

### curl: Gemini model

```bash
curl "https://elysiumai.garden/compatible/v1beta/models/$MODEL_ID"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### curl: Gemini alias

```bash
curl "https://elysiumai.garden/v1beta/models"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### curl: OpenAI alias

```bash
curl "https://elysiumai.garden/v1beta/openai/models"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### curl: OpenAI alias

```bash
curl "https://elysiumai.garden/compatible/v1beta/openai/models"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### curl: OpenAI alias

```bash
curl "https://elysiumai.garden/compatible/v1/models"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### curl: OpenAI alias

```bash
curl "https://elysiumai.garden/compatible/models"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

> У Anthropic применяются лимиты ключа, модели и пользователя. У перечисленных Gemini/OpenAI-алиасов нет middleware защиты models по IP и нет ModelRequestRateLimit; обычная проверка ключа остаётся. В Anthropic has_more=false, first_id/last_id отсутствуют у пустого списка.

## Совместимое чтение задач Suno и Midjourney

Authorization: Bearer sk-…. Вызовы читают только задачи владельца ключа, не запускают генерацию и не списывают баланс. Они полезны для существующих интеграций; наличие пути не означает доступность модели для новой генерации.

GET /suno/fetch/{id} принимает ID задачи в пути и возвращает code=success, message и data с task_id, status, progress. POST /suno/fetch принимает JSON {"ids":["task-id"]}; data — массив таких задач, [] при пустом ids. Поле action принимается, но не фильтрует ответ.

GET /mj/task/{id}/fetch возвращает объект задачи: id, status, progress, imageUrl, failReason и другие поля Midjourney. POST /mj/task/list-by-condition принимает JSON {"ids":["task-id"]} и возвращает массив таких объектов; пустой ids даёт []. GET /mj/task/{id}/image-seed возвращает code, description, properties и result с seed; для него нужен доступный канал исходной задачи. Поддерживаются те же пути с префиксом /{mode}/mj.

### curl

```bash
curl "https://elysiumai.garden/suno/fetch/$TASK_ID"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON: Suno

```json
{
  "code": "success",
  "message": "",
  "data": {
    "task_id": "task_public_id",
    "status": "SUCCESS",
    "progress": "100%"
  }
}
```

### curl

```bash
curl "https://elysiumai.garden/suno/fetch"   -H "Authorization: Bearer $ELYSIUM_API_KEY"   -H "Content-Type: application/json"   -d '{"ids":[]}'
```

### JSON: Suno batch

```json
{
  "code": "success",
  "message": "",
  "data": []
}
```

### curl

```bash
curl "https://elysiumai.garden/mj/task/$TASK_ID/fetch"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON: Midjourney

```json
{
  "id": "task_public_id",
  "status": "SUCCESS",
  "progress": "100%",
  "imageUrl": "https://elysiumai.garden/mj/image/task_public_id",
  "failReason": ""
}
```

### curl

```bash
curl "https://elysiumai.garden/mj/task/list-by-condition"   -H "Authorization: Bearer $ELYSIUM_API_KEY"   -H "Content-Type: application/json"   -d '{"ids":[]}'
```

### JSON: Midjourney batch

```json
[]
```

### curl

```bash
curl "https://elysiumai.garden/mj/task/$TASK_ID/image-seed"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON: seed

```json
{
  "code": 1,
  "description": "success",
  "properties": null,
  "result": "123456"
}
```

> Эти пути используют обычную проверку ключа и SystemPerformanceCheck, без ModelRequestRateLimit. Для JSON POST нужен Content-Type: application/json. Задачи и их результаты могут быть недоступны после удаления либо отключения исходной конфигурации.

## Лимиты и ошибки служебных вызовов

Лимиты настраиваются сервером: не фиксируйте в клиенте число запросов из примера. /v1/models, одиночная модель и /v1/model-options делят окно models по IP; /v1/balance имеет отдельное окно balance. Превышение любого из этих окон может временно заблокировать IP на обоих endpoint.

Для защищённых моделей и баланса смотрите X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset (Unix seconds). При блокировке ответ 429 содержит Retry-After в секундах; администратор может закрыть endpoint с ответом 503. Общий API-лимит и critical-лимит тоже считаются по IP, когда включены.

Кэшируйте каталог, ограничивайте частоту мониторинга и повторяйте 429 с задержкой. При 401 проверьте ключ; при 403 — доступ и IP-ограничения. Бесплатность служебного вызова не отменяет авторизацию и лимиты.

---

# Управление аккаунтом через API

Баланс, расход, логи, ключи, маршрутизация, бонусы и уведомления по API-ключу с доступом к управлению аккаунтом.

https://elysiumai.garden/docs/api/account

## Что это такое

Ключ с доступом к управлению аккаунтом может через API почти всё, что доступно в личном кабинете: смотреть баланс, расход и логи, создавать и настраивать ключи, менять режим маршрутизации, получать бонусы и читать уведомления. Это удобно для скриптов, панелей мониторинга и агентов, которым нужно управлять аккаунтом без браузера.

Через API недоступны пополнение баланса и всё, что относится к защите аккаунта: пароль, email, двухфакторная защита и входы в аккаунт. Эти действия остаются на сайте.

Все маршруты находятся под /v1/account на том же Base URL, что и запросы к моделям, и используют тот же заголовок Authorization: Bearer sk-….

## Уровни доступа ключа

Уровень задаётся для каждого ключа отдельно. Обычно доступ выключен: существующие ключи и новые ключи без явной настройки не могут обращаться к /v1/account.

- Включить доступ можно в кабинете: API-ключи → создать или изменить ключ → «Доступ к управлению аккаунтом». Изменение действует со следующего запроса.
- Ключ не может выдать уровень выше собственного ни другому ключу, ни самому себе: такая попытка вернёт 403 account_api_escalation.
- Удалить ключ, которым вы подписали запрос, можно только с параметром ?confirm_self=true.
- Изменение, которое закроет ключу его собственный доступ (отключение, срок действия, понижение уровня или IP-фильтр без вашего текущего адреса), требует "confirm_self_lockout": true. Без него вернётся 409 self_lockout_requires_confirmation.
- Отключённые и истёкшие ключи, а также запросы с адреса вне IP-фильтра ключа отклоняются. Ключ с исчерпанным бюджетом сохраняет доступ к управлению аккаунтом.

| Уровень | Значение account_api | Что разрешено |
| --- | --- | --- |
| Нет (по умолчанию) | none | Ничего из /v1/account. Обычные запросы к моделям работают как раньше. |
| Чтение | read | Все GET-маршруты: аккаунт, расход, логи, ключи, настройки, цены, бонусы, уведомления, рефералы, платежи. |
| Управление | manage | Всё из чтения и изменения: ключи, маршрутизация, бонусы, уведомления, перевод реферальных, промокоды. |

> Ключ с уровнем «Управление» может создавать и удалять другие ключи и менять настройки аккаунта. Храните его как пароль, выдавайте минимально нужный уровень и по возможности ограничьте IP-фильтром.

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

В примерах используется серверная переменная ELYSIUM_API_KEY со значением sk-…. Ответы сокращены, значения иллюстративные. Метки времени передаются в секундах Unix, суммы в USD.

### curl · GET /v1/account

```bash
curl https://elysiumai.garden/v1/account \
  -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### JSON · GET /v1/account

```json
{
  "object": "account",
  "data": {
    "id": 101,
    "username": "example",
    "display_name": "Example",
    "group": "default",
    "created_at": 1780000000,
    "quota_per_usd": 500000,
    "balance": {
      "usd": 5.0,
      "used_usd": 1.0,
      "request_count": 42
    },
    "key": { "id": 7, "name": "my-key", "account_api": "manage" }
  }
}
```

### curl · PATCH /v1/account/routing

```bash
curl -X PATCH https://elysiumai.garden/v1/account/routing \
  -H "Authorization: Bearer $ELYSIUM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"routing_mode_default":"standard","routing_mode_overrides":{"your-model-id":"fastest"},"billing_preference":"wallet_first"}'
```

### curl · POST /v1/account/keys

```bash
curl -X POST https://elysiumai.garden/v1/account/keys \
  -H "Authorization: Bearer $ELYSIUM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"ci-key","rpm_limit":60,"account_api":"none"}'
```

### JSON · POST /v1/account/keys

```json
{
  "object": "account.key",
  "data": {
    "id": 8,
    "name": "ci-key",
    "key": "sk-abcd**********wxyz",
    "status": "enabled",
    "rpm_limit": 60,
    "account_api": "none",
    "secret": "sk-..."
  }
}
```

> Полный секрет нового ключа возвращается один раз, в ответе на создание (HTTP 201). Дальше ключи в API всегда маскируются.

## Аккаунт, баланс, расход и логи

| Метод | Маршрут | Доступ | Что делает |
| --- | --- | --- | --- |
| GET | /v1/account | read | Профиль, группа, баланс, расход, число запросов и уровень текущего ключа. |
| GET | /v1/account/usage | read | Запросы, токены и списания за период с разбивкой по моделям. Параметры start_timestamp и end_timestamp; по умолчанию 30 дней, максимум 90. |
| GET | /v1/account/logs | read | Ваши логи с фильтрами type, model_name, token_name, request_id и периодом; постраничный вывод p и page_size (до 100). |
| GET | /v1/account/logs/{request_id} | read | Записи одного запроса или 404. |

> Email, привязки входа и внутренние служебные поля в ответы не попадают. В логах показывается то, что получил ваш клиент.

## API-ключи

| Метод | Маршрут | Доступ | Что делает |
| --- | --- | --- | --- |
| GET | /v1/account/keys | read | Список ключей (p, page_size). Секреты всегда замаскированы. |
| GET | /v1/account/keys/{id} | read | Один ключ. |
| POST | /v1/account/keys | manage | Создать ключ. Обязательно только name; необязательные поля: expires_at, unlimited_quota, remain_quota, rpm_limit, model_limits_enabled, model_limits, allow_ips, group, cross_group_retry, account_api. |
| PATCH | /v1/account/keys/{id} | manage | Изменить только переданные поля, включая status: enabled или disabled. |
| DELETE | /v1/account/keys/{id} | manage | Удалить ключ. Для ключа, которым подписан запрос, нужен ?confirm_self=true. |

> Настройки ключа проверяются так же, как в кабинете: длина названия, RPM, бюджет, списки моделей и IP, доступная группа. Если account_api не указан при создании, ключ получает уровень по умолчанию для вашего аккаунта, обычно none.

## Настройки маршрутизации

- routing_mode_default — режим маршрутизации по умолчанию; допустимые значения возвращает available_modes.
- routing_mode_overrides — режимы для отдельных моделей. Поле заменяет все переопределения целиком, максимум 100.
- family_orders — порядок вариантов внутри семейства модели. Объединяется по семействам: пустой список снимает порядок семейства, остальные сохранённые порядки не меняются. Допустимы только включённые варианты этого семейства из GET /v1/account/models.
- Сохранённый порядок строгий: пробуются только перечисленные варианты и именно в этом порядке. Семейства без порядка используют порядок сайта.
- direct_family_fallback_enabled — при прямом обращении к варианту, который недоступен, разрешить переход к другим вариантам того же семейства.
- billing_preference — wallet_only (списывать только с баланса) или wallet_first (сначала с баланса, при нехватке из подписки).

| Метод | Маршрут | Доступ | Что делает |
| --- | --- | --- | --- |
| GET | /v1/account/routing | read | Текущие настройки и допустимые значения: available_modes и available_billing_preferences. |
| PATCH | /v1/account/routing | manage | Меняет переданные поля, остальные сохраняют значения. |

## Модели и ваши цены

| Метод | Маршрут | Доступ | Что делает |
| --- | --- | --- | --- |
| GET | /v1/account/models | read | Те же семейства и варианты, что в GET /v1/model-options, но для всего аккаунта, а не только для моделей текущего ключа. |

> Цены уже включают все ваши скидки: личные, бонусные и общие акции. Поля original_* показывают цену без скидки, а discounts — список применённых скидок с процентом и сроком.

## Бонусы

| Метод | Маршрут | Доступ | Что делает |
| --- | --- | --- | --- |
| GET | /v1/account/bonuses | read | Состояние розыгрыша скидки, личные и общие скидки, бонус новичка: группы, оставшиеся дни и окна. |
| POST | /v1/account/bonuses/discount-roll | manage | Розыгрыш личной скидки на сегодня, условия как в кабинете. Ошибки: already_claimed (409), not_eligible (403), pool_empty (503). |
| POST | /v1/account/bonuses/newbie/allocate | manage | Распределить дни бонуса новичка по группам: массив allocations из объектов group и days. Ошибки: invalid_allocation (400), not_eligible (403), not_enough_days (409), disabled (503). |

> Ежедневный бонус, бонус за Telegram и бонус за пополнение остаются на сайте.

## Уведомления, рефералы, платежи и промокоды

| Метод | Маршрут | Доступ | Что делает |
| --- | --- | --- | --- |
| GET | /v1/account/notifications | read | Уведомления аккаунта (limit, before_id), unread_count и has_more. Картинки не передаются: флаг has_image сообщает, что сайт её показывает. |
| POST | /v1/account/notifications/read | manage | Отметить прочитанным: {"id": 12} или {"all": true}. |
| GET | /v1/account/referral | read | Реферальный код и ссылка, счётчики, доступные и заработанные USD, список наград. |
| POST | /v1/account/referral/transfer | manage | Перевести реферальный заработок на основной баланс: {"amount_usd": "3.30"} или {"all": true}. Ошибки: invalid_amount, below_minimum, insufficient_referral_balance, transfer_failed. |
| GET | /v1/account/topups | read | История пополнений и начислений: статус, тип, сумма, даты. Только чтение (p, page_size). |
| GET | /v1/account/subscriptions | read | Ваши подписки: план, статус, объём и использование, даты периода, а также billing_preference. |
| POST | /v1/account/promo-codes/redeem | manage | Активировать промокод: {"code": "..."}. Те же проверки, что на сайте; ответ содержит amount_usd и new_balance_usd. |

> Создание платежей и покупка подписок остаются на сайте: через API можно только читать историю.

## Лимиты запросов

| Вызовы | Лимит |
| --- | --- |
| Чтение (GET) | 120 в минуту на аккаунт |
| Изменения (POST, PATCH, DELETE) | 30 в минуту на аккаунт |
| Промокоды, перевод реферальных, бонусные действия | Дополнительно действует ограничение по IP, как на сайте |

> Лимиты общие для всех ключей аккаунта. При превышении вернётся HTTP 429 с кодом rate_limited: подождите до следующей минуты и повторите запрос.

## Формат ответов и ошибки

Успешный ответ — HTTP 200 (201 при создании ключа) и JSON вида {"object": "...", "data": ...}. Суммы указаны в USD (поля *_usd). Поля quota — внутренние единицы баланса, а quota_per_usd из GET /v1/account переводит их в доллары.

Ошибка возвращается с HTTP-статусом и телом {"error": {"code": "...", "message": "..."}}. Ориентируйтесь на code: текст сообщения может меняться.

| HTTP | code | Когда возникает |
| --- | --- | --- |
| 401 | invalid_api_key | Ключ не передан, неизвестен, отключён или истёк |
| 403 | account_api_disabled | У ключа уровень «Нет» |
| 403 | account_api_read_only | Ключ с уровнем «Чтение» вызвал изменяющий маршрут |
| 403 | account_api_escalation | Запрошен уровень выше уровня вызывающего ключа |
| 403 | ip_not_allowed, account_disabled | Адрес вне IP-фильтра ключа или аккаунт отключён |
| 404 | not_found | Неизвестный id или объект другого аккаунта |
| 409 | self_lockout_requires_confirmation, self_delete_requires_confirmation | Действие закроет доступ самого ключа: добавьте confirm_self_lockout или confirm_self |
| 409 | key_limit_reached, key_expired, key_exhausted | Достигнут лимит ключей либо ключ истёк или исчерпан и не может быть включён |
| 400 | invalid_request, invalid_group, invalid_routing_mode, invalid_routing_override, invalid_family_order, invalid_billing_preference, invalid_period | Ошибка проверки переданных данных |
| 429 | rate_limited | Превышен лимит запросов |
| 500 | unavailable | Временная ошибка, повторите позже |

### JSON · error

```json
{
  "error": {
    "code": "account_api_read_only",
    "message": "..."
  }
}
```

---

# Chat Completions

Основной формат для диалогов и генерации текста.

https://elysiumai.garden/docs/api/chat-completions

## Тело запроса

### JSON

```json
{
  "model": "your-model-id",
  "messages": [
    {"role": "system", "content": "Отвечай кратко."},
    {"role": "user", "content": "Что такое API?"}
  ],
  "temperature": 0.4,
  "max_tokens": 300,
  "stream": false
}
```

## Главные поля

| Поле | Описание |
| --- | --- |
| model | Точный ID из каталога |
| messages | История сообщений с ролями system, user, assistant и tool |
| stream | true для получения ответа частями |
| max_tokens / max_output_tokens | Максимальная длина ответа |
| temperature | Степень вариативности, если модель поддерживает |
| tools | JSON-схемы функций, доступных модели |
| tool_choice | Автоматический или принудительный выбор функции |
| response_format | Требуемый формат ответа, если поддерживается |

## Вызов функций

Передайте список tools с JSON Schema аргументов. Если модель вернула tool_calls, выполните функцию в своём приложении, добавьте результат сообщением role: tool и отправьте историю повторно.

### JSON

```json
{
  "model": "your-model-id",
  "messages": [{"role": "user", "content": "Какая погода в Москве?"}],
  "tools": [{
    "type": "function",
    "function": {
      "name": "get_weather",
      "description": "Получить текущую погоду",
      "parameters": {
        "type": "object",
        "properties": {"city": {"type": "string"}},
        "required": ["city"]
      }
    }
  }]
}
```

> Наличие поля tools в API не означает, что его понимает каждая модель. Проверяйте поддерживаемые endpoints и возможности карточки модели.

## Текст и изображение на входе

Для vision-модели content сообщения может быть массивом частей. Изображение передавайте публичной HTTPS-ссылкой либо data URL; закрытая ссылка с cookie серверу недоступна.

### JSON

```json
{
  "model": "your-vision-model-id",
  "messages": [{
    "role": "user",
    "content": [
      {"type": "text", "text": "Что изображено?"},
      {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
    ]
  }]
}
```

## Формат ответа

1. messages
2. POST
3. модель
4. choices

```
POST /v1/chat/completions
Authorization: Bearer sk-...
Content-Type: application/json

{
  "model": "your-model-id",
  "messages": [
    {"role": "user", "content": "Привет!"}
  ]
}
```

```
HTTP/1.1 200 OK
Content-Type: application/json

{
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "Привет! Чем помочь?"
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 7,
    "total_tokens": 16
  }
}
```

## Потоковый ответ

Установите stream: true, чтобы получать фрагменты ответа по мере генерации. Каждый фрагмент приходит как Server-Sent Event, а завершение потока обозначается строкой [DONE].

### curl -N

```bash
curl -N https://elysiumai.garden/v1/chat/completions   -H "Authorization: Bearer $ELYSIUM_API_KEY"   -H "Content-Type: application/json"   -d '{"model":"your-model-id","stream":true,"messages":[{"role":"user","content":"Привет"}]}'
```

---

# Embeddings

Преобразование текста в числовые векторы для поиска, RAG и сравнения.

https://elysiumai.garden/docs/api/embeddings

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

Поле input принимает строку, массив строк, массив token ID или массив массивов token ID. Числовые token ID учитываются без повторной токенизации.

### curl

```bash
curl https://elysiumai.garden/v1/embeddings   -H "Authorization: Bearer $ELYSIUM_API_KEY"   -H "Content-Type: application/json"   -d '{"model":"your-embedding-model-id","input":["первый текст","второй текст"]}'
```

## Формы входа и параметры

| Поле | Допустимое значение | Назначение |
| --- | --- | --- |
| input | строка или массив строк | Один или несколько текстов |
| input | массив token ID | Один уже токенизированный текст |
| input | массив массивов token ID | Пакет токенизированных текстов |
| encoding_format | float или base64 | Формат вектора, если модель поддерживает |
| dimensions | целое число | Уменьшенная размерность, если поддерживается |

> Не смешивайте строки и массивы token ID в одном input. Максимальная длина и dimensions зависят от выбранной embedding-модели.

## Как читать ответ

Для каждого элемента input возвращается объект data с полем embedding. Порядок элементов в data соответствует порядку входных строк.

### JSON

```json
{
  "data": [
    {"index": 0, "embedding": [0.012, -0.084, 0.031]},
    {"index": 1, "embedding": [0.019, -0.071, 0.028]}
  ],
  "usage": {"prompt_tokens": 6, "total_tokens": 6}
}
```

---

# Responses API

Единый формат OpenAI Responses для текста, мультимодального ввода, tools и потоковой выдачи.

https://elysiumai.garden/docs/api/responses

## Минимальный запрос

Передайте точный model ID и поле input. Input может быть обычной строкой или массивом структурированных сообщений и частей контента.

### curl

```bash
curl https://elysiumai.garden/v1/responses   -H "Authorization: Bearer $ELYSIUM_API_KEY"   -H "Content-Type: application/json"   -d '{
    "model": "your-responses-model-id",
    "input": "Объясни API одним предложением",
    "max_output_tokens": 300
  }'
```

## Основные поля

| Поле | Назначение |
| --- | --- |
| model | Модель с поддержкой Responses |
| input | Строка или структурированный массив входа |
| instructions | Инструкция верхнего уровня |
| max_output_tokens | Ограничение длины ответа |
| tools | Инструменты и функции, доступные модели |
| tool_choice | Правило выбора инструмента |
| previous_response_id | Продолжение предыдущего ответа, если поддерживается upstream |
| stream | Поток событий вместо цельного JSON |

> Поддержка отдельных tools и мультимодальных частей зависит от модели. Смотрите endpoints и описание конкретной карточки.

## Текст и элементы ответа

Ответ содержит массив output. Не полагайтесь только на один фиксированный индекс: найдите элемент message, затем часть output_text. Официальные SDK обычно собирают текст в удобное поле output_text.

### JavaScript

```javascript
const response = await client.responses.create({
  model: "your-responses-model-id",
  input: "Объясни API одним предложением",
});

console.log(response.output_text);
```

## Поток событий

С stream: true возвращается последовательность типизированных SSE-событий. Обрабатывайте дельты текста и завершайте чтение после финального события, не ожидая один JSON-объект.

---

# Gemini-совместимый API

Нативные contents, parts и generationConfig через совместимый маршрут Gemini.

https://elysiumai.garden/docs/api/gemini-compatible

## Маршруты и авторизация

В поле Base URL укажите https://elysiumai.garden/compatible. Клиент добавит версию и операцию сам. Для ручного запроса используйте полный путь из таблицы.

Предпочтительный способ авторизации — Authorization: Bearer. Параметр ?key= тоже принимается для совместимости, но секрет в URL чаще попадает в историю и access-логи.

| Метод | Маршрут | Назначение |
| --- | --- | --- |
| GET | /compatible | Индекс API и точные маршруты |
| GET | /compatible/v1beta/models | Нативный список Gemini-моделей |
| GET | /compatible/v1/models | Список моделей для автоподбора в совместимых клиентах |
| GET | /compatible/models | Короткий адрес того же списка |
| POST | /compatible/v1beta/models/{model}:generateContent | Обычный ответ |
| POST | /compatible/v1beta/models/{model}:streamGenerateContent?alt=sse | Потоковый ответ |

## generateContent

### curl

```bash
curl https://elysiumai.garden/compatible/v1beta/models/google/gemini-3.1-flash-lite:generateContent   -H "Authorization: Bearer $ELYSIUM_API_KEY"   -H "Content-Type: application/json"   -d '{
    "contents": [{
      "role": "user",
      "parts": [{"text": "Объясни API одним предложением"}]
    }],
    "generationConfig": {"temperature": 0.4, "maxOutputTokens": 300}
  }'
```

## Структура contents и parts

| Поле | Назначение |
| --- | --- |
| contents[] | История диалога с ролями user и model |
| parts[].text | Текстовая часть |
| parts[].inlineData | Файл или изображение в base64 |
| parts[].fileData | Ссылка на файл, если формат поддержан моделью |
| systemInstruction | Системная инструкция |
| generationConfig | Температура, лимит выхода и другие параметры генерации |
| tools | Нативные Gemini function declarations |

## Потоковая генерация

Используйте действие streamGenerateContent и alt=sse. Клиент должен читать события по мере поступления; обычный generateContent возвращает один JSON.

---

# Anthropic-совместимый API

Messages API, streaming и локальная оценка токенов для Anthropic-совместимых клиентов.

https://elysiumai.garden/docs/api/anthropic-compatible

## Два совместимых префикса

| Метод | Маршрут | Назначение |
| --- | --- | --- |
| POST | /v1/messages | Создание сообщения |
| POST | /anthropic/v1/messages | То же для клиентов с Anthropic-префиксом |
| POST | /v1/messages/count_tokens | Оценка входных токенов |
| POST | /anthropic/v1/messages/count_tokens | Оценка с Anthropic-префиксом |

> Claude Code самостоятельно добавляет /v1/messages, поэтому в ANTHROPIC_BASE_URL указывайте https://elysiumai.garden без /v1.

## Messages request

### curl

```bash
curl https://elysiumai.garden/v1/messages   -H "x-api-key: $ELYSIUM_API_KEY"   -H "anthropic-version: 2023-06-01"   -H "Content-Type: application/json"   -d '{
    "model": "anthropic/claude-sonnet-4.6",
    "max_tokens": 300,
    "messages": [{"role": "user", "content": "Привет!"}]
  }'
```

## Оценка токенов без генерации

count_tokens принимает тело Anthropic Messages и возвращает input_tokens. Расчёт выполняется локально: запрос не отправляется модели и не списывает баланс. Это оценка для проверки размера контекста, поэтому итоговый usage upstream может немного отличаться.

### JSON response

```json
{"input_tokens": 42}
```

## Prompt caching

Нативные cache_control-блоки передаются только модели, которая поддерживает Anthropic prompt caching. Cache read и cache write отражаются в usage и тарифицируются по отдельным ценам каталога.

> Elysium AI не добавляет автоматический smart cache. Кэширование происходит только по правилам и возможностям выбранной модели/upstream.

---

# Изображение одной ссылкой

GET-маршрут, который генерирует изображение и возвращает готовые бинарные данные для img или Markdown.

https://elysiumai.garden/docs/api/embed-images

## Генерация бинарного ответа

Модель указывается после image:, а prompt и параметры — в query string. Сервер возвращает image/png, image/jpeg или другой фактический MIME-тип, а не JSON.

### curl

```bash
curl --get "https://elysiumai.garden/embed/image:google/gemini-3.1-flash-image-preview"   -H "Authorization: Bearer $ELYSIUM_API_KEY"   --data-urlencode "prompt=Стеклянный павильон в туманном лесу"   --data-urlencode "aspect_ratio=16:9"   --data-urlencode "image_size=2K"   --output result.png
```

## Использование в HTML и Markdown

Тег img не умеет отправлять Authorization, поэтому для прямого встраивания допускается ?key=. Используйте отдельный ключ с небольшим бюджетом и не размещайте его на публичной странице: URL может сохраниться в истории браузера, аналитике и логах.

### HTML

```html
<img
  src="https://elysiumai.garden/embed/image:google/gemini-3.1-flash-image-preview?prompt=Marble%20garden&aspect_ratio=16:9&key=sk-..."
  alt="Сгенерированный сад"
/>
```

## Поддерживаемые параметры

| Параметр | Назначение |
| --- | --- |
| prompt | Описание создаваемого изображения; обязательно |
| aspect_ratio | Соотношение сторон, например 1:1 или 16:9 |
| image_size | Разрешение вроде 1K или 2K, если модель поддерживает |
| key | API-ключ для клиентов, которые не могут отправить заголовок |

> Параметр references здесь намеренно не поддерживается. Для правки исходного изображения используйте POST /v1/images/edits или Gemini Image через Chat Completions.

## Стоимость и хранение

Каждый GET запускает новую генерацию и тарифицируется как обычный запрос выбранной image-модели. Ответ помечен private, no-store: Elysium AI не реализует smart cache и не обещает повторно вернуть прежнюю картинку по тому же URL.

> Если результат нужен повторно, сохраните бинарные данные в собственное хранилище и показывайте уже сохранённый URL.

---

# Музыка и речь

Музыка Suno, речь ElevenLabs и Gemini, обработка аудио.

https://elysiumai.garden/docs/api/audio

## От описания к медиафайлу

![Прозрачная стеклянная киноплёнка переходит в объёмную звуковую волну.](https://elysiumai.garden/images/docs/video-audio-liquid-glass.png)

Иллюстрация работы с видео и аудио. Один запуск, проверка статуса задачи, затем сохранение готового файла.

## Создать аудиозадачу

POST /v1/audio/generations создаёт асинхронную задачу. GET /v1/audio/generations/{id} возвращает queued, processing, completed или failed. После завершения tracks содержит все файлы и их публичные ID. Музыка может вернуть два трека — это результаты одного запроса генерации. Это отдельный JSON API, а не синхронный бинарный /v1/audio/speech.

### Music

```json
{"model":"suno/music","prompt":"Спокойная фортепианная музыка","input":{"model":"V5_5","customMode":false,"instrumental":true}}
```

### Speech

```json
{"model":"elevenlabs/text-to-speech-turbo-2-5","prompt":"Здравствуйте!","input":{"voice":"TX3LPaxmHKxFdv7VOQHJ","stability":0.5,"speed":1}}
```

### Poll

```bash
curl "https://elysiumai.garden/v1/audio/generations/$TASK_ID" -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

> Верхний model выбирает публичное семейство. input.model задаёт версию Suno. Это разные поля.

## Голоса и обработка аудио

В LibreChat выберите ElysiumAI Audio. Выбор голосов и редактор реплик используют схему конкретной модели. Если диалог не задан, сообщение озвучивается стандартным голосом. Для своей песни включите customMode, задайте style и title; сообщение станет текстом песни. Для обработки загруженного аудио укажите доступный HTTPS URL. Продолжение, разделение и WAV могут требовать audioId вида task_public:0 из вашей завершённой задачи. Внутренние ID треков и задач других сервисов не принимаются.

> Обрабатывайте только аудио, на использование которого у вас есть разрешение. Не повторяйте автоматически запрос после неоднозначного таймаута: сначала проверьте имеющуюся задачу. Исходное аудио пока передаётся ссылкой.

## Цена до генерации

POST /v1/media/quote принимает те же model, operation, prompt и input, что и генерация. Платная задача не запускается. В billing возвращаются ставки, известные объёмы, pending для ещё неизвестного результата. Файлы должны быть доступны по публичным HTTPS URL. Полная таблица — в раскрытой карточке модели: цена может зависеть от разрешения, длительности, звука, качества и входных файлов.

### Quote

```bash
curl https://elysiumai.garden/v1/media/quote -H "Authorization: Bearer $ELYSIUM_API_KEY" -H "Content-Type: application/json" -d '{"model":"openai/gpt-image-2","prompt":"A garden","input":{"resolution":"2K"}}'
```

> Предварительный расчёт принимает JSON с публичными ссылками на файлы. Он не загружает локальные файлы и не раскрывает ID предыдущих задач. Операции с такими исходниками проверяются и тарифицируются при отправке; предварительный расчёт доступен не для всех этих вариантов.

## Параметры конкретной модели

GET /v1/media/models возвращает публичные ID моделей, режимы operations и схемы input: допустимые значения, обязательные поля, ограничения и значения по умолчанию. Выберите operation из ответа и передайте параметры этого режима внутри input. Разрешение, длительность, референсы и звук зависят от модели; у некоторых сочетаний есть дополнительные ограничения. Пропущенные поля используют настройки модели, а явно переданные false и 0 сохраняются.

### Catalog

```bash
curl https://elysiumai.garden/v1/media/models
```

> Не переносите разрешение или качество из другой модели. Неизвестные поля input отклоняются до генерации. Проверка параметров не может заранее предсказать модерацию содержимого или временный сбой генерации.

## Оплата и хранение результата

У каждой модели фиксированные ставки в USD по режимам и параметрам. Ставка сохраняется при запуске и не меняется из-за последующей смены цены поставщика. Итог = ставка × объём плюс отдельно указанные доплаты за входные файлы. Единицы: изображения, секунды видео/аудио, 1000 символов текста или готовые операции. Точная сумма списывается один раз после готовности результата, по фактическому объёму и сохранённым ставкам. До завершения средства блокируются внутренне, без изменения баланса и операции списания в истории. При ошибке блокировка снимается без списания и операции возврата.  Настроенные скидки аккаунта учитываются. Расшифровка находится в billing, у видео — metadata.billing, а также в истории запросов. Gemini TTS: $0,0011 за фактическую секунду результата ($0,066/мин), обработка текста включена; это цена до скидок аккаунта.

Ссылки на результат временные и дают доступ любому, кто их получил. Сохраняйте файлы сразу. Срок ссылки — не более 13 дней; она может перестать работать раньше, если исходный файл удалён.

> Каждая новая отправка — отдельная платная задача. Сетевой таймаут не означает, что генерация не запустилась. Не повторяйте отправку автоматически.

## LibreChat Studio

Выберите ElysiumAI Images или ElysiumAI Video, затем модель и «Настройки генерации» рядом с полем сообщения. Форма строится по схеме выбранной модели. Смена режима очищает старые параметры, настройки привязаны к модели. Описание пишите в сообщении; картинки прикрепляйте к нему либо указывайте доступные ссылки. Для сложных структур сцен и референсов есть поле JSON.

Во время запроса показана лёгкая анимация ожидания — это не оценка процента готовности. Она приостанавливается за пределами экрана и в скрытой вкладке, учитывает уменьшение движения. Готовые изображения и видео появляются прямо в чате. Для видео- и аудиореференсов используйте публичные URL: загрузка этих файлов напрямую через мост не поддерживается.

---

# Изображения

Генерация, редактирование и обработка с параметрами выбранной модели.

https://elysiumai.garden/docs/api/images

## Одна модель — несколько режимов

Суффикс вроде -edit обычно обозначает операцию редактирования, а не отдельное семейство. В ElysiumAI поддерживаемые операции объединены под одним публичным model ID и одной карточкой. Не нужно самостоятельно дописывать -edit к ID. В карточке указаны доступные режимы и отдельные таблицы цен для них. Flare и Sunburst остаются разными вариантами модели; у каждого свои режимы создания и редактирования.

![В двух стеклянных рамках — одно горное озеро до и после изменения освещения на закатное.](https://elysiumai.garden/images/docs/image-editing-liquid-glass.png)

Концептуальная иллюстрация: редактирование начинается с исходной картинки. Это не сравнительный тест моделей и не обещание конкретного результата.

| Задача | Что передать | API |
| --- | --- | --- |
| Создать с нуля | model + prompt + input | POST /v1/images/generations |
| Изменить готовую картинку | model + prompt + image + input | POST /v1/images/edits |
| Увеличение, слои, сегментация | Явный operation и обязательные поля его схемы | POST /v1/images/edits |

> Редактирование поддерживается не каждой моделью. Работа с референсами не означает поддержку маски или гарантированное сохранение лица и композиции. Режим доступен только если он указан в схеме модели.

## Автоматический или явный выбор режима

Если operation не указан, исходная картинка выбирает поддерживаемый режим image-to-image, image-edit или edit. Без картинки выбирается режим генерации по умолчанию. У моделей с единым режимом generate референсы передаются в него же. Для совместимости /images/generations тоже принимает исходные изображения; для /images/edits исходная картинка обязательна.

Для предсказуемой интеграции получите operations через GET /v1/media/models и задайте точное имя режима. Явный operation имеет приоритет над автоматическим выбором. Увеличение, правка области и разделение на слои не выбираются по обычному вложению: укажите их явно. Неподдерживаемые сочетания отклоняются, а не превращаются незаметно в другую генерацию.

### Model operations

```bash
curl -s https://elysiumai.garden/v1/media/models | jq '.data[] | select(.id == "openai/gpt-image-2.5-flare") | {id, operations, tariff}'
```

## Редактирование по ссылке на картинку

Храните API-ключ в переменной окружения на сервере. Замените ссылку в примере на доступное HTTPS-изображение, которое вам разрешено обрабатывать. Верхнее поле image — удобный общий формат; шлюз преобразует его в поле выбранной модели. Собственные настройки модели передаются внутри input.

### curl · JSON

```bash
curl https://elysiumai.garden/v1/images/edits \
  --max-time 660 \
  -H "Authorization: Bearer $ELYSIUM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-image-2.5-flare",
    "operation": "image-to-image",
    "prompt": "Change the lighting to sunset. Keep the composition.",
    "image": "https://example.com/source.png",
    "input": {"resolution": "2K", "aspect_ratio": "16:9"},
    "response_format": "url"
  }'
```

### Python · requests

```python
import os
import requests

response = requests.post(
    "https://elysiumai.garden/v1/images/edits",
    headers={"Authorization": f"Bearer {os.environ['ELYSIUM_API_KEY']}"},
    json={
        "model": "openai/gpt-image-2.5-flare",
        "operation": "image-to-image",
        "prompt": "Change the lighting to sunset. Keep the composition.",
        "image": "https://example.com/source.png",
        "input": {"resolution": "2K", "aspect_ratio": "16:9"},
    },
    timeout=(15, 660),
)
response.raise_for_status()
result = response.json()
print(result["data"][0]["url"])
print(result.get("billing"))
```

> JSON-ответ содержит готовый результат, а не задачу для опроса: data[].url либо data[].b64_json и расшифровку billing. Исходная ссылка должна вести на сам файл изображения, а не на галерею или страницу входа.

## Локальный файл и несколько референсов

- Не задавайте Content-Type вручную для multipart: curl сам добавляет границу частей запроса.
- Наш лимит multipart — 20 МБ на изображение. Дополнительно действуют ограничения модели на формат и число референсов; GPT Image 2.5 принимает до 16 референсов.
- Для нескольких файлов повторите -F image=@файл. Не дублируйте одни и те же изображения одновременно в image и input_urls.
- Маски поддерживаются не везде. Передавайте маску только при наличии соответствующего поля в схеме выбранного режима. У GPT Image 2.5 поле маски не заявлено.

### curl · multipart

```bash
curl https://elysiumai.garden/v1/images/edits \
  --max-time 660 \
  -H "Authorization: Bearer $ELYSIUM_API_KEY" \
  -F 'model=openai/gpt-image-2.5-flare' \
  -F 'operation=image-to-image' \
  -F 'prompt=Change the lighting to sunset. Keep the composition.' \
  -F 'image=@./source.png' \
  -F 'input={"resolution":"2K","aspect_ratio":"16:9"}'
```

### Multiple references · JSON

```json
{
  "model": "openai/gpt-image-2.5-sunburst",
  "operation": "image-to-image",
  "prompt": "Use the composition of the first image and the palette of the second.",
  "input": {
    "input_urls": ["https://example.com/composition.png", "https://example.com/palette.png"],
    "resolution": "1K",
    "aspect_ratio": "1:1"
  }
}
```

## Grok: маски областей

Для grok-imagine-image-2-0 режим segment-map принимает либо input.image_url, либо input.task_id из предыдущего успешного запроса изображения этого же аккаунта. Передавайте только один исходник. Оба варианта работают через /v1/images/generations и /v1/images/edits. Каждый элемент data содержит маску: url (или b64_json), index и name. Индексы возвращаются без изменений, включая нулевой; сохраняйте их при обработке масок.

### Image URL

```json
{"model":"grok-imagine-image-2-0","operation":"segment-map","input":{"image_url":"https://example.com/source.png"}}
```

### Previous task

```json
{"model":"grok-imagine-image-2-0","operation":"segment-map","input":{"task_id":"task_returned_by_previous_request"}}
```

## Сколько стоит редактирование

Редактирование — отдельный платный результат. Его фиксированная ставка может отличаться от создания с нуля, зависеть от разрешения и включать плату за входные изображения. Перед запуском получите бесплатный расчёт с теми же model, operation, prompt, ссылкой image и input. Редактирование не становится бесплатным, если за исходную картинку уже было заплачено.

| GPT Image 2.5 · Flare / Sunburst | Создание / изображение | Редактирование / изображение |
| --- | --- | --- |
| 1K | $0.045 | $0.045 |
| 2K | $0.075 | $0.075 |
| 4K | $0.12 | $0.12 |

### Quote an edit

```bash
curl https://elysiumai.garden/v1/media/quote \
  -H "Authorization: Bearer $ELYSIUM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/gpt-image-2.5-flare","operation":"image-to-image","prompt":"Sunset lighting","image":"https://example.com/source.png","input":{"resolution":"2K","aspect_ratio":"16:9"}}'
```

> Ставки указаны до персональных скидок на 9 сентября 2026 года. Актуальный источник — каталог и расчёт quote. У GPT Image 2.5 пропорции 27:16, 16:27, 9:8 и 8:9 доступны только в 1K: их нельзя сочетать с 2K или 4K. Расчёт quote не закрепляет цену: ставка сохраняется при отправке генерации.

## Те же режимы в LibreChat

- Выберите ElysiumAI Images и нужную модель. Отдельная модель с -edit не нужна.
- Откройте «Настройки генерации». В автоматическом режиме вложенная картинка выбирает редактирование; текущий режим подписан рядом с полем сообщения. Можно выбрать operation явно.
- Прикрепите исходную картинку к текущему сообщению и напишите, что изменить. Предыдущие картинки в чате не становятся исходником автоматически: прикрепите нужное изображение снова.
- Проверьте разрешение и таблицу цен. Для слоёв, маски или увеличения выберите соответствующий поддерживаемый режим и заполните его обязательные поля.
- Смена режима очищает старые параметры; смена модели не переносит чужие настройки. Перед платным запуском сервер проверяет итоговый запрос.

> Проверка параметров не гарантирует доступность провайдера, прохождение модерации и художественное качество. Таймаут не доказывает ошибку генерации: не повторяйте платный запрос автоматически.

## Создать или изменить изображение

Для моделей из /v1/media/models используйте POST /v1/images/generations или /v1/images/edits. В их числе основные ID GPT Image и Gemini Image. Другие модели каталога могут использовать Chat Completions — проверяйте endpoints в карточке. Ответ изображения дожидается завершения и содержит data[].url либо data[].b64_json. Установите таймаут клиента не менее 10 минут.

### curl

```bash
curl https://elysiumai.garden/v1/images/generations   --max-time 660   -H "Authorization: Bearer $ELYSIUM_API_KEY"   -H "Content-Type: application/json"   -d '{"model":"openai/gpt-image-2","prompt":"A white marble garden by the sea","input":{"resolution":"1K","aspect_ratio":"1:1"},"response_format":"url"}'
```

### Edit

```json
{"model":"openai/gpt-image-2","operation":"image-to-image","prompt":"Make the sky orange","input":{"image_urls":["https://example.com/source.png"],"resolution":"1K","aspect_ratio":"1:1"}}
```

> Изображения также можно загрузить через multipart-поля image (до 20 МБ каждое). Маски, несколько референсов, увеличение и сегментация задаются по схеме выбранного режима. По умолчанию один результат; n > 1 доступно только при поддержке моделью.

## Цена до генерации

POST /v1/media/quote принимает те же model, operation, prompt и input, что и генерация. Платная задача не запускается. В billing возвращаются ставки, известные объёмы, pending для ещё неизвестного результата. Файлы должны быть доступны по публичным HTTPS URL. Полная таблица — в раскрытой карточке модели: цена может зависеть от разрешения, длительности, звука, качества и входных файлов.

### Quote

```bash
curl https://elysiumai.garden/v1/media/quote -H "Authorization: Bearer $ELYSIUM_API_KEY" -H "Content-Type: application/json" -d '{"model":"openai/gpt-image-2","prompt":"A garden","input":{"resolution":"2K"}}'
```

> Предварительный расчёт принимает JSON с публичными ссылками на файлы. Он не загружает локальные файлы и не раскрывает ID предыдущих задач. Операции с такими исходниками проверяются и тарифицируются при отправке; предварительный расчёт доступен не для всех этих вариантов.

## Параметры конкретной модели

GET /v1/media/models возвращает публичные ID моделей, режимы operations и схемы input: допустимые значения, обязательные поля, ограничения и значения по умолчанию. Выберите operation из ответа и передайте параметры этого режима внутри input. Разрешение, длительность, референсы и звук зависят от модели; у некоторых сочетаний есть дополнительные ограничения. Пропущенные поля используют настройки модели, а явно переданные false и 0 сохраняются.

### Catalog

```bash
curl https://elysiumai.garden/v1/media/models
```

> Не переносите разрешение или качество из другой модели. Неизвестные поля input отклоняются до генерации. Проверка параметров не может заранее предсказать модерацию содержимого или временный сбой генерации.

## Оплата и хранение результата

У каждой модели фиксированные ставки в USD по режимам и параметрам. Ставка сохраняется при запуске и не меняется из-за последующей смены цены поставщика. Итог = ставка × объём плюс отдельно указанные доплаты за входные файлы. Единицы: изображения, секунды видео/аудио, 1000 символов текста или готовые операции. Точная сумма списывается один раз после готовности результата, по фактическому объёму и сохранённым ставкам. До завершения средства блокируются внутренне, без изменения баланса и операции списания в истории. При ошибке блокировка снимается без списания и операции возврата.  Настроенные скидки аккаунта учитываются. Расшифровка находится в billing, у видео — metadata.billing, а также в истории запросов. Gemini TTS: $0,0011 за фактическую секунду результата ($0,066/мин), обработка текста включена; это цена до скидок аккаунта.

Ссылки на результат временные и дают доступ любому, кто их получил. Сохраняйте файлы сразу. Срок ссылки — не более 13 дней; она может перестать работать раньше, если исходный файл удалён.

> Каждая новая отправка — отдельная платная задача. Сетевой таймаут не означает, что генерация не запустилась. Не повторяйте отправку автоматически.

## LibreChat Studio

Выберите ElysiumAI Images или ElysiumAI Video, затем модель и «Настройки генерации» рядом с полем сообщения. Форма строится по схеме выбранной модели. Смена режима очищает старые параметры, настройки привязаны к модели. Описание пишите в сообщении; картинки прикрепляйте к нему либо указывайте доступные ссылки. Для сложных структур сцен и референсов есть поле JSON.

Во время запроса показана лёгкая анимация ожидания — это не оценка процента готовности. Она приостанавливается за пределами экрана и в скрытой вкладке, учитывает уменьшение движения. Готовые изображения и видео появляются прямо в чате. Для видео- и аудиореференсов используйте публичные URL: загрузка этих файлов напрямую через мост не поддерживается.

---

# Генерация видео

Асинхронные видеозадачи, референсы и воспроизведение в LibreChat.

https://elysiumai.garden/docs/api/video

## От описания к медиафайлу

![Прозрачная стеклянная киноплёнка переходит в объёмную звуковую волну.](https://elysiumai.garden/images/docs/video-audio-liquid-glass.png)

Иллюстрация работы с видео и аудио. Один запуск, проверка статуса задачи, затем сохранение готового файла.

## Один запуск, затем проверка статуса

POST /v1/videos (также /v1/video/generations) возвращает публичный id задачи и status. Проверяйте GET /v1/videos/{id} раз в 3–5 секунд до completed или failed. Готовая ссылка находится в metadata.url. Это относится к медиакаталогу, включая Gemini Omni и Seedance: старый синхронный ответ videos[] здесь больше не используется. LibreChat ждёт результат автоматически до 10 минут.

### Create

```bash
curl https://elysiumai.garden/v1/videos   -H "Authorization: Bearer $ELYSIUM_API_KEY"   -H "Content-Type: application/json"   -d '{"model":"x-ai/grok-imagine-video","operation":"text-to-video","prompt":"A quiet ocean at sunrise","input":{"duration":6,"resolution":"480p","aspect_ratio":"16:9"}}'
```

### Poll

```bash
curl "https://elysiumai.garden/v1/videos/$TASK_ID" -H "Authorization: Bearer $ELYSIUM_API_KEY"
```

### Completed

```json
{"id":"task_public_id","object":"video","status":"completed","metadata":{"url":"https://elysiumai.garden/v1/media/opaque-token"}}
```

> Режимы референсов и обработки могут требовать URL изображений, видео, аудио либо публичный ID предыдущей завершённой задачи вашего аккаунта. Имена полей input берите из схемы. Не все режимы доступны у каждой модели.

## Цена до генерации

POST /v1/media/quote принимает те же model, operation, prompt и input, что и генерация. Платная задача не запускается. В billing возвращаются ставки, известные объёмы, pending для ещё неизвестного результата. Файлы должны быть доступны по публичным HTTPS URL. Полная таблица — в раскрытой карточке модели: цена может зависеть от разрешения, длительности, звука, качества и входных файлов.

### Quote

```bash
curl https://elysiumai.garden/v1/media/quote -H "Authorization: Bearer $ELYSIUM_API_KEY" -H "Content-Type: application/json" -d '{"model":"openai/gpt-image-2","prompt":"A garden","input":{"resolution":"2K"}}'
```

> Предварительный расчёт принимает JSON с публичными ссылками на файлы. Он не загружает локальные файлы и не раскрывает ID предыдущих задач. Операции с такими исходниками проверяются и тарифицируются при отправке; предварительный расчёт доступен не для всех этих вариантов.

## Параметры конкретной модели

GET /v1/media/models возвращает публичные ID моделей, режимы operations и схемы input: допустимые значения, обязательные поля, ограничения и значения по умолчанию. Выберите operation из ответа и передайте параметры этого режима внутри input. Разрешение, длительность, референсы и звук зависят от модели; у некоторых сочетаний есть дополнительные ограничения. Пропущенные поля используют настройки модели, а явно переданные false и 0 сохраняются.

### Catalog

```bash
curl https://elysiumai.garden/v1/media/models
```

> Не переносите разрешение или качество из другой модели. Неизвестные поля input отклоняются до генерации. Проверка параметров не может заранее предсказать модерацию содержимого или временный сбой генерации.

## Оплата и хранение результата

У каждой модели фиксированные ставки в USD по режимам и параметрам. Ставка сохраняется при запуске и не меняется из-за последующей смены цены поставщика. Итог = ставка × объём плюс отдельно указанные доплаты за входные файлы. Единицы: изображения, секунды видео/аудио, 1000 символов текста или готовые операции. Точная сумма списывается один раз после готовности результата, по фактическому объёму и сохранённым ставкам. До завершения средства блокируются внутренне, без изменения баланса и операции списания в истории. При ошибке блокировка снимается без списания и операции возврата.  Настроенные скидки аккаунта учитываются. Расшифровка находится в billing, у видео — metadata.billing, а также в истории запросов. Gemini TTS: $0,0011 за фактическую секунду результата ($0,066/мин), обработка текста включена; это цена до скидок аккаунта.

Ссылки на результат временные и дают доступ любому, кто их получил. Сохраняйте файлы сразу. Срок ссылки — не более 13 дней; она может перестать работать раньше, если исходный файл удалён.

> Каждая новая отправка — отдельная платная задача. Сетевой таймаут не означает, что генерация не запустилась. Не повторяйте отправку автоматически.

## LibreChat Studio

Выберите ElysiumAI Images или ElysiumAI Video, затем модель и «Настройки генерации» рядом с полем сообщения. Форма строится по схеме выбранной модели. Смена режима очищает старые параметры, настройки привязаны к модели. Описание пишите в сообщении; картинки прикрепляйте к нему либо указывайте доступные ссылки. Для сложных структур сцен и референсов есть поле JSON.

Во время запроса показана лёгкая анимация ожидания — это не оценка процента готовности. Она приостанавливается за пределами экрана и в скрытой вкладке, учитывает уменьшение движения. Готовые изображения и видео появляются прямо в чате. Для видео- и аудиореференсов используйте публичные URL: загрузка этих файлов напрямую через мост не поддерживается.

---

# Подключение готовых приложений

Выберите программу, укажите адрес Elysium AI, API-ключ и точный ID модели — остальное клиент сделает сам.

https://elysiumai.garden/docs/integrations/overview

## Три значения для любого подключения

Base URL говорит приложению, куда отправлять запросы. API-ключ подтверждает доступ к вашему балансу. Model ID выбирает модель. Эти значения обычно находятся в разделах Provider, API, Connection или Custom endpoint.

| Поле | Что указать | Где взять |
| --- | --- | --- |
| Base URL | https://elysiumai.garden/v1 | Скопировать отсюда |
| API key | sk-... | Кабинет → API-ключи |
| Model | точный model ID | Каталог моделей |

> Не добавляйте /chat/completions к Base URL, если приложение просит именно базовый адрес. Полный маршрут нужен только в полях Endpoint или Proxy URL.

## Куда вставлять команды

Команды из документации вводятся не на сайте Elysium AI, а в терминале вашего компьютера. Выберите вкладку своей системы, откройте указанную программу и вставляйте команды по одной, нажимая Enter после каждой строки.

| Система | Что открыть | Как открыть |
| --- | --- | --- |
| Windows · PowerShell | PowerShell или Windows Terminal | Пуск → введите PowerShell → Открыть |
| Windows · CMD | Командная строка | Win + R → cmd → Enter |
| macOS | Terminal | Cmd + Space → Terminal → Enter |
| Linux | Terminal | Ctrl + Alt + T или Terminal из меню приложений |

### PowerShell

```powershell
$env:ELYSIUM_API_KEY="sk-..."
# Проверка: команда должна вывести начало ключа
$env:ELYSIUM_API_KEY.Substring(0, 3)
```

### Windows CMD

```bat
set ELYSIUM_API_KEY=sk-...
rem Проверка: команда выведет сохранённое значение
echo %ELYSIUM_API_KEY%
```

### macOS

```bash
export ELYSIUM_API_KEY="sk-..."
# Проверка
echo "$ELYSIUM_API_KEY"
```

### Linux

```bash
export ELYSIUM_API_KEY="sk-..."
# Проверка
echo "$ELYSIUM_API_KEY"
```

> Переменная действует в текущем окне терминала. Если закрыть окно, для следующего запуска задайте её снова либо используйте постоянную конфигурацию из руководства конкретного приложения.

## Краткая шпаргалка

| Клиент | Протокол | Base URL |
| --- | --- | --- |
| OpenAI SDK / SillyTavern / Hermes / OpenClaw | OpenAI-compatible | https://elysiumai.garden/v1 |
| Codex | Responses | https://elysiumai.garden/v1 |
| Claude Code | Anthropic Messages | https://elysiumai.garden |

### Environment

```bash
export ELYSIUM_API_KEY="sk-..."
export OPENAI_BASE_URL="https://elysiumai.garden/v1"
```

## Выберите приложение

- [OpenAI SDK](https://elysiumai.garden/docs/integrations/openai-sdk): Python и JavaScript с официальным SDK.
- [SillyTavern](https://elysiumai.garden/docs/integrations/sillytavern): Подключение через Custom OpenAI-compatible endpoint.
- [Janitor AI](https://elysiumai.garden/docs/integrations/janitor-ai): Proxy с полным адресом /v1/chat/completions.
- [OpenClaw](https://elysiumai.garden/docs/integrations/openclaw): Провайдер Elysium AI в конфигурации агента.
- [Hermes Agent](https://elysiumai.garden/docs/integrations/hermes-agent): Интерактивный мастер или config.yaml.
- [Подключение к IDE](https://elysiumai.garden/docs/integrations/code-and-ide): Cursor, Cline, Roo Code, Kilo Code, Continue, Codex, Claude Code, Zed, JetBrains, OpenCode, Aider и другие.
- [Codex](https://elysiumai.garden/docs/integrations/codex): Custom provider через Responses API.
- [Claude Code](https://elysiumai.garden/docs/integrations/claude-code): Подключение через Anthropic Messages API.

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# OpenAI SDK

Используйте официальный OpenAI-клиент, заменив API-ключ и base URL.

https://elysiumai.garden/docs/integrations/openai-sdk

## Пошаговое подключение

- Создайте API-ключ в кабинете.
- Установите библиотеку: pip install openai или npm install openai.
- Сохраните ключ в переменной ELYSIUM_API_KEY.
- Скопируйте точный ID модели из каталога и вставьте в model.

## Установка SDK в терминале

Откройте PowerShell, CMD, Terminal macOS или Terminal Linux. Для Python используйте первую команду, для Node.js — вторую. Выполнять обе не нужно.

### PowerShell

```powershell
py -m pip install openai
# или для JavaScript в папке проекта
npm install openai
```

### Windows CMD

```bat
py -m pip install openai
rem или для JavaScript в папке проекта
npm install openai
```

### macOS

```bash
python3 -m pip install openai
# или для JavaScript в папке проекта
npm install openai
```

### Linux

```bash
python3 -m pip install openai
# или для JavaScript в папке проекта
npm install openai
```

## Готовые примеры

### Python

```python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["ELYSIUM_API_KEY"],
    base_url="https://elysiumai.garden/v1",
)

result = client.chat.completions.create(
    model="your-model-id",
    messages=[{"role": "user", "content": "Объясни API одним предложением"}],
)
print(result.choices[0].message.content)
```

### JavaScript

```javascript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.ELYSIUM_API_KEY,
  baseURL: "https://elysiumai.garden/v1",
});

const result = await client.chat.completions.create({
  model: "your-model-id",
  messages: [{ role: "user", content: "Объясни API одним предложением" }],
});
console.log(result.choices[0].message.content);
```

## Минимальная конфигурация

| Параметр | Значение |
| --- | --- |
| api_key / apiKey | ELYSIUM_API_KEY |
| base_url / baseURL | https://elysiumai.garden/v1 |
| model | ID из GET /v1/models |

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# SillyTavern

Подключите Elysium AI к SillyTavern как Custom (OpenAI-compatible) источник.

https://elysiumai.garden/docs/integrations/sillytavern

## 1. Установите

- Установите и запустите SillyTavern по официальной инструкции на docs.sillytavern.app.

## 2. Откройте подключение к API

- Нажмите значок API Connections (вилка) в верхней панели.
- В API выберите Chat Completion.
- В Chat Completion Source выберите Custom (OpenAI-compatible).

## 3. Заполните поля

| Поле | Значение |
| --- | --- |
| Custom Endpoint (Base URL) | https://elysiumai.garden/v1 |
| Custom API Key | ваш ключ sk-… из Кабинета → API-ключи |
| Модель | выберите из списка или впишите ID, например deepseek/deepseek-v4.1-flash |

> Нажмите Connect. Если ключ верный, SillyTavern загрузит список моделей.

> Не добавляйте /chat/completions к адресу: SillyTavern добавит путь сам.

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Ролевые чаты: основная | deepseek/deepseek-v4.1-flash |
| Лучшее качество текста (дороже) | anthropic/claude-sonnet-5 |
| Самая недорогая | google/gemma-4-31b-it |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## 4. Проверьте, что работает

- Нажмите Test Message или отправьте короткое сообщение в новом чате.
- Пришёл ответ — подключение работает.
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| Ошибка о порядке ролей или системных сообщениях | В настройках подключения установите Prompt Post-Processing в Semi-strict или Strict. |
| Список моделей пустой | Проверьте ключ. Если у ключа включено ограничение моделей, в списке будут только разрешённые. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. Base URL должен быть ровно https://elysiumai.garden/v1 — без /chat/completions на конце и без второго /v1. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# Janitor AI

Подключите Elysium AI к Janitor AI через Proxy с полным адресом /v1/chat/completions.

https://elysiumai.garden/docs/integrations/janitor-ai

## 1. Подготовьте ключ

- Janitor AI работает в браузере — ничего устанавливать не нужно.
- Создайте отдельный ключ в Кабинете → API-ключи. Если включите у него ограничение моделей, ключ будет работать только с выбранными моделями.

## 2. Откройте настройки API

- Откройте чат с персонажем, в меню справа вверху выберите API Settings.
- Перейдите на вкладку Proxy.

## 3. Заполните поля

| Поле | Значение |
| --- | --- |
| Model | выберите Custom и впишите точный ID, например deepseek/deepseek-v4.1-flash |
| Other API/Proxy URL | https://elysiumai.garden/v1/chat/completions |
| API Key | ваш ключ sk-… из Кабинета → API-ключи |

> Нажмите Check API Key/Model, затем Save Settings и обновите страницу.

> Адрес нужен полностью — https://elysiumai.garden/v1/chat/completions. Janitor AI сам ничего не добавляет: с адресом, который заканчивается на /v1, будет ошибка «Network error» или «Failed to fetch».

## Какую модель выбрать

| Задача | Model ID |
| --- | --- |
| Ролевые чаты: основная | deepseek/deepseek-v4.1-flash |
| Лучшее качество текста (дороже) | anthropic/claude-sonnet-5 |
| Самая недорогая | google/gemma-4-31b-it |

> ID актуальны на октябрь 2026. Модели и цены меняются — перед настройкой сверьте ID в каталоге https://elysiumai.garden/models и копируйте его целиком, вместе с частью до «/».

## 4. Проверьте, что работает

- Отправьте персонажу короткое сообщение.
- Пришёл ответ — подключение работает.
- Откройте Кабинет → Analytics: там появится запрос и его стоимость.

## Частые ошибки

Текст ошибки обычно виден в окне клиента. Найдите его в левой колонке.

| Что видите | Что сделать |
| --- | --- |
| Network error · Failed to fetch | Адрес обрывается на /v1. Укажите полностью https://elysiumai.garden/v1/chat/completions. |
| Персонаж не работает через прокси | Этот персонаж не разрешает прокси. Выберите другого. |
| 401 · Invalid token / Token not provided | Ключ вставлен не полностью или с пробелом, отключён, истёк или исчерпал свой бюджет. Скопируйте ключ заново целиком, вместе с sk-, и проверьте его статус и бюджет в Кабинете → API-ключи. |
| 403 · Token has no access to model … | У ключа включено ограничение моделей: он работает только с разрешёнными. Добавьте модель в настройках ключа (поле «Модели») или выберите разрешённую. |
| 403 · insufficient user quota · token quota is not enough | Не хватает средств на балансе аккаунта или остатка бюджета ключа на этот запрос. Пополните баланс или увеличьте бюджет ключа. |
| 404 / 503 · Model … is temporarily unavailable · No available channels … | ID модели указан неточно или модель сейчас недоступна. Скопируйте ID из каталога без изменений или выберите другую модель. |
| 404 без понятного текста · Connection error | Неверный адрес. Укажите полностью https://elysiumai.garden/v1/chat/completions. |
| 429 | Слишком много запросов в минуту. Подождите несколько секунд и не запускайте много агентов параллельно. |

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# OpenClaw

Добавьте Elysium AI как отдельного OpenAI-совместимого провайдера.

https://elysiumai.garden/docs/integrations/openclaw

## Перед настройкой

Сначала создайте ключ и выберите модель в каталоге. В конфигурации ниже замените your-model-id на точный ID, не сокращая его.

## Конфигурация провайдера

### openclaw.json

```json
{
  "models": {
    "providers": {
      "elysium": {
        "baseUrl": "https://elysiumai.garden/v1",
        "apiKey": "${ELYSIUM_API_KEY}",
        "api": "openai-completions",
        "models": [
          { "id": "your-model-id", "name": "Elysium model" }
        ]
      }
    }
  },
  "agents": {
    "defaults": { "model": { "primary": "elysium/your-model-id" } }
  }
}
```

## Проверка

- Перезапустите OpenClaw после изменения конфигурации.
- Убедитесь, что переменная ELYSIUM_API_KEY доступна процессу.
- Если модель не найдена, ещё раз скопируйте ID из каталога без изменений.

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# Hermes Agent

Подключите Elysium AI через мастер Custom endpoint или файл конфигурации Hermes.

https://elysiumai.garden/docs/integrations/hermes-agent

## Самый простой способ

Запустите мастер выбора модели, выберите Custom endpoint и последовательно вставьте базовый URL, ключ и model ID.

| Поле мастера | Значение |
| --- | --- |
| Base URL | https://elysiumai.garden/v1 |
| API key | sk-... |
| Model | точный ID из каталога |

### Terminal

```bash
hermes model
```

## Ручная конфигурация

### ~/.hermes/config.yaml

```yaml
model:
  default: your-model-id
  provider: custom:elysium
  base_url: https://elysiumai.garden/v1

custom_providers:
  - name: elysium
    base_url: https://elysiumai.garden/v1
    api_key: sk-YOUR_KEY_HERE
    model: your-model-id
```

## Запуск

### Terminal

```bash
hermes chat
```

> Если Hermes сообщает, что модель не найдена, проверьте exact model ID через GET /v1/models.

## Не получается?

Сначала спросите ИИ в LibreChat: опишите проблему и приложите текст ошибки — чаще всего он решит её за минуту.

Если не помог — напишите в поддержку.

Если вопрос про наш сервис — оплата, баланс, аккаунт, ключи, ошибки на нашей стороне — сразу пишите в поддержку.

- [Спросить ИИ в LibreChat](https://elysiumai.garden/dashboard/chat): Чат в вашем кабинете. Вставьте текст ошибки и настройки клиента — без API-ключа.
- [Написать в поддержку](https://elysiumai.garden/support): Оплата, баланс, аккаунт, ключи и ошибки на нашей стороне.

> Никому не отправляйте полный API-ключ — ни в чат, ни в поддержку. Достаточно последних четырёх символов.

---

# Лимиты и HTTP 429

Как реагировать на ограничение частоты запросов.

https://elysiumai.garden/docs/limits

## Что означает 429

Сервис временно отклонил запрос из-за превышения количества запросов в минуту. Лимит применяется к аккаунту, поэтому создание дополнительных API-ключей не увеличивает доступный RPM.

## Правильный повтор

- Не повторяйте запрос мгновенно.
- Используйте exponential backoff с небольшой случайной задержкой.
- Ограничьте количество параллельных запросов.
- Если ошибка повторяется постоянно, обратитесь к администратору за изменением RPM.

### Python

```python
import random
import time

def wait_before_retry(attempt: int):
    delay = min(30, 2 ** attempt + random.random())
    time.sleep(delay)
```

---

# Ошибки API

Формат ошибки, основные HTTP-статусы и стратегия повторов.

https://elysiumai.garden/docs/errors

## Формат ответа

Сохраняйте message, code и request ID. Request ID нужен поддержке, чтобы найти конкретный запрос.

### JSON

```json
{
  "error": {
    "message": "Модель временно недоступна. ID: req_example",
    "type": "elyziumai_error",
    "code": "server_error"
  }
}
```

## Что делать с HTTP-кодами

| HTTP | Причина | Действие |
| --- | --- | --- |
| 400 | Ошибка в JSON или параметрах | Исправить тело запроса |
| 401 | Ключ неверный, отключён, истёк или его бюджет исчерпан | Проверить Authorization, статус и бюджет ключа |
| 403 · insufficient_user_quota | Недостаточно средств на балансе аккаунта | Пополнить баланс |
| 403 · pre_consume_token_quota_failed | Остатка бюджета ключа не хватает на этот запрос | Увеличить бюджет ключа |
| 403 | Нет доступа к модели или IP не разрешён для ключа | Проверить модель и ограничения ключа |
| 404 | Маршрут или модель не найдены | Проверить URL и model ID |
| 429 | Превышен RPM | Повторить с задержкой |
| 500 | Внутренняя ошибка | Повторить позже |
| 502 / 503 / 504 | Временная недоступность | Повторить с задержкой или выбрать другую модель |

## Когда повторять

- Повторяйте 429, 500, 502, 503 и 504 с задержкой.
- Не повторяйте 400, 401, 403 и 404 без изменения запроса или состояния аккаунта.
- Ограничивайте число повторов, чтобы не создавать бесконечный цикл.

---

# Решение ошибок и совместимость

Поиск по реальным API-ошибкам, проверка совместимости моделей и готовые конфигурации для IDE, SDK и no-code инструментов.

https://elysiumai.garden/docs/troubleshooting

## Найдите ошибку по её тексту

Вставьте фрагмент сообщения или выберите клиент. Поиск выполняется в браузере и не отправляет текст ошибки на сервер.

[Найдите ошибку по её тексту](https://elysiumai.garden/docs/troubleshooting#search)

## Генератор совместимой конфигурации

Выберите клиент и тип модели. Генератор покажет Base URL, рекомендуемый протокол и безопасный минимальный запрос.

[Генератор совместимой конфигурации](https://elysiumai.garden/docs/troubleshooting#configurator)

## Как мы поддерживаем новые модели

- Совместимость определяется по протоколу и возможностям модели, а не только по словам GPT, Claude, Gemini или Opus в имени.
- Для неизвестных моделей применяется консервативный профиль, после чего возможности уточняются по метаданным и ответам upstream.
- Безопасный retry допускается только для детерминированной параметрической ошибки и не должен повторять уже выполненный платный запрос.

- [Автоматическое определение будущих моделей](https://elysiumai.garden/docs/troubleshooting/future-model-capability-detection): Как добавление условного Opus 4.7 не должно требовать нового hardcode.

---

# Claude: thinking.enabled is not supported

Почему Claude отклоняет thinking.enabled и как использовать adaptive thinking без ошибки 400.

https://elysiumai.garden/docs/troubleshooting/claude-thinking-enabled-not-supported

## Текст ошибки

"thinking.enabled" is not supported for this model. Use "thinking.adaptive" and "output_config.effort"

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Клиент отправляет старый формат управления thinking в модель, которая принимает adaptive thinking. Совместимый шлюз должен нормализовать этот параметр по возможностям конкретной модели.

| Клиенты | Модели |
| --- | --- |
| Claude Desktop, Claude Code, Cursor | Claude Opus, Claude Sonnet |

## Как проверить

- Проверьте точный model ID в журнале запроса.
- Убедитесь, что клиент не дублирует thinking в extra_body.
- Повторите запрос без thinking, чтобы отделить проблему параметра от проблемы модели.

## Как исправить

- Обновите Claude Desktop или интеграцию до актуальной версии.
- Для новых Claude используйте adaptive thinking и effort.
- Если клиент невозможно обновить, удалите thinking.enabled: ElysiumAI выполнит совместимую нормализацию поддерживаемых полей.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

## Рабочий пример

### Пример

```json
{
  "model": "claude-opus",
  "messages": [{"role": "user", "content": "Проверь запрос"}],
  "thinking": {"type": "adaptive"},
  "output_config": {"effort": "high"}
}
```

## Связанные материалы

- [Claude: model does not support the effort parameter](https://elysiumai.garden/docs/troubleshooting/claude-effort-parameter-not-supported): Как убрать effort для моделей Claude, которые не поддерживают управление глубиной рассуждений.
- [Как автоматически поддерживать новые модели](https://elysiumai.garden/docs/troubleshooting/future-model-capability-detection): Почему условный Claude Opus 4.7 должен определяться по возможностям, а не по жёсткому списку имён.

---

# Claude: model does not support the effort parameter

Как убрать effort для моделей Claude, которые не поддерживают управление глубиной рассуждений.

https://elysiumai.garden/docs/troubleshooting/claude-effort-parameter-not-supported

## Текст ошибки

This model does not support the 'effort' parameter. Please remove it from your request.

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Один клиентский профиль применяется к разным поколениям моделей. Поле effort допустимо только там, где upstream объявляет соответствующую возможность.

| Клиенты | Модели |
| --- | --- |
| Claude Desktop, Claude Code, OpenAI SDK | Claude Haiku, Claude Sonnet, Claude Opus |

## Как проверить

- Сравните ошибку с запросом без effort.
- Проверьте, не добавляет ли effort IDE автоматически.
- Убедитесь, что псевдоним модели указывает на ожидаемое поколение.

## Как исправить

- Удаляйте effort для моделей без этой возможности.
- Не привязывайте совместимость к слову opus или sonnet в имени.
- Используйте автоматическую нормализацию ElysiumAI, которая учитывает capability-профиль и ответ upstream.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

## Рабочий пример

### Пример

```json
{
  "model": "claude-sonnet",
  "messages": [{"role": "user", "content": "Ответь кратко"}]
}
```

## Связанные материалы

- [Claude: thinking.enabled is not supported](https://elysiumai.garden/docs/troubleshooting/claude-thinking-enabled-not-supported): Почему Claude отклоняет thinking.enabled и как использовать adaptive thinking без ошибки 400.
- [Как автоматически поддерживать новые модели](https://elysiumai.garden/docs/troubleshooting/future-model-capability-detection): Почему условный Claude Opus 4.7 должен определяться по возможностям, а не по жёсткому списку имён.

---

# Как подключить Claude Desktop к совместимому API

Base URL, API key, модель и диагностика подключения Claude Desktop к ElysiumAI.

https://elysiumai.garden/docs/troubleshooting/claude-desktop-custom-api-setup

## Текст ошибки

Claude Desktop returns 400, 401 or model not found after adding a custom provider

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Чаще всего клиенту передают URL без нужного API-префикса, неверный ключ или model ID, отсутствующий в каталоге.

| Клиенты | Модели |
| --- | --- |
| Claude Desktop | Claude Opus, Claude Sonnet, Claude Haiku |

## Как проверить

- Откройте /v1/models тем же ключом.
- Скопируйте model ID из каталога без изменения регистра.
- Проверьте, какой протокол ожидает конкретная сборка Claude Desktop.

## Как исправить

- Используйте генератор конфигурации ниже.
- Для OpenAI-compatible режима укажите https://elysiumai.garden/v1.
- Не вставляйте /chat/completions в поле Base URL.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

## Связанные материалы

- [401 Invalid API key](https://elysiumai.garden/docs/troubleshooting/invalid-api-key-401): Полная проверка Bearer-заголовка, статуса ключа и неправильного Base URL.
- [404 Model not found](https://elysiumai.garden/docs/troubleshooting/model-not-found-404): Как проверить точный model ID, доступ ключа и устаревший alias.
- [400 Unknown or unsupported parameter](https://elysiumai.garden/docs/troubleshooting/unknown-parameter-400): Универсальная диагностика несовместимого поля без удаления полезных возможностей запроса.

---

# Anthropic API: отсутствует anthropic-version

Что делать с ошибкой обязательного заголовка anthropic-version в Anthropic-compatible запросах.

https://elysiumai.garden/docs/troubleshooting/anthropic-version-header-missing

## Текст ошибки

anthropic-version header is required

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Нативный Anthropic Messages API требует версию протокола, а OpenAI-compatible endpoint использует другой набор заголовков.

| Клиенты | Модели |
| --- | --- |
| Claude Code, cURL, Python SDK | Claude |

## Как проверить

- Определите, используете ли вы /anthropic/v1/messages или /v1/chat/completions.
- Не смешивайте x-api-key и Bearer-схемы из разных протоколов.
- Проверьте заголовки через безопасный request dump без ключа.

## Как исправить

- Добавьте anthropic-version для нативного Anthropic endpoint.
- Либо переключите клиент на OpenAI-compatible endpoint и его формат.
- Используйте один протокол на весь запрос.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

## Рабочий пример

### Пример

```bash
curl https://elysiumai.garden/anthropic/v1/messages \
  -H "x-api-key: sk-..." \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json"
```

---

# max_tokens или max_completion_tokens

Как выбрать правильный лимит ответа для GPT, reasoning-моделей и OpenAI-compatible API.

https://elysiumai.garden/docs/troubleshooting/openai-max-tokens-vs-max-completion-tokens

## Текст ошибки

Unsupported parameter: max_tokens

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Новые reasoning-модели могут принимать max_completion_tokens или max_output_tokens вместо старого max_tokens.

| Клиенты | Модели |
| --- | --- |
| OpenAI SDK, Codex, Cursor | GPT, o-series, Reasoning models |

## Как проверить

- Уточните endpoint: Chat Completions или Responses.
- Проверьте документацию выбранной модели.
- Удалите все лимиты и повторите минимальный запрос.

## Как исправить

- Для Chat Completions reasoning-моделей используйте max_completion_tokens.
- Для Responses API используйте max_output_tokens.
- Не отправляйте несколько эквивалентных лимитов одновременно.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# Role developer is not supported

Почему некоторые модели не принимают роль developer и когда заменять её на system.

https://elysiumai.garden/docs/troubleshooting/openai-developer-role-not-supported

## Текст ошибки

Unsupported value: 'developer'. Supported values are: 'system', 'assistant', 'user'

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Клиент использует новую семантику ролей с моделью или upstream, поддерживающими только старый набор.

| Клиенты | Модели |
| --- | --- |
| OpenAI SDK, Codex, LangChain | GPT, Legacy chat models |

## Как проверить

- Найдите сообщение с role=developer.
- Проверьте endpoint и фактический upstream.
- Повторите запрос с ролью system.

## Как исправить

- Для старой модели замените developer на system.
- Для новых моделей оставляйте developer, если это указано в capability-профиле.
- Не преобразовывайте tool и assistant сообщения в system.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# response_format json_schema не поддерживается

Диагностика Structured Outputs и безопасный fallback на json_object или обычный текст.

https://elysiumai.garden/docs/troubleshooting/openai-json-schema-response-format

## Текст ошибки

response_format.type json_schema is not supported

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Клиент запросил строгую JSON-схему у модели, которая поддерживает только JSON mode или вообще не гарантирует JSON.

| Клиенты | Модели |
| --- | --- |
| OpenAI SDK, LangChain, n8n | GPT, DeepSeek, Qwen |

## Как проверить

- Проверьте поддержку Structured Outputs у model ID.
- Упростите schema и уберите strict.
- Проверьте минимальный запрос с json_object.

## Как исправить

- Используйте json_schema только для моделей с соответствующей возможностью.
- Сделайте fallback на json_object.
- Валидируйте ответ в приложении и повторяйте запрос при нарушении схемы.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# parallel_tool_calls is not supported

Как исправить ошибку parallel_tool_calls в агентских клиентах и моделях без параллельных tools.

https://elysiumai.garden/docs/troubleshooting/openai-parallel-tool-calls-unsupported

## Текст ошибки

This model does not support the 'parallel_tool_calls' parameter

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

IDE или агент всегда отправляет управление параллельными tools, хотя выбранная модель не поддерживает поле.

| Клиенты | Модели |
| --- | --- |
| Codex, Cursor, LangChain | GPT, Claude, Open models |

## Как проверить

- Повторите запрос без tools.
- Затем добавьте одну функцию без parallel_tool_calls.
- Проверьте capability-профиль модели.

## Как исправить

- Удалите parallel_tool_calls для неподдерживаемых моделей.
- Не отключайте сами tools, если модель поддерживает function calling.
- Включайте параметр только по capability-флагу.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# stream_options.include_usage вызывает 400

Почему upstream не принимает usage в SSE-потоке и как сохранить streaming.

https://elysiumai.garden/docs/troubleshooting/openai-stream-include-usage-unsupported

## Текст ошибки

Unknown parameter: stream_options

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Некоторые совместимые провайдеры реализуют SSE, но не дополнительный usage chunk.

| Клиенты | Модели |
| --- | --- |
| OpenAI SDK, Cursor, Open WebUI | OpenAI-compatible models |

## Как проверить

- Проверьте обычный non-stream запрос.
- Проверьте stream=true без stream_options.
- Убедитесь, что клиент не требует финальный usage chunk.

## Как исправить

- Удалите stream_options, сохранив stream=true.
- Получайте usage из биллингового журнала.
- Добавляйте include_usage только для подтверждённых моделей.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# Codex и Responses API через совместимый шлюз

Настройка Codex для моделей с Responses API и диагностика несовместимого endpoint.

https://elysiumai.garden/docs/troubleshooting/codex-responses-api-setup

## Текст ошибки

Codex sends Responses API fields to a Chat Completions-only model

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Codex использует Responses API и инструменты, а выбранный маршрут или модель реализуют только Chat Completions.

| Клиенты | Модели |
| --- | --- |
| Codex | GPT, Reasoning models |

## Как проверить

- Проверьте поддержку /v1/responses.
- Отправьте минимальный input без tools.
- Проверьте model ID через /v1/models.

## Как исправить

- Выберите модель с поддержкой Responses API.
- Используйте Base URL без добавления endpoint вручную.
- Для Chat-only модели используйте клиент, умеющий Chat Completions.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# Gemini: invalid system_instruction

Как передавать системную инструкцию в Gemini-compatible и OpenAI-compatible режимах.

https://elysiumai.garden/docs/troubleshooting/gemini-system-instruction-invalid

## Текст ошибки

Invalid JSON payload received. Unknown name system_instruction

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

В запросе смешаны поля OpenAI и нативного Gemini GenerateContent API.

| Клиенты | Модели |
| --- | --- |
| Gemini CLI, Google GenAI SDK, OpenAI SDK | Gemini |

## Как проверить

- Определите активный endpoint.
- Сравните структуру contents/messages.
- Удалите system_instruction и проверьте базовый запрос.

## Как исправить

- В нативном Gemini формате используйте systemInstruction ожидаемой структуры.
- В OpenAI-compatible формате используйте system/developer message.
- Не отправляйте оба варианта одновременно.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# Gemini safetySettings: неверный формат

Исправление категорий и порогов safetySettings без смешивания форматов SDK.

https://elysiumai.garden/docs/troubleshooting/gemini-safety-settings-format

## Текст ошибки

Invalid value at safetySettings or unknown enum value

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Названия полей и enum отличаются между версиями Gemini API и SDK.

| Клиенты | Модели |
| --- | --- |
| Gemini CLI, Google GenAI SDK | Gemini |

## Как проверить

- Зафиксируйте версию используемого SDK.
- Проверьте регистр category и threshold.
- Повторите запрос без safetySettings.

## Как исправить

- Используйте структуру из той же версии API, что и endpoint.
- Не переносите camelCase-поля в snake_case API автоматически.
- Добавляйте настройки безопасности только после успешного базового запроса.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# DeepSeek Reasoner: несовместимые параметры

Какие chat-параметры часто отклоняет reasoning-модель DeepSeek и как построить fallback.

https://elysiumai.garden/docs/troubleshooting/deepseek-reasoner-unsupported-parameters

## Текст ошибки

Unsupported parameter for reasoning model

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Обычный chat-профиль отправляет temperature, top_p, logprobs или другие параметры, которые reasoning-вариант не использует.

| Клиенты | Модели |
| --- | --- |
| OpenAI SDK, Cursor, n8n | DeepSeek Reasoner |

## Как проверить

- Сведите тело к model и messages.
- Добавляйте поля по одному.
- Проверьте фактический ID reasoning-модели.

## Как исправить

- Удаляйте sampling-параметры, запрещённые моделью.
- Храните capability-профиль отдельно от семейства DeepSeek.
- Не копируйте настройки обычной chat-модели в reasoner.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# Grok: параметры live search не поддерживаются

Как отличить встроенный web search Grok от tool calling и не получить unknown parameter.

https://elysiumai.garden/docs/troubleshooting/grok-search-parameters-unsupported

## Текст ошибки

Unknown parameter related to search or sources

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Клиент использует параметры из другой версии xAI API или пытается передать встроенный search через OpenAI tools.

| Клиенты | Модели |
| --- | --- |
| OpenAI SDK, LangChain | Grok |

## Как проверить

- Проверьте версию endpoint.
- Запустите запрос без search.
- Проверьте, возвращает ли выбранная модель citations.

## Как исправить

- Используйте поля поиска, поддерживаемые конкретным upstream.
- Не смешивайте provider-native search и function tools.
- При отсутствии встроенного поиска вызывайте внешний search tool на стороне приложения.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# Qwen enable_thinking: совместимость клиентов

Как включать thinking у Qwen без передачи vendor-поля неподдерживаемым моделям.

https://elysiumai.garden/docs/troubleshooting/qwen-enable-thinking-compatibility

## Текст ошибки

Unknown parameter: enable_thinking

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Vendor-параметр Qwen передаётся через общий профиль всем моделям или не в том уровне JSON.

| Клиенты | Модели |
| --- | --- |
| Qwen Code, OpenAI SDK, Cursor | Qwen |

## Как проверить

- Проверьте документацию конкретного Qwen endpoint.
- Повторите запрос без enable_thinking.
- Проверьте extra_body в SDK.

## Как исправить

- Передавайте enable_thinking только Qwen-моделям, где он заявлен.
- Используйте extra_body, если SDK не знает поле.
- Для других моделей преобразуйте намерение в их собственный параметр или удалите поле.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# Kimi: context length exceeded

Как посчитать реальный контекст Kimi с system prompt, tools и ожидаемым ответом.

https://elysiumai.garden/docs/troubleshooting/kimi-context-length-exceeded

## Текст ошибки

This model's maximum context length is exceeded

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

К лимиту относятся не только видимые сообщения, но и system prompt, описания tools, изображения и резерв под ответ.

| Клиенты | Модели |
| --- | --- |
| Cursor, Open WebUI, OpenAI SDK | Kimi |

## Как проверить

- Сравните prompt_tokens в журнале.
- Отключите tools и повторите запрос.
- Уменьшите max_tokens и историю.

## Как исправить

- Обрезайте старые сообщения или делайте summary.
- Сократите JSON Schema инструментов.
- Оставляйте запас под completion и служебные токены.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# Как автоматически поддерживать новые модели

Почему условный Claude Opus 4.7 должен определяться по возможностям, а не по жёсткому списку имён.

https://elysiumai.garden/docs/troubleshooting/future-model-capability-detection

## Текст ошибки

A newly added model rejects a parameter inherited from a model-name rule

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Жёсткие проверки по названию быстро устаревают. Надёжная схема сочетает явные capability-метаданные, семейство протокола и безопасный retry после параметрической ошибки.

| Клиенты | Модели |
| --- | --- |
| Любой клиент | Новые и неизвестные модели |

## Как проверить

- Проверьте метаданные канала и модели.
- Посмотрите, какие параметры реально отклонил upstream.
- Убедитесь, что fallback не повторяет платный успешный запрос.

## Как исправить

- Сначала используйте явные capabilities модели.
- Для неизвестной модели применяйте консервативный профиль протокола.
- При детерминированной 400-ошибке удаляйте только названный несовместимый параметр и выполняйте один безопасный retry.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

## Связанные материалы

- [400 Unknown or unsupported parameter](https://elysiumai.garden/docs/troubleshooting/unknown-parameter-400): Универсальная диагностика несовместимого поля без удаления полезных возможностей запроса.
- [Claude: thinking.enabled is not supported](https://elysiumai.garden/docs/troubleshooting/claude-thinking-enabled-not-supported): Почему Claude отклоняет thinking.enabled и как использовать adaptive thinking без ошибки 400.

---

# Cursor: model not found с custom API

Диагностика model ID, Base URL и собственного провайдера в Cursor.

https://elysiumai.garden/docs/troubleshooting/cursor-custom-api-model-not-found

## Текст ошибки

The model does not exist or you do not have access to it

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Cursor отправляет отображаемое имя вместо точного model ID либо обращается к другому Base URL.

| Клиенты | Модели |
| --- | --- |
| Cursor | Любые |

## Как проверить

- Скопируйте ID из /v1/models.
- Проверьте, не добавляет ли Cursor префикс провайдера.
- Сопоставьте request ID с серверным журналом.

## Как исправить

- Используйте точный ID из каталога.
- Укажите https://elysiumai.garden/v1 как Base URL.
- Создайте отдельный профиль для моделей с другим протоколом.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# Windsurf, Zed и JetBrains: настройка API

Как подключить Elysium AI к Zed и JetBrains AI Assistant и почему в Windsurf нужен путь через расширение.

https://elysiumai.garden/docs/troubleshooting/windsurf-zed-jetbrains-api-setup

## Текст ошибки

IDE не подключается, не показывает модели Elysium AI или получает 404

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Zed и JetBrains AI Assistant подключаются к OpenAI-compatible провайдеру с адресом https://elysiumai.garden/v1. Встроенный Cascade в Windsurf собственный адрес API не принимает, поэтому модели Elysium AI в нём не появятся — нужен Cline или Roo Code внутри Windsurf.

| Клиенты | Модели |
| --- | --- |
| Windsurf, Zed, JetBrains | OpenAI-compatible models |

## Как проверить

- Zed: в agent: open settings → LLM Providers есть провайдер OpenAI-compatible с API URL https://elysiumai.garden/v1, а ключ введён в окне провайдера, не в settings.json.
- JetBrains: в Settings → Tools → AI Assistant → Providers & API keys → Third-party AI providers выбран OpenAI-compatible с URL https://elysiumai.garden/v1, и Test Connection проходит.
- Windsurf: модель ищите не в Cascade, а в панели расширения Cline или Roo Code.
- Адрес указан без /chat/completions на конце и без второго /v1.

## Как исправить

- Zed: укажите API URL https://elysiumai.garden/v1 и точный Model ID из каталога, например anthropic/claude-sonnet-5.
- JetBrains: укажите URL https://elysiumai.garden/v1 и ключ, нажмите Test Connection и Apply, затем выберите модели в Models Assignment.
- Windsurf: установите Cline или Roo Code, в API Provider выберите OpenAI Compatible и укажите Base URL https://elysiumai.garden/v1, ключ и Model ID.
- Если в адресе /v1/v1 или ответ 404, оставьте ровно один /v1 и уберите /chat/completions.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

## Пошаговые инструкции

- [Zed](https://elysiumai.garden/docs/integrations/zed): OpenAI-compatible provider в настройках агента.
- [JetBrains AI Assistant](https://elysiumai.garden/docs/integrations/jetbrains): Third-party AI providers → OpenAI-compatible.
- [Windsurf](https://elysiumai.garden/docs/integrations/windsurf): Почему Cascade не подключается и как работать через расширение.

---

# Генерация изображений: неверный endpoint

Когда использовать /v1/images/generations, Chat Completions или vendor endpoint.

https://elysiumai.garden/docs/troubleshooting/image-generation-wrong-endpoint

## Текст ошибки

Model does not support this endpoint

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Модель изображений вызвана через текстовый endpoint или наоборот; разные провайдеры возвращают URL, base64 или async task.

| Клиенты | Модели |
| --- | --- |
| OpenAI SDK, n8n, Dify | Image generation models |

## Как проверить

- Проверьте тип модели в каталоге.
- Сравните endpoint с карточкой модели.
- Проверьте обязательные size и response_format.

## Как исправить

- Для OpenAI-compatible image models используйте /v1/images/generations.
- Для мультимодального chat-редактирования следуйте карточке модели.
- Для async video/image API обрабатывайте task ID и polling.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# Audio: input format is not supported

Форматы multipart, MIME type и ограничения speech-to-text и text-to-speech.

https://elysiumai.garden/docs/troubleshooting/audio-input-format-not-supported

## Текст ошибки

Invalid file format or unsupported audio format

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Файл передан как JSON/base64 вместо multipart либо его расширение не соответствует фактическому MIME type.

| Клиенты | Модели |
| --- | --- |
| OpenAI SDK, n8n | Speech-to-text, Text-to-speech |

## Как проверить

- Проверьте Content-Type запроса.
- Откройте файл локальным декодером.
- Попробуйте короткий mp3 или wav без метаданных.

## Как исправить

- Для transcription используйте multipart/form-data.
- Передавайте поддерживаемый MIME type и неповреждённый файл.
- Для TTS отправляйте JSON, а бинарный ответ сохраняйте без преобразования в текст.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# Видео API: где искать результат

Как отличить синхронный videos[].url от async task, polling и временного URL.

https://elysiumai.garden/docs/troubleshooting/video-generation-task-polling

## Текст ошибки

Response has no expected video URL

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Формат зависит от модели: Gemini Omni Flash через /v1/video/generations возвращает готовый videos[].url синхронно, а асинхронные модели сначала возвращают task ID.

| Клиенты | Модели |
| --- | --- |
| n8n, Python, JavaScript | Gemini Omni Flash, Video generation models |

## Как проверить

- Для google/gemini-omni-flash-preview ищите videos[0].url в исходном ответе.
- Если ответ содержит task ID, используйте status endpoint из документации выбранной модели.
- Проверьте, что вызван endpoint с карточки модели, а таймаут клиента не оборвал долгий запрос.

## Как исправить

- Для Omni не запускайте polling: дождитесь исходного POST с таймаутом не меньше 120 секунд.
- Для async-моделей опрашивайте status с ограниченным backoff и обрабатывайте queued, processing, succeeded и failed.
- Скачайте MP4 до истечения временного URL.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# Embeddings: dimensions is not supported

Почему размерность embedding нельзя произвольно менять для любой модели.

https://elysiumai.garden/docs/troubleshooting/embeddings-dimensions-unsupported

## Текст ошибки

This model does not support the dimensions parameter

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Поле dimensions поддерживается только частью embedding-моделей; индекс в vector DB также должен иметь совпадающий размер.

| Клиенты | Модели |
| --- | --- |
| OpenAI SDK, LangChain, Dify | Embedding models |

## Как проверить

- Удалите dimensions и измерьте длину вектора.
- Проверьте размерность коллекции vector DB.
- Убедитесь, что вызывается /v1/embeddings.

## Как исправить

- Не отправляйте dimensions неподдерживаемой модели.
- Создайте новую коллекцию при смене размерности.
- Не смешивайте векторы разных моделей в одном индексе.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# Rerank: endpoint not found

Почему rerank не является embeddings и как настроить маршрут в RAG-инструментах.

https://elysiumai.garden/docs/troubleshooting/rerank-endpoint-not-found

## Текст ошибки

404 on /v1/rerank or model does not support embeddings

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Клиент предполагает Cohere-compatible rerank endpoint, а провайдер экспонирует другой маршрут или только embeddings.

| Клиенты | Модели |
| --- | --- |
| Dify, LangChain, Open WebUI | Rerank models |

## Как проверить

- Проверьте endpoints модели в каталоге.
- Не вызывайте reranker через /v1/embeddings.
- Проверьте формат query/documents.

## Как исправить

- Настройте отдельный rerank provider.
- При отсутствии rerank endpoint используйте embedding similarity как fallback.
- Сохраняйте исходный порядок документов для корректного сопоставления score.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# LangChain: неверный openai_api_base

Настройка base_url в новых и старых пакетах LangChain без двойного /v1.

https://elysiumai.garden/docs/troubleshooting/langchain-openai-base-url

## Текст ошибки

404 Not Found or connection error after configuring LangChain

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

В разных версиях пакета используются base_url, openai_api_base или client options; endpoint может удваиваться.

| Клиенты | Модели |
| --- | --- |
| LangChain Python, LangChain JS | OpenAI-compatible models |

## Как проверить

- Проверьте версии langchain и integration package.
- Выведите итоговый URL без ключа.
- Проверьте соединение чистым OpenAI SDK.

## Как исправить

- Используйте параметр, соответствующий установленной версии.
- Задайте https://elysiumai.garden/v1 один раз.
- Зафиксируйте версии зависимостей в lock-файле.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# n8n OpenAI node возвращает 401

Проверка credentials, Base URL и заголовка Authorization в n8n.

https://elysiumai.garden/docs/troubleshooting/n8n-openai-401

## Текст ошибки

401 Incorrect API key provided

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Credential привязан не к тому node, ключ содержит пробел или n8n отправляет запрос на стандартный OpenAI URL.

| Клиенты | Модели |
| --- | --- |
| n8n | OpenAI-compatible models |

## Как проверить

- Откройте credential, используемый именно этим node.
- Создайте новый ключ без лишних пробелов.
- Проверьте Base URL в credential и operation.

## Как исправить

- Укажите ElysiumAI Base URL в custom credential.
- Не добавляйте слово Bearer в поле ключа, если node делает это сам.
- Пересохраните workflow после смены credential.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# Dify не проходит проверку custom provider

Как подобрать schema, model type и endpoint для LLM, embeddings и rerank в Dify.

https://elysiumai.garden/docs/troubleshooting/dify-custom-provider-model-validation

## Текст ошибки

Credentials validation failed

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Dify валидирует не только ключ, но и тип модели отдельным тестовым запросом. Chat ID в поле embeddings закономерно не проходит.

| Клиенты | Модели |
| --- | --- |
| Dify | Chat, Embeddings, Rerank |

## Как проверить

- Выберите правильный provider type.
- Проверьте model ID и endpoint отдельно.
- Посмотрите тело validation request в серверном журнале.

## Как исправить

- Создайте отдельные credentials для LLM, embeddings и rerank.
- Укажите точный model ID из каталога.
- Не используйте chat-модель как embedding provider.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# Open WebUI не показывает модели

Диагностика /v1/models, Docker network и OpenAI API connections в Open WebUI.

https://elysiumai.garden/docs/troubleshooting/open-webui-no-models

## Текст ошибки

No models found

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Контейнер Open WebUI не может достучаться до Base URL, либо ключ не имеет доступа к каталогу.

| Клиенты | Модели |
| --- | --- |
| Open WebUI | OpenAI-compatible models |

## Как проверить

- Выполните curl /v1/models из контейнера.
- Не используйте localhost для сервиса на другом хосте.
- Проверьте ключ и фильтры моделей.

## Как исправить

- Укажите публичный https://elysiumai.garden/v1 или доступное сетевое имя.
- Перезапустите connection после изменения.
- Проверьте, что UI не скрывает модели собственным allowlist.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# 401 Invalid API key

Полная проверка Bearer-заголовка, статуса ключа и неправильного Base URL.

https://elysiumai.garden/docs/troubleshooting/invalid-api-key-401

## Текст ошибки

401 Unauthorized or Incorrect API key provided

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Запрос не содержит рабочий ключ ElysiumAI, ключ отключён, истёк, его бюджет исчерпан либо ключ отправляется на другой сервис.

| Клиенты | Модели |
| --- | --- |
| Любой клиент | Любые |

## Как проверить

- Проверьте Authorization: Bearer sk-... без кавычек.
- Создайте отдельный тестовый ключ.
- Выполните GET /v1/models тем же ключом.

## Как исправить

- Не вставляйте Bearer в поле, где SDK добавляет его сам.
- Удалите пробелы и переносы из секрета.
- Никогда не присылайте полный ключ в поддержку; достаточно префикса и request ID.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# 404 Model not found

Как проверить точный model ID, доступ ключа и устаревший alias.

https://elysiumai.garden/docs/troubleshooting/model-not-found-404

## Текст ошибки

The model does not exist or you do not have access to it

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

ID отсутствует в текущем каталоге, введён с ошибкой или скрыт ограничениями API-ключа.

| Клиенты | Модели |
| --- | --- |
| Любой клиент | Любые |

## Как проверить

- Получите актуальный /v1/models.
- Сравните model посимвольно.
- Проверьте ограничения ключа в Dashboard.

## Как исправить

- Скопируйте ID из каталога.
- Обновите сохранённый alias в IDE.
- Выберите доступную модель того же класса.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# 400 Unknown or unsupported parameter

Универсальная диагностика несовместимого поля без удаления полезных возможностей запроса.

https://elysiumai.garden/docs/troubleshooting/unknown-parameter-400

## Текст ошибки

Unknown parameter, unsupported parameter or extra fields not permitted

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Клиент отправляет поле из другого протокола, другой версии API или capability-профиля модели.

| Клиенты | Модели |
| --- | --- |
| Любой клиент | Любые |

## Как проверить

- Сохраните точное имя поля из ошибки.
- Повторите минимальный запрос.
- Добавляйте опции обратно по одной.

## Как исправить

- Удаляйте только названное неподдерживаемое поле.
- Не делайте бесконечные автоматические retry.
- Храните совместимость как данные по model capabilities, а не как список строковых исключений.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

## Связанные материалы

- [Как автоматически поддерживать новые модели](https://elysiumai.garden/docs/troubleshooting/future-model-capability-detection): Почему условный Claude Opus 4.7 должен определяться по возможностям, а не по жёсткому списку имён.

---

# 429 Rate limit: правильный retry

Exponential backoff, jitter и различие RPM, TPM и лимита параллельности.

https://elysiumai.garden/docs/troubleshooting/rate-limit-429-retry

## Текст ошибки

429 Too Many Requests

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Превышен лимит запросов, токенов или одновременных соединений; немедленный повтор усиливает перегрузку.

| Клиенты | Модели |
| --- | --- |
| Python SDK, JavaScript SDK, IDE | Любые |

## Как проверить

- Сохраните response headers и request ID.
- Определите RPM, TPM или concurrency.
- Проверьте, не повторяют ли запрос одновременно SDK и ваше приложение.

## Как исправить

- Используйте bounded exponential backoff с jitter.
- Ограничьте локальную конкурентность.
- Не повторяйте 400/401/403 тем же механизмом.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.

---

# SSE stream: JSON parse error

Почему нельзя парсить весь streaming response как один JSON и как обрабатывать data chunks.

https://elysiumai.garden/docs/troubleshooting/sse-stream-parsing-error

## Текст ошибки

Unexpected token 'd', "data: ..." is not valid JSON

> Не публикуйте API-ключ, полный request body с секретами или персональные данные. Для поддержки сохраните request ID и время запроса.

## Почему это происходит

Ответ text/event-stream разбирается как application/json или chunks склеиваются без учёта границ событий.

| Клиенты | Модели |
| --- | --- |
| JavaScript, Python, IDE | Streaming models |

## Как проверить

- Проверьте Content-Type.
- Отключите stream и сравните ответ.
- Посмотрите сырые строки data: без преобразования.

## Как исправить

- Используйте SSE parser или официальный SDK.
- Парсите JSON только после удаления data: для каждого события.
- Корректно завершайте поток по [DONE] или финальному событию протокола.

> После исправления сначала отправьте короткий тестовый запрос. Затем верните tools, streaming и дополнительные параметры по одному.
