ethereal.
поддержка

Ethereal на одном экране.

Прокси к семейству Claude от Anthropic с долларовым кошельком. Один API-ключ обслуживает и нативный Anthropic Messages API, и зеркало Chat Completions в форме OpenAI — выбирай тот формат, который уже знает твой инструмент.

Самая частая 404 во всех инструментах ниже — неправильный base URL. Правило:

  • Anthropic-клиенты (Claude Code, anthropic-py, @anthropic-ai/sdk) хотят голый хост: https://api.ethereal.llc. Они сами припишут /v1/messages.
  • OpenAI-клиенты (Cursor, Cline, openai-py) хотят базу с /v1: https://api.ethereal.llc/v1. Они сами припишут /chat/completions.

Каждая интеграция на этой странице проверена end-to-end на живом ключе в 2026. Где инструмент закрывает кастомные эндпоинты за платным планом (Cursor) — это явно отмечено. Где у инструмента есть собственный баг (провайдер «OpenAI» без Base URL у Cline, Agent-режим Cursor) — упомянуто рядом.

Быстрый старт

Три минуты от ключа до первого токена.

1. Получи ключ

Открой дашборд и вставь выданный тебе ключ. Дашборд дёрнет /v1/whoami и покажет долларовый баланс, историю запросов и расход по моделям.

Если ключа ещё нет — попроси у того, кто тебя сюда направил. Ключи выглядят как sk-ant-api03-… и используются как bearer-credential для всех эндпоинтов.

2. Выбери формат

Оба формата работают на одном ключе и едят один кошелёк. Используй тот, что твой инструмент уже понимает — конвертация между ними бесплатна.

curl https://api.ethereal.llc/v1/messages \
  -H "x-api-key: $ETHEREAL_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "messages": [{"role":"user","content":"hello, ethereal"}]
  }'

3. Подключи инструмент

Переходи к нужной интеграции: Claude Code, Cursor, Aider, Continue.dev, Cline / Roo Code, Zed. Или возьми готовый SDK-вызов: Anthropic · OpenAI.

Аутентификация

Один bearer-токен, два названия заголовка — в зависимости от того, какой формат ты вызываешь.

Формат Заголовок Значение
/v1/messagesx-api-keysk-ant-api03-…
/v1/messagesanthropic-version2023-06-01
/v1/chat/completionsAuthorizationBearer sk-ant-api03-…
/v1/whoamix-api-key / Authorization: Bearer

У ключей собственный долларовый баланс и счётчики использования по моделям. Ключ не привязан к одному формату — прокси сводит обе формы заголовка к одной внутренней проверке. /v1/whoami — канонический эндпоинт интроспекции; дашборд просто рендерит его ответ.

Обращайся с ключами как с паролями. Дашборд кладёт вставленный ключ в localStorage для удобства — на общем устройстве сотри его перед уходом. В логи прокси попадает только md5-fingerprint ключа, не сам ключ.

Модели

Четыре id, доступны в обоих форматах. Никаких алиасов кроме перечисленных — любой другой id вернёт HTTP 400.

id тир контекст примечания
claude-opus-4-7flagship200Kstrongest reasoning, tool use, vision
claude-opus-4-7-1mflagship · 1M1,000Ksame model, expanded input ceiling, same per-token rate
claude-sonnet-4-6balanced200Krecommended default for most agentic loops
claude-haiku-4-5fast200K1/5 the price of Sonnet — good for cheap classifiers and routers

OpenAI-style алиасы

Эндпоинт Chat Completions принимает небольшой словарь OpenAI-алиасов, чтобы не переучивать существующих клиентов. gpt-4o / gpt-4 идут на claude-sonnet-4-6; gpt-4o-mini / gpt-3.5-turbo — на claude-haiku-4-5. В новом коде используй канонический Claude-id.

Живой список: GET /v1/models — см. справочник /v1/models.

Тарифы и биллинг

USD за миллион токенов. Совпадает с публичным прайсом Anthropic на апрель 2026. Кеш-чтение — 10% от обычной входной ставки.

id вход / Mtok выход / Mtok множитель токенайзера
claude-opus-4-7$5.00$25.001.35× cl100k
claude-opus-4-7-1m$5.00$25.001.35× cl100k
claude-sonnet-4-6$3.00$15.001.0× cl100k
claude-haiku-4-5$1.00$5.001.0× cl100k

