Документация API
Arkheon повторяет API OpenAI. Меняете base_url на https://arkheonchat.com/v1 и ключ — код продолжает работать, только теперь со всеми моделями и рублёвым счётом.
Быстрый старт
- Зарегистрируйтесь и подтвердите email.
- Пополните баланс на странице Тарифы.
- Создайте ключ в кабинете. Ключ показывается один раз.
from openai import OpenAI
client = OpenAI(base_url="https://arkheonchat.com/v1", api_key="ark_...")
resp = client.chat.completions.create(
model="anthropic/claude-sonnet-4",
messages=[{"role": "user", "content": "Проверь договор на риски"}],
)
print(resp.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://arkheonchat.com/v1", apiKey: "ark_..." });
const r = await client.chat.completions.create({
model: "google/gemini-2.5-flash",
messages: [{ role: "user", content: "Сделай выжимку из письма" }],
stream: true,
});
for await (const chunk of r) process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
curl https://arkheonchat.com/v1/chat/completions \
-H "Authorization: Bearer ark_..." \
-H "Content-Type: application/json" \
-d '{"model":"openai/gpt-4o-mini","messages":[{"role":"user","content":"Привет"}]}'
Ключи
Передавайте ключ в заголовке Authorization: Bearer ark_…. До 10 активных ключей на аккаунт, каждый можно отозвать в кабинете. Ключ даёт доступ только к API — не к кабинету и не к смене пароля.
POST /v1/chat/completions
Поддерживаются model, messages (текст, image_url, file), max_tokens / max_completion_tokens, temperature, top_p, stop, stream, tools, tool_choice, parallel_tool_calls, response_format, seed, presence_penalty, frequency_penalty, reasoning, modalities. Остальные поля игнорируются; n должен быть 1.
Ответ — стандартный объект OpenAI. Дополнительно в нём есть arkheon.credits_charged и arkheon.balance. Если max_tokens не указан, используется 2048; максимум — 16 384.
Поиск в интернете включается суффиксом :online у модели, например openai/gpt-4o-mini:online.
Модель auto подбирает модель под запрос сама: код, вычисления, анализ длинных документов, тексты или быстрый ответ. Если в кабинете включено «спрашивать перед дорогими моделями», API вместо вопроса берёт модель дешевле порога; передайте "arkheon": {"allow_expensive": true} в теле запроса, чтобы разрешить дорогую. Фактическая модель приходит в arkheon.model, причина выбора — в arkheon.auto.
Стриминг
"stream": true — ответ приходит как text/event-stream, последний чанк содержит usage, затем data: [DONE]. Работает с stream=True в SDK.
Голос: распознавание и синтез
Те же вызовы, что у OpenAI. Имена whisper-1, gpt-4o-transcribe, tts-1, gpt-4o-mini-tts и голоса OpenAI (alloy, coral, verse и другие) принимаются и ведут на наши модели по умолчанию.
from openai import OpenAI
client = OpenAI(base_url="https://arkheonchat.com/v1", api_key="ark_...")
text = client.audio.transcriptions.create(
model="whisper-1", file=open("voice.ogg", "rb")).text
with client.audio.speech.with_streaming_response.create(
model="tts-1", voice="coral", input="Добрый день!") as r:
r.stream_to_file("answer.mp3")
POST /v1/audio/transcriptions
Файл до 25 МБ и до 60 минут: mp3, wav, flac, ogg, m4a, webm, mp4. Формат ответа — json, text, verbose_json, srt или vtt. Оплата по длительности записи; если в записи нет речи, запрос бесплатный.
POST /v1/audio/speech
До 4096 символов за запрос. Форматы — mp3, opus, aac, flac, wav и pcm (24 кГц, 16 бит, моно); звук приходит потоком. Цена считается по числу символов и приходит в заголовке x-arkheon-credits-charged. Текст проходит ту же проверку, что и сообщения в чате.
Модели, голоса и цены — в ответе GET /v1/audio/models.
Голос вживую: /v1/realtime
WebSocket по протоколу OpenAI Realtime. Клиенты, написанные для gpt-realtime (OpenAI SDK, Pipecat, LiveKit Agents), подключаются сменой адреса и ключа. Внутри — распознавание речи, модель чата из каталога и синтез по предложениям: ответ начинает звучать примерно через 2–3 секунды после конца фразы.
wss://arkheonchat.com/v1/realtime?model=google/gemini-2.5-flash-lite
import OpenAI from "openai";
import { OpenAIRealtimeWS } from "openai/realtime/ws";
const client = new OpenAI({ baseURL: "https://arkheonchat.com/v1", apiKey: "ark_..." });
const rt = await OpenAIRealtimeWS.create(client, { model: "gpt-realtime" });
rt.on("response.output_audio.delta", (e) => play(Buffer.from(e.delta, "base64")));
rt.send({ type: "input_audio_buffer.append", audio: pcm16.toString("base64") });
- Модель задаётся параметром
model: любая модель чата из каталога. Без него или с именем модели OpenAI отвечаетgoogle/gemini-2.5-flash-lite. - Звук — pcm16 24 кГц или G.711 (audio/pcmu, audio/pcma) для телефонии.
- Работают: определение пауз на сервере или ручная отправка реплики, перебивание, отмена ответа, обрезка услышанного, вызов функций, ответы только текстом, события в версиях GA и beta.
- Не поддерживаются WebRTC, SIP, картинки и MCP.
С сервера ключ передаётся в заголовке Authorization. В браузер ключ не отдавайте: ваш сервер получает одноразовый токен через POST /v1/realtime/client_secrets, а страница передаёт его в подпротоколе openai-insecure-api-key.<token>. Токен живёт 60 секунд и открывает одно соединение; ключ ark_ в подпротоколе отклоняется.
Оплата — за каждый ответ: распознавание, модель и синтез вместе, обычно 1 кредит за ответ. Ответ, отменённый до первого звука, не оплачивается. До 5 сессий одновременно, каждая до 30 минут. Аудио и расшифровки не сохраняются.
GET /v1/models
Список доступных моделей. credits_per_answer — примерная цена типичного ответа (300 токенов запроса и 500 ответа), а не фиксированная: списывается фактическая стоимость по токенам, цены за 1000 токенов — в credits_per_1k_input_tokens и credits_per_1k_output_tokens. Длинный контекст — документы, конспект, история — оплачивается заново в каждом запросе. Идентификаторы вида vendor/model. Ниже — самые дешёвые из 178.
| id | Название | Класс | Ответ |
|---|---|---|---|
amazon/nova-lite-v1 | Amazon: Nova Lite 1.0 | быстрая | ≈1 кр |
amazon/nova-micro-v1 | Amazon: Nova Micro 1.0 | быстрая | ≈1 кр |
bytedance/ui-tars-1.5-7b | ByteDance: UI-TARS 7B | быстрая | ≈1 кр |
cohere/command-r-08-2024 | Cohere: Command R (08-2024) | быстрая | ≈1 кр |
cohere/command-r7b-12-2024 | Cohere: Command R7B (12-2024) | быстрая | ≈1 кр |
deepseek/deepseek-chat-v3-0324 | DeepSeek: DeepSeek V3 0324 | быстрая | ≈1 кр |
deepseek/deepseek-v3.1-terminus | DeepSeek: DeepSeek V3.1 Terminus | быстрая | ≈1 кр |
deepseek/deepseek-v3.2 | DeepSeek: DeepSeek V3.2 | быстрая | ≈1 кр |
deepseek/deepseek-v3.2-exp | DeepSeek: DeepSeek V3.2 Exp | быстрая | ≈1 кр |
deepseek/deepseek-v4-flash | DeepSeek: DeepSeek V4 Flash 0423 | быстрая | ≈1 кр |
deepseek/deepseek-v4-flash-0731 | DeepSeek: DeepSeek V4 Flash 0731 | быстрая | ≈1 кр |
deepseek/deepseek-v4-flash-vision-exp | DeepSeek: DeepSeek V4 Flash Vision Exp | быстрая | ≈1 кр |
google/gemini-2.5-flash-lite | Google: Gemini 2.5 Flash Lite | быстрая | ≈1 кр |
google/gemma-2-27b-it | Google: Gemma 2 27B | быстрая | ≈1 кр |
Полный список — в ответе /v1/models или в выборе модели в чате.
Тарификация
Перед запросом на балансе резервируется оценка стоимости (учитывает max_tokens). После ответа списывается фактическая стоимость по данным провайдера, остаток резерва сразу возвращается. 1 кредит ≈ 1 ₽, минимальное списание — 1 кредит. Пустой ответ и ошибки провайдера не оплачиваются. Баланс: GET /v1/balance.
GET /v1/usage
Статистика по ключу, которым подписан запрос: ?days=30 (1–90). Ответ содержит total (запросы, токены, кредиты), by_day (плотный ряд по дням), by_model. Ключ видит только себя; вся картина по аккаунту — в кабинете.
curl https://arkheonchat.com/v1/usage?days=7 -H "Authorization: Bearer ark_..."
{"object":"usage","scope":"key","key":{"id":12,"name":"Бот поддержки","prefix":"ark_3f"},
"period":{"from":"2026-08-27","to":"2026-09-02","days":7},
"total":{"requests":418,"prompt_tokens":91230,"completion_tokens":40211,"cached_tokens":0,"credits":612},
"by_day":[{"date":"2026-08-27","requests":51,"credits":80,...}],
"by_model":[{"model":"openai/gpt-4o-mini","requests":390,"credits":402,...}]}
Ошибки и лимиты
Формат ошибок — как у OpenAI: {"error": {"message", "type", "code"}}.
| HTTP | code | Когда |
|---|---|---|
| 401 | invalid_api_key | Ключ не передан, отозван или неверный |
| 402 | insufficient_credits | Не хватает кредитов на резерв. В ответе есть needed и available |
| 404 | model_not_found | Модель недоступна |
| 429 | rate_limited | Больше 60 запросов в минуту на ключ или больше 4 одновременных |
| 502 / 504 | upstream_error / upstream_timeout | Провайдер ответил ошибкой или не ответил — кредиты не списаны |