API

Документация API

AIIN — единый шлюз к десяткам моделей через OpenAI- и Anthropic-совместимый API. Меняете base_url на https://api.aiin.by — и используете привычные SDK. Оплата помодельно за токены, кредиты 1:1 к BYN.

Ссылки и Swagger

Полная документация по разделам и интерактивные Swagger UI для всех API-сервисов.

Кредиты, модели и цены Как считаются токены, как пополнить баланс и как устроена оплата. Подключение моделей к домену Доменная защита бесплатных моделей, fallback и Partner OAuth. Billing API Swagger Интерактивная спецификация billing-шлюза: модели, оплата, чат. Auth API Swagger OAuth, аутентификация, настройки пользователя и admin endpoints. Platform API Swagger Threads, messages, saved prompts — хранение разговоров.

Базовый URL и аутентификация

Базовый URL: https://api.aiin.by. Каждый запрос требует заголовок Authorization: Bearer <token>. В качестве токена можно использовать API-ключ из кабинета (AIIN_API_KEY) или OAuth access-token. Список моделей и цен публичный, без токена.

export AIIN_API_KEY="sk-..."   # создайте в кабинете → Ключи API
curl https://api.aiin.by/v1/models

OpenAI-совместимый API

Chat Completions, Completions и Embeddings — в формате OpenAI. С SDK достаточно подменить base_url и ключ.

Chat Completions — curl

curl https://api.aiin.by/v1/chat/completions \
  -H "Authorization: Bearer $AIIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [{"role": "user", "content": "Привет!"}]
  }'

Python (openai)

from openai import OpenAI

client = OpenAI(base_url="https://api.aiin.by/v1", api_key="sk-...")

r = client.chat.completions.create(
    model="openai/gpt-4o-mini",
    messages=[{"role": "user", "content": "Привет!"}],
)
print(r.choices[0].message.content)

Embeddings

curl https://api.aiin.by/v1/embeddings \
  -H "Authorization: Bearer $AIIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "openai/text-embedding-3-small", "input": "hello world"}'

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

Messages API в формате Anthropic. Поле max_tokens обязательно. SDK: base_url=https://api.aiin.by (SDK сам добавит /v1/messages).

Messages — curl

curl https://api.aiin.by/v1/messages \
  -H "Authorization: Bearer $AIIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-3.5-sonnet",
    "max_tokens": 256,
    "messages": [{"role": "user", "content": "Привет!"}]
  }'

Python (anthropic)

import anthropic

client = anthropic.Anthropic(base_url="https://api.aiin.by", api_key="sk-...")

m = client.messages.create(
    model="anthropic/claude-3.5-sonnet",
    max_tokens=256,
    messages=[{"role": "user", "content": "Привет!"}],
)
print(m.content[0].text)

AI-агенты для кодинга

Claude Code, OpenCode и pi умеют работать через OpenAI-/Anthropic-совместимые endpoint'ы — достаточно указать базовый URL AIIN и API-ключ из кабинета. Списание идёт с кредитного баланса AIIN (1 кредит = 1 BYN), без VPN и зарубежных карт.

Claude Code

Добавьте блок env в ~/.claude/settings.json (или экспортируйте те же переменные в shell). Используйте именно ANTHROPIC_AUTH_TOKEN (заголовок Authorization: Bearer), а не ANTHROPIC_API_KEY.

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.aiin.by",
    "ANTHROPIC_AUTH_TOKEN": "sk-...",
    "ANTHROPIC_MODEL": "anthropic/claude-3.5-sonnet",
    "ANTHROPIC_SMALL_FAST_MODEL": "openai/gpt-4o-mini"
  }
}

Если ранее был выполнен вход по подписке (claude /login), сначала сделайте claude /logout — сохранённый логин перекрывает переменные окружения. Проверка подключения: команда /status внутри Claude Code.

OpenCode

Провайдер настраивается в ~/.config/opencode/opencode.json; ключ можно подставить из переменной окружения.

export AIIN_API_KEY="sk-..."
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "aiin": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "AIIN",
      "options": {
        "baseURL": "https://api.aiin.by/v1",
        "apiKey": "{env:AIIN_API_KEY}"
      },
      "models": {
        "openai/gpt-4o-mini": { "name": "GPT-4o mini" },
        "anthropic/claude-3.5-sonnet": { "name": "Claude 3.5 Sonnet" },
        "google/gemini-2.5-flash": { "name": "Gemini 2.5 Flash" }
      }
    }
  }
}

Перезапустите opencode и выберите модель через /models (aiin/…). В секцию models можно добавить любые модели из каталога AIIN — имена должны совпадать с GET /v1/models.

pi

pi (pi.dev) читает кастомные провайдеры из ~/.pi/agent/models.json.

{
  "providers": {
    "aiin": {
      "api": "openai-completions",
      "baseUrl": "https://api.aiin.by/v1",
      "apiKey": "sk-...",
      "models": [
        { "id": "openai/gpt-4o-mini", "name": "GPT-4o mini" },
        { "id": "anthropic/claude-3.5-sonnet", "name": "Claude 3.5 Sonnet" }
      ]
    }
  }
}

Запуск: pi --provider aiin --model openai/gpt-4o-mini — или выбор модели внутри pi через /model (Ctrl+L). Вместо самого ключа в apiKey можно указать имя переменной окружения.

Модели

Используйте реальные имена моделей в поле model: openai/gpt-4o-mini, anthropic/claude-3.5-sonnet, google/gemini-2.5-flash и сотни других. Актуальный список с ценами — на странице Модели или через GET /v1/models.

Цены и кредиты

1 кредит = 1 BYN: оплаченная сумма зачисляется на баланс аккаунта, списание — за фактически использованные токены (prompt + completion). Цены за 1M токенов — в GET /v1/models и на странице Модели. Баланс кредитов — в кабинете и через GET /v1/balance. Пополнение — картой через WebPay или ЕРИП.

Ошибки

HTTPЗначение
401нет или неверный токен
402недостаточно средств на балансе
400неизвестная модель / неверный запрос
502апстрим недоступен (списание не производится)

В ответах чата добавляются заголовки X-AIIN-Balance и X-AIIN-Charged-BYN с текущим балансом и стоимостью запроса.

Частые вопросы

Поддерживается ли стриминг ответов?

Да — передайте "stream": true в /v1/chat/completions. Ответ придёт SSE-чанками; финальный чанк содержит usage при stream_options.include_usage. Стриминг работает для текстовых моделей.

Нужен ли отдельный SDK для AIIN?

Нет. Используйте официальные SDK OpenAI или Anthropic — меняется только base_url (https://api.aiin.by/v1) и ключ.

Где видно списание за конкретный запрос?

В заголовках ответа X-AIIN-Balance и X-AIIN-Charged-BYN, а также в истории транзакций кабинета.

Можно ли подключить Claude Code, OpenCode или pi к AIIN?

Да. Claude Code: ANTHROPIC_BASE_URL=https://api.aiin.by + ANTHROPIC_AUTH_TOKEN=ключ. OpenCode: провайдер @ai-sdk/openai-compatible с baseURL https://api.aiin.by/v1. pi: провайдер в ~/.pi/agent/models.json. Подробнее — в разделе «AI-агенты для кодинга».