Почему 1.35× у Opus 4.7?

Anthropic пишет, что Opus 4.7 идёт с новым токенайзером, который выдаёт примерно на 35% больше токенов, чем старые Claude на том же тексте. Так как часть путей биллинга у нас всё ещё считает в стиле cl100k, мы накладываем 1.35× — чтобы кошелёк был честным. Sonnet 4.6 и Haiku 4.5 остаются на 1.0×: cl100k достаточно близко к их BPE.

Web-search инструмент

Если запрос включает серверный инструмент web_search_20250305 и модель его вызывает — каждый поиск стоит дополнительно $0.01 и тарифицируется отдельно от токенов. Совпадает с прайсом Anthropic ($10 за 1000 поисков).

Чтение кошелька

Каждый успешный ответ списывает с кошелька, привязанного к ключу. Дёрни GET /v1/whoami чтобы увидеть текущий баланс, общий расход, разбивку по моделям и last_used. Дашборд рисует это на одном экране; /v1/stats/{md5} отдаёт ту же payload публично (без ключа) — для Grafana или алертов.

Стриминг

Оба формата поддерживают SSE. Каждая форма повторяет родительский API в точности — никаких ethereal-специфичных фреймов.

Anthropic-формат

Поставь "stream": true в теле и читай ответ как Server-Sent Events. Типы фреймов: message_start, content_block_start, content_block_delta, content_block_stop, message_delta, message_stop + периодические ping. Финальный usage приходит в message_delta. Один в один с документацией Anthropic по стримингу.

OpenAI-формат

Поставь "stream": true и читай SSE-чанки вида data: {"choices":[{"delta":{"content":"…"}}]}. Терминальный фрейм — data: [DONE]. Опционально запроси "stream_options": {"include_usage": true} чтобы получить финальный usage перед [DONE].

Длинные SSE-стримы идут через Sozu с таймаутом 600s front/back. Тяжёлые reasoning-ходы могут молчать десятки секунд между дельтами — это нормально. Если клиент отваливается на тишине — подними его таймаут хотя бы до 120s.

Claude Code

cli anthropic-формат free план ок

Первоклассный CLI от Anthropic. Из коробки знает ANTHROPIC_BASE_URL — указывай голый хост, SDK сам припишет /v1/messages.

Вариант A — env-переменные

export ANTHROPIC_BASE_URL="https://api.ethereal.llc"
export ANTHROPIC_API_KEY="sk-ant-api03-…"
export ANTHROPIC_MODEL="claude-sonnet-4-6"
claude

Вариант B — settings.json

Кросс-платформенно, переживает рестарт терминала. Путь: ~/.claude/settings.json на macOS/Linux, %USERPROFILE%\.claude\settings.json на Windows.

~/.claude/settings.json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.ethereal.llc",
    "ANTHROPIC_AUTH_TOKEN": "sk-ant-api03-…",
    "ANTHROPIC_MODEL": "claude-sonnet-4-6"
  }
}

Прокси принимает обе формы — ANTHROPIC_API_KEY (как x-api-key) и ANTHROPIC_AUTH_TOKEN (как Authorization: Bearer). Бери ту, которую уже задаёт окружение.

У VS Code-варианта Claude Code есть известный баг — он игнорирует ANTHROPIC_BASE_URL из env. Воркэраунд: settings.json.

Cursor

редактор openai-формат нужен pro план

Настройка «Override OpenAI Base URL» в Cursor отправляет Chat-формат на твой эндпоинт. Tab-автодополнение и собственные foundation-модели Cursor она не затрагивает.

На бесплатном плане кастомные эндпоинты не поддерживаются. Override закрыт за Cursor Pro ($20 / мес). Tab-автодополнение всегда работает на проприетарном стеке Cursor — перенаправить нельзя. Agent-режим сейчас шлёт форму OpenAI Responses API, а не Chat Completions, который у нас реализован — Chat и Edit работают, Agent нет.

