ДокументацияПоддержка
API

Служебные API

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

Все руководства (.md)

Когда использовать служебные 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.

1X-Elysium-Provider-Prompt-Tokens: 6002 3: x-elysium-provider-prompt-tokens=600
Это диагностическая оценка, а не доказательство добавленного system prompt: способы подсчёта токенов и обёртки провайдера могут отличаться. Отсутствие поля не доказывает отсутствие скрытого промпта. Оценка не меняет usage, тариф или списание.

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

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

Поле / параметрЗначение
balanceОстаток кошелька в USD
total_spentНакопленный расход аккаунта в USD
1curl "https://elysiumai.garden/v1/balance"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
Применяются общий API-лимит и защита по IP для balance. Обычная авторизация отклоняет выключенные, истёкшие и исчерпанные ключи; бесплатность вызова не отменяет проверку ключа.

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

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

Поле / параметрЗначение
data[].id / idID для поля model
created / owned_byВремя создания в Unix seconds и публичный владелец
supported_endpoint_typesПоддерживаемые форматы вызовов
reasoning_supportedПоддержка reasoning; supported_reasoning_efforts появляется, если известны режимы
is_availableДоступность в каталоге; не гарантия успешности конкретной операции
token_multiplierМетаданные каталога, не денежный тариф; цены берите из model-options
1curl "https://elysiumai.garden/v1/models"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
Оба пути используют защиту models по IP. Для неизвестной модели одиночный GET может вернуть HTTP 200 с объектом error: проверяйте тело ответа.

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

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

Поле / параметрЗначение
model_id / display_nameID и название семейства
options[].id / label / pricing_modeВызываемый ID, название варианта и режим цены
input_price_per_m / output_price_per_mUSD за 1 млн входных / выходных токенов
cache_read_price_per_m / cache_write_price_per_mUSD за 1 млн cache read / write токенов; если настроены
request_price / request_pricesЦена запроса или цены по диапазонам длины; если применимо
image_output_price / video_*_price_per_secondUSD за изображение или секунду видео; если применимо
media_ratesСтавки по operation, component, parameters, unit и usd; included — включённый объём
1curl "https://elysiumai.garden/v1/model-options"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
Использует ту же защиту и общее окно 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Нормализованные параметры операции
1curl "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"}}'
Применяется 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 провайдера может отличаться
1curl "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!"}]}'
Применяются 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_quotatrue: отдельный бюджет не ограничен; это не бесконечный баланс аккаунта
data.rpm_limitЛимит ключа в запросах в минуту; 0 — отдельный лимит не задан
data.model_limits / model_limits_enabledКарта разрешённых моделей и признак её применения
data.expires_atUnix seconds; 0 — без срока
data.name / objectНазвание ключа и тип token_usage
1curl "https://elysiumai.garden/api/usage/token/"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
Применяются общий 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 / cursorlimit: 1–100, по умолчанию 50. cursor: положительный ID; передайте next_cursor из предыдущей страницы
data.items[]Списания и возвраты по убыванию ID
id / created_at / request_id / modelID записи, время Unix seconds, ID запроса и модель
kind / amount_usd / quotacharge или refund; сумма в USD и quota. Возвраты отрицательные
prompt_tokens / completion_tokens / cache_read_tokens / cache_write_tokensСчётчики входа, выхода, cache read и write
data.has_more / next_cursorЕсть ли следующая страница и её cursor; next_cursor отсутствует на последней
1curl "https://elysiumai.garden/api/usage/self/requests?limit=50"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
Применяются общий 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
1curl "https://elysiumai.garden/api/usage/self/summary"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
Применяются общий 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Вход, выход, время выполнения в секундах и потоковый режим
1curl "https://elysiumai.garden/api/log/token"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
Применяются общий 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 — срок не указан
1curl "https://elysiumai.garden/v1/dashboard/billing/subscription"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
Применяется общий 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
1curl "https://elysiumai.garden/v1/dashboard/billing/usage"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
Применяется общий 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.

1curl "https://elysiumai.garden/v1/videos/$TASK_ID"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
Аудио 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.

1curl "https://elysiumai.garden/anthropic/v1/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.

1curl "https://elysiumai.garden/suno/fetch/$TASK_ID"   -H "Authorization: Bearer $ELYSIUM_API_KEY"
Эти пути используют обычную проверку ключа и 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-ограничения. Бесплатность служебного вызова не отменяет авторизацию и лимиты.

Термины на этой странице
ТерминЧто означает
Base URLБазовый адрес API, к которому клиент добавляет нужный маршрут.
API-ключСекрет для авторизации и списания запросов с вашего баланса.
Model IDТочное системное имя модели из каталога Elysium AI.
EndpointМаршрут конкретной операции после базового адреса API.
RequestОдин запрос клиента к API вместе с его заголовками и телом.
ResponseРезультат обработки запроса: статус, заголовки и данные.