Быстрый старт — 3 минуты
- 1Получи ключАдмин выдаёт
kimi_live_...(показывается 1 раз). Или зарегистрируйся — кабинет создаст ключ. - 2Укажи Base URL
https://api.8bit.ca/v1— весь API только наapi.8bit.ca. - 3Модель
modelЛюбая другая →404 model_not_allowed.
Авторизация
Ключ kimi_live_... можно передать двумя способами. Idempotency-Key — против двойного списания.
Authorization: Bearer kimi_live_a60f... # или x-api-key: kimi_live_... Idempotency-Key: my-request-123
Поведение
- Без ключа →
401 missing_api_key - Revoked/expired →
401 invalid_api_key - Баланс кончился →
402 insufficient_balance - Каждый ответ содержит
X-Request-ID
Модели
model
Flagship · 1M ctx
recommended
model
Fast · 1M ctx
reasoning · vision · tools
GET /v1/models отдаёт только эти две. Любую другую → 404.
POST /v1/chat/completions
OpenAI-совместимый. Поля: model, messages, stream, max_tokens, temperature, top_p, tools, tool_choice, response_format, stop, frequency_penalty, presence_penalty, seed, user, parallel_tool_calls.
curl https://api.8bit.ca/v1/chat/completions \
-H "Authorization: Bearer kimi_live_..." \
-d '{"model":"model","messages":[{"role":"user","content":"Привет"}],"max_tokens":200}'
{
"id":"chatcmpl-...",
"model":"model",
"choices":[{"message":{"role":"assistant","content":"Привет!"}}],
"usage":{"prompt_tokens":299,"completion_tokens":353}
}
Streaming — SSE
{"model":"model","messages":[...],"stream":true}
# → text/event-stream
data: {"choices":[{"delta":{"content":"Привет"}}]}
data: {"choices":[{"finish_reason":"stop"}],"usage":{...}}
data: [DONE]
Gateway не буферизует — проксирует realtime. Финальный чанк с
usage. При обрыве списывается только подтверждённый output.Tools
Прозрачный прокси. Gateway сам tools не исполняет — возвращает tool_calls, клиент исполняет.
{"tools":[{"type":"function","function":{"name":"get_weather","parameters":{"type":"object","properties":{"city":{"type":"string"}}}}}],"tool_choice":"auto"}
Sessions — экономия до 86%
Вместо отправки всей истории — шлёшь только новый месседж. Сервер держит историю и жмёт контекст:
summary + recent 10 + relevant, hard cap 8000. Billable — только новый input + output.POST /v1/sessions {"model":"model"} → {"id":"sess_..."}
POST /v1/sessions/sess_.../messages {"content":"Привет"}
# → {"choices":[...],"_context_efficiency":{"raw":12800,"optimized":5300,"saved":7500,"compression_ratio":58.6}}
Account & Usage
GET /v1/account
balance allocated/used/remaining
GET /v1/usage
период all — input/output/billable
GET /api/client/*
кабинет: chart + requests + inspector
Ошибки — OpenAI формат
401 {"error":{"message":"Invalid API key.","type":"authentication_error","code":"invalid_api_key"}}
402 {"error":{"message":"Insufficient balance.","type":"billing_error","code":"insufficient_balance"}}
404 {"error":{"message":"Model 'gpt-4' not available","type":"invalid_request_error","code":"model_not_allowed"}}
429 {"error":{"type":"rate_limit_error","code":"rate_limit_exceeded"}}
Все ответы с X-Request-ID. Логи без Authorization / prompts.
Биллинг — двойной учёт
- Ledger A — upstream:
prompt + completion + estimated_cost (0.001817/1k)— только админу. - Ledger B — customer: списанное с баланса — клиенту.
- Immutable
usage_ledger+SELECT ... FOR UPDATEрезервация — нет double-spend / negative. Idempotency-Key— повтор не списывает дважды.
SDK & IDE
from openai import OpenAI
client = OpenAI(api_key="kimi_live_...", base_url="https://api.8bit.ca/v1")
print(client.chat.completions.create(
model="model", messages=[{"role":"user","content":"hi"}]
).choices[0].message.content)
import OpenAI from "openai";
const c = new OpenAI({ apiKey: process.env.KEY, baseURL: "https://api.8bit.ca/v1" });
await c.chat.completions.create({ model:"model", messages:[{role:"user",content:"hi"}] });
opencode.json: {"provider":{"kimi":{"npm":"@ai-sdk/openai-compatible","options":{"baseURL":"https://api.8bit.ca/v1","apiKey":"{env:CUSTOM_API_KEY}"}}}}
Cline/Cursor: Settings → OpenAI Compatible → Base URL https://api.8bit.ca/v1 → Model model → Key kimi_live_...