Настройка

  1. Открой Cmd+, (или Ctrl+,) → Models.
  2. Скролл до секции OpenAI API.
  3. Включи Override OpenAI Base URL, вставь https://api.ethereal.llc/v1/v1 здесь обязателен.
  4. Вставь ключ в поле OpenAI API Key, нажми Verify.
  5. В списке моделей отключи встроенные модели Cursor (gpt-5, claude-3.5-sonnet и т.д.) — иначе они попытаются роутиться через твой эндпоинт и упадут на неизвестных id.
  6. Жми + Add custom model и добавь нужный Claude-id — например claude-sonnet-4-6. Сохрани.
  7. Выбери эту модель в дропдауне в чат-панели. Должен пойти трафик в твой дашборд.

Известные проблемы

  • Sub-agents могут обходить override и бить в инфру Cursor напрямую. На апрель 2026 клиентского фикса нет.
  • Если оставишь дефолтные модели Cursor включёнными при кастомном Base URL — редактор может зависнуть на «Planning next step…». Отключай.
  • Tab-автодополнение не затрагивается и продолжает есть собственную квоту Cursor.

Aider

cli оба формата free план ок

Aider ходит через litellm, поэтому работают оба формата. Чаще используют OpenAI-путь; Anthropic-путь полезен когда нужно прокинуть нативные cache-block заголовки.

Путь A — OpenAI-формат (рекомендуется)

shell
export OPENAI_API_BASE="https://api.ethereal.llc/v1"
export OPENAI_API_KEY="sk-ant-api03-…"
aider --model openai/claude-sonnet-4-6

Путь B — Anthropic-формат

shell
export ANTHROPIC_API_BASE="https://api.ethereal.llc"
export ANTHROPIC_API_KEY="sk-ant-api03-…"
aider --model anthropic/claude-sonnet-4-6

Если aider жалуется на неизвестный id модели — положи в корень проекта .aider.model.metadata.json с описанием контекста и цены — см. advanced model settings в Aider.

Continue.dev

плагин оба формата free план ок

OSS-плагин для VS Code и JetBrains. ~/.continue/config.yaml принимает и provider: openai, и provider: anthropic с переопределением apiBase. Без ограничений по плану.

~/.continue/config.yaml
name: ethereal
version: 1.0.0
schema: v1
models:
  - name: Sonnet 4.6 (Ethereal · OpenAI)
    provider: openai
    apiBase: https://api.ethereal.llc/v1
    apiKey: sk-ant-api03-…
    model: claude-sonnet-4-6
    roles: [chat, edit, apply]

  - name: Opus 4.7 1M (Ethereal · Anthropic)
    provider: anthropic
    apiBase: https://api.ethereal.llc
    apiKey: sk-ant-api03-…
    model: claude-opus-4-7-1m
    roles: [chat, edit]

Перезагрузи Continue (Cmd+Shift+P → «Continue: Reload»). Новые модели появятся в дропдауне внизу панели.

Cline · Roo Code

плагин openai-формат free план ок

И Cline, и форк Roo Code предоставляют один и тот же провайдер «OpenAI Compatible»; настройка идентичная. Используй именно «OpenAI Compatible», а не «OpenAI» — у второго в 2026 нет поля Base URL (issues #7114 / #7128).

Настройка

  1. Кликни ⚙ в панели Cline (или Roo Code).
  2. В API Provider выбери OpenAI Compatible.
  3. Заполни:
    • Base URL: https://api.ethereal.llc/v1
    • API Key: sk-ant-api03-…
    • Model ID: claude-sonnet-4-6
  4. (Опционально) Поставь Context window = 200,000 (или 1,000,000 для Opus 1M) и Max output tokens = 16,384.
  5. Сохрани и запусти задачу.

Cline-CLI (headless-вариант) ещё не умеет в Base URL для OpenAI-совместимых эндпоинтов — см. issue #9656. Пока используй VS Code-плагин.

Zed

редактор оба формата free план ок

Zed читает конфиг провайдеров из ~/.config/zed/settings.json. Путь openai_compatible позволяет описать свой список моделей; путь anthropic только переопределяет URL.

OpenAI-совместимый (рекомендуется)

~/.config/zed/settings.json
{
  "language_models": {
    "openai_compatible": {
      "Ethereal": {
        "api_url": "https://api.ethereal.llc/v1",
        "available_models": [
          {
            "name": "claude-sonnet-4-6",
            "display_name": "Claude Sonnet 4.6",
            "max_tokens": 200000,
            "max_output_tokens": 16384,
            "capabilities": { "tools": true, "images": true }
          }
        ]
      }
    }
  }
}

И экспортируй OPENAI_API_KEY=sk-ant-api03-… в шелле — Zed читает ключ из окружения, не из settings.json.

Anthropic-вариант (только URL)

~/.config/zed/settings.json
{
  "language_models": {
    "anthropic": {
      "api_url": "https://api.ethereal.llc"
    }
  }
}

Поставь ANTHROPIC_API_KEY=sk-ant-api03-… в env. Нюанс: этот путь знает только те Anthropic-модели, что Zed поставляет в коробке — имя должно совпадать. Путь openai_compatible выше гибче.

Anthropic SDK

библиотека anthropic-формат

Передавай голый хост в base_url / baseURL — Python и TypeScript SDK сами припишут /v1/messages. Если положить /v1 в базу, получишь /v1/v1/messages и 404.

Python

python
import anthropic

client = anthropic.Anthropic(
    base_url="https://api.ethereal.llc",
    api_key="sk-ant-api03-…",
)

msg = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "hi"}],
)
print(msg.content[0].text)

