ASAI по API

Last updated: 2026-10-29OpenAI-совместимый эндпоинт chat completions — ключи, модели, стриминг, вызовы инструментов, кто платит за запрос и какие бывают ошибки.

ASAI по API

OpenAI-совместимый эндпоинт. Направьте на него любой OpenAI SDK, поменяйте базовый адрес и имя модели — и всё работает, включая стриминг и вызовы инструментов.

text
Базовый адрес   https://asai.aperturesyndicate.com/api/v1
МетодЭндпоинт
POST/chat/completionsОтвет модели, потоком или целиком
GET/modelsТри имени моделей

Ключи

Каждый запрос несёт Authorization: Bearer asai_…. Ключи asai_ бывают двух видов, и разница только в том, кто платит:

КлючГде взятьКто платит
Ключ Dev StudioDev Studio → ASAI keysПапка кошелька, к которой привязан ключ, по двойной цене модели. Тариф ASAI не нужен
Личный ключASAI → Настройки → APIВаша энергия ASAI, тот же запас, что и в чате. Нужен ASAI Pro или Etherane

Ключ показывается один раз, при создании, — мы храним только его хэш. Утёкший ключ отзовите и выпустите новый. Ключи из старого списка портала разработчика, которые начинаются не с asai_, этот API не открывают.

Модели

МодельДля чего
asai-miniБыстрые повседневные ответы
asai-arcТрудные рассуждения, длинные ответы
asai-codeКод — она же отвечает, если имя ни с чем не совпало

Имя сверяется нестрого: всё, где есть arc, уходит в asai-arc, где есть mini или chat — в asai-mini, остальное — в asai-code. Поле model в ответе всегда несёт одно из трёх публичных имён.

Запрос

python
from openai import OpenAI

client = OpenAI(
    api_key="asai_…",
    base_url="https://asai.aperturesyndicate.com/api/v1",
)

stream = client.chat.completions.create(
    model="asai-code",
    messages=[{"role": "user", "content": "Объясни этот стектрейс"}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")
Поле
modelОдно из имён выше
messagesНе пустой; роли system, user, assistant, tool. content — строка или список частей text и image_url
streamtrue — server-sent events в формате чанков OpenAI
temperatureНеобязательно
max_tokens / max_completion_tokensНеобязательно, потолок 32 768. Без него у каждой модели своё значение по умолчанию
toolsИнструменты-функции; parameters — JSON-схема с type: "object"
tool_choiceauto, none, required или конкретная функция

Остальные поля OpenAI пропускаются. Ответы — в формате OpenAI, включая usage.

Кто платит за запрос

Запрос стоит столько, сколько стоят его токены у ответившей модели: свежий ввод, кэшированный ввод и вывод считаются отдельно.

  • Ключ Dev Studio — двойная цена списывается с папки кошелька после ответа, в том числе за стрим, оборванный на середине. Когда в папке ноль, запросы получают 402, пока вы не пополните её в Wallet.
  • Личный ключ — цена списывается с вашей энергии ASAI, с тем же недельным запасом и дневным тормозом, что и в чате. asai-arc открыт на тарифах, где он есть.

Ошибки

Ошибки приходят в формате OpenAI, поэтому SDK бросают свои обычные исключения:

json
{ "error": { "message": "Invalid API key.", "type": "invalid_request_error", "code": "invalid_api_key" } }
СтатусcodeЗначит
400invalid_requestТело не JSON, или messages пуст или собран неверно
401invalid_api_keyКлюча нет, он неверный или отозван
402budget_exhaustedПапка кошелька за ключом Dev Studio пуста
403model_not_availableЛичный ключ: в тарифе нет API или нет asai-arc
429invalid_requestБольше 60 запросов в минуту на ключ, или у личного ключа кончилась дневная или недельная энергия — что именно, сказано в тексте
503billing_unavailableНе удалось проверить папку кошелька — повторите
5xxСервис моделей недоступен — повторите с паузой

Правила

ASAI по API | AS Docs