TypeScript

typescript
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://api.ethereal.llc",
  apiKey: process.env.ANTHROPIC_API_KEY!,
});

const msg = await client.messages.create({
  model: "claude-sonnet-4-6",
  max_tokens: 1024,
  messages: [{ role: "user", content: "hi" }],
});

Или задай env-переменные и не передавай аргументы в SDK:

shell
export ANTHROPIC_BASE_URL="https://api.ethereal.llc"
export ANTHROPIC_API_KEY="sk-ant-api03-…"

OpenAI SDK

библиотека openai-формат

Положи /v1 в base_url — OpenAI SDK сам припишет сверху /chat/completions.

Python

python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.ethereal.llc/v1",
    api_key="sk-ant-api03-…",
)

resp = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "hi"}],
)
print(resp.choices[0].message.content)

TypeScript

typescript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.ethereal.llc/v1",
  apiKey: process.env.OPENAI_API_KEY!,
});

const r = await client.chat.completions.create({
  model: "claude-sonnet-4-6",
  messages: [{ role: "user", content: "hi" }],
});

curl

cli оба формата

Удобно для smoke-теста ключа, отладки заголовков и скриптов без SDK.

Anthropic-формат

curl
curl https://api.ethereal.llc/v1/messages \
  -H "x-api-key: $ETHEREAL_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "messages": [{"role":"user","content":"hi"}]
  }'

OpenAI-формат

curl
curl https://api.ethereal.llc/v1/chat/completions \
  -H "Authorization: Bearer $ETHEREAL_KEY" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "messages": [{"role":"user","content":"hi"}]
  }'

Стриминг (SSE)

curl --no-buffer
curl --no-buffer https://api.ethereal.llc/v1/messages \
  -H "x-api-key: $ETHEREAL_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 256,
    "stream": true,
    "messages": [{"role":"user","content":"count to ten"}]
  }'

Open WebUI · LibreChat · SillyTavern

self-host openai-формат free

Open WebUI

  1. Залогинься админом → Settings → Connections → OpenAI APIAdd Connection.
  2. URL: https://api.ethereal.llc/v1 · API Key: sk-ant-api03-….
  3. Сохрани. Модели подтянутся из /v1/models; выбери нужный Claude-id в дропдауне.

LibreChat — librechat.yaml

librechat.yaml
endpoints:
  custom:
    - name: "Ethereal"
      apiKey: "${ETHEREAL_API_KEY}"
      baseURL: "https://api.ethereal.llc/v1"
      models:
        default:
          - claude-sonnet-4-6
          - claude-opus-4-7
          - claude-opus-4-7-1m
          - claude-haiku-4-5
        fetch: false
      titleConvo: true
      titleModel: "claude-haiku-4-5"
      modelDisplayLabel: "Ethereal"

SillyTavern

Иконка вилки → API: Chat Completion → Source: Custom (OpenAI-compatible) → URL: https://api.ethereal.llc/v1 → вставь API Key → Connect. Добавь нужный Claude-id в Available Models.

POST /v1/messages

Anthropic-формат Messages API. Идентичные схемы запроса и ответа с api.anthropic.com/v1/messages.

Заголовки

имя обязат. значение
x-api-keyyes
anthropic-versionyes2023-06-01
content-typeyesapplication/json
anthropic-betaopt

Тело

поле тип примечания
modelstringrequired
messagesMessage[]required
max_tokensintrequired
systemstring · Block[]optional
toolsTool[]optional
tool_choiceobjectoptional
temperature0..1optional, default 1
streambooloptional — emit SSE

Ответ — стандартный объект Message: id, type: "message", role: "assistant", content[] (массив блоков text / tool_use / thinking), stop_reason, usage.

POST /v1/chat/completions

Зеркало Chat Completions в форме OpenAI. Те же модели сверху; форма запроса и ответа совпадает с api.openai.com/v1/chat/completions.

Тело — поддерживаемое подмножество

полетиппримечания
modelstringrequired
messagesMessage[]required
max_tokensintoptional
temperature0..2optional
streambooloptional — SSE chunks with data: [DONE]
stream_optionsobjectoptional — {include_usage: true}
toolsTool[]optional
tool_choiceobject · stringoptional
response_formatobjectoptional

Vision: передавай content-parts типа image_url (data: и https URL — оба принимаются). Прокси декодирует и отправит как Anthropic image-блоки.

POST /v1/messages/count_tokens

Оценить стоимость входных токенов запроса до отправки. Зеркалит одноимённый эндпоинт Anthropic.

Те же поля тела что у /v1/messages, форма ответа: {"input_tokens": <int>}. Полезно для бюджетного контроля на клиенте. Считаются те самые cl100k×множитель цифры, которые потом спишутся с кошелька.

GET /v1/models

Публичный список доступных моделей. Аутентификация не нужна.

response
{
  "data": [
    {"id": "claude-opus-4-7", "display_name": "Claude Opus 4.7", "type": "model"},
    {"id": "claude-opus-4-7-1m", "display_name": "Claude Opus 4.7 (1M context)", "type": "model"},
    {"id": "claude-sonnet-4-6", "display_name": "Claude Sonnet 4.6", "type": "model"},
    {"id": "claude-haiku-4-5", "display_name": "Claude Haiku 4.5", "type": "model"}
  ],
  "first_id": "claude-opus-4-7",
  "last_id": "claude-haiku-4-5",
  "has_more": false
}

GET /v1/whoami

Интроспекция кошелька авторизованного bearer. Требует ключ; именно эту форму рендерит дашборд.

Форма ответа

json
{
  "token": "sk-ant-api03-…",
  "name": "my-laptop",
  "balance_usd": 12.4567,
  "total_spent_usd": 3.1198,
  "total_input_tokens": 412903,
  "total_output_tokens": 29110,
  "total_search_requests": 7,
  "created_at": 1738200000,
  "last_used_at": 1745650000,
  "per_model": {
    "claude-sonnet-4-6": { "input_tokens": 390210, "output_tokens": 22011, "spent_usd": 2.41, "search_requests": 5 },
    "claude-haiku-4-5":  { "input_tokens": 22693,  "output_tokens": 7099,  "spent_usd": 0.07, "search_requests": 2 }
  }
}

GET /v1/stats/{md5}

Публичный (без ключа) поиск статистики кошелька по md5-fingerprint. Поля те же что у /v1/whoami, но без поля token.

Fingerprint считается как md5_hex(lowercase(your_token)) — 32 lowercase hex-символа. Удобно отдать в дашборд или алертинг (Grafana scrape, etc.) без раскрытия самого ключа.

shell
FP=$(printf "%s" "$ETHEREAL_KEY" | md5sum | awk '{print $1}')
curl https://api.ethereal.llc/v1/stats/$FP

Reseller API

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

Механика: вы выпускаете подписанный PASETO v4.local-токен в личном кабинете (POST /api/me/issue-token, cookie-auth). Дальше этот токен используется как Authorization: Bearer на POST /api/keys/issue — каждый вызов атомарно списывает X $ с баланса кабинета и возвращает новый sk-ant-03-… с этим же балансом.

1. Выпуск PASETO

Из личного кабинета (“Reseller API” секция) — выбираете TTL (1ч – 90д) и нажимаете «Выпустить». Токен показывается однократно — сохраните сразу.

Или программно (cookie-сессия в браузере):

curl -X POST https://ethereal.llc/api/me/issue-token   -H "content-type: application/json"   --cookie "ethereal_session=..."   -d '{"ttl_seconds": 86400}'

# → {"token":"v4.local.XXXXX...","expires_at":1777580000,"scope":"issue_keys"}

2. Выпуск препейд-ключа

curl -X POST https://ethereal.llc/api/keys/issue   -H "Authorization: Bearer v4.local.XXXXX..."   -H "content-type: application/json"   -d '{"balance_usd": 50, "name": "funpay-order-12345"}'

# → {
#     "api_key":              "sk-ant-03-...",
#     "balance_usd":          50,
#     "name":                 "funpay-order-12345",
#     "cabinet_balance_left": 1280.50,
#     "issued_to_user_id":    "u_abc...",
#     "paseto_exp":           1777580000
#   }

Выданный api_key работает как обычный ключ из личного кабинета: x-api-key или Authorization: Bearer на любом эндпоинте (/v1/messages, /v1/chat/completions, /v1/messages/count_tokens). Когда баланс исчерпан — возвращает 400 invalid_request_error (Anthropic-совместимая форма). Купивший ключ может проверить остаток на /dashboard/ без входа.

3. Ограничения

  • TTL: 60 с – 90 дней (сверх клампится).
  • balance_usd: > 0 и ≤ 100 000 за один вызов.
  • scope: фиксирован как issue_keys; других scope-ов пока нет.
  • Отзыв: выпущенный PASETO живёт до exp; явного отзыва одного токена нет. Для полного сброса всех выпущенных — пишите на etherealproduction@proton.me.
  • Ошибки: 401 — протухший/поддельный PASETO; 400 — недостаточно баланса кабинета («insufficient cabinet balance»).

4. Безопасность

PASETO-токен равносилен балансу вашего кабинета. Держите в серверных процессах / в выделенных secret-storage. Никогда не коммитить, не совать в браузер или логи. При подозрении на утечку — выпустите новый и напишите на etherealproduction@proton.me для ротации серверного PASETO_SECRET (это инвалидирует все выданные ранее токены).

Справочник ошибок

Все ошибки — JSON. Edge-ошибки Sozu (4xx/5xx без прокси-фрейма) приходят в той же обёртке, чтобы клиенту не нужен был отдельный код-путь.

статус тип причина
401authentication_errormissing or invalid bearer
402insufficient_creditswallet balance hit zero
404not_foundtypically: wrong base URL
413payload_too_largerequest body exceeded the model's context window
429rate_limit_exceededper-key RPM limit reached
502upstream_errorupstream returned 5xx
504upstream_timeoutSSE stream stalled past 600s

Стандартная обёртка:

json
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "authentication required"
  }
}

Лимиты

Per-key, скользящее окно. Дефолты намеренно щедрые для интерактивных coding-петель.

  • RPM — 600 запросов / мин / ключ на Sonnet и Haiku, 200 на Opus.
  • Конкурентность — без жёсткого потолка; edge держит порядка ~10K одновременных TLS-сессий по всем ключам.
  • 1-минутная квота токенов — 1 миллион входных / мин / ключ, сглажено leaky-bucket — короткие всплески не триггерят.

На rejection — HTTP 429 с заголовком retry-after в секундах.

Changelog

От свежего к старому. Только behaviour-relevant изменения — внутренние рефакторы, инфра и правки промптов в git history.

2026-04 · Cache discount + always-on web_search

  • Cache-read tokens now billed at 10% of base input rate when the upstream reports them.
  • The web_search_20250305 server-tool is enabled by default on every request.
  • CJK retry: requests with mostly-Chinese / Japanese inputs that 4xx upstream now retry once.

2026-03 · Vision graceful fallback

  • If the vision-capable upstream is down, image content is described to a text-only fallback model rather than 502'd.

2026-02 · Claude Opus 4.7

  • Added claude-opus-4-7 and claude-opus-4-7-1m.
  • OpenAI-compat alias mapping updated.

2025-12 · Claude Sonnet 4.6

  • Replaced Sonnet 3.7 as the recommended default.