Подключите любой AI‑клиент
Claude Code, расширения VS Code и существующие OpenAI- или Anthropic-приложения работают через единый ключ Emerald.
https://emeraldai.sbs
Быстрый старт
Создайте ключ
Откройте кабинет и выпустите API-ключ для своего приложения.
Выберите формат
OpenAI Chat Completions или Anthropic Messages — оба работают через API v1.
Отправьте запрос
Укажите публичный ID модели. Расход вернётся в ответе и заголовках.
Авторизация
Не размещайте ключ в браузерном JavaScript и публичных репозиториях. Передавайте его с серверной стороны одним из способов:
Authorization: Bearer sk-em-•••••••• # Anthropic-совместимый вариант x-api-key: sk-em-•••••••• anthropic-version: 2023-06-01
Endpoints
/v1/modelsКаталог доступных моделей/v1/accountБаланс и статистика аккаунта/v1/chat/completionsOpenAI Chat Completions/v1/images/generationsGPT Image 2 · генерация изображений/v1/messagesAnthropic Messages/v1/messages/count_tokensОценка контекста для Claude CodeGPT Image 2
/v1/images/generationsEndpoint совместим с OpenAI Images API: передайте model, prompt, размер и качество. Emerald возвращает изображение в data[0].b64_json и списывает фиксированные 400 000 токенов только после успешной генерации.
from base64 import b64decode
from openai import OpenAI
client = OpenAI(
api_key="sk-em-...",
base_url="https://emeraldai.sbs/v1",
)
result = client.images.generate(
model="gpt-image-2",
prompt="Изумрудный мегаполис на рассвете",
size="1024x1024",
quality="medium",
)
with open("emerald.webp", "wb") as image_file:
image_file.write(b64decode(result.data[0].b64_json))
curl https://emeraldai.sbs/v1/images/generations \
-H "Authorization: Bearer sk-em-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "Изумрудный мегаполис на рассвете",
"size": "1024x1024",
"quality": "medium",
"output_format": "webp"
}'
n=1, quality=auto|low|medium|high, output_format=png|jpeg|webp, background=auto|opaque|transparent. Для прозрачного фона используйте PNG или WEBP.Выберите, что подключаете
Для CLI и агентных расширений поддерживаются tool calls, результаты инструментов и потоковые ответы.
Claude Code через Emerald
Claude Code умеет работать через LLM gateway. Укажите базовый URL без /v1, ключ Emerald и публичный ID модели.
macOS / Linux / WSL
npm install -g @anthropic-ai/claude-code export ANTHROPIC_BASE_URL="https://emeraldai.sbs" export ANTHROPIC_AUTH_TOKEN="sk-em-..." export ANTHROPIC_MODEL="claude-sonnet-5" export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-5" export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5" export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash" export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 claude --model claude-sonnet-5
Windows PowerShell
$env:ANTHROPIC_BASE_URL = "https://emeraldai.sbs" $env:ANTHROPIC_AUTH_TOKEN = "sk-em-..." $env:ANTHROPIC_MODEL = "claude-sonnet-5" $env:ANTHROPIC_DEFAULT_OPUS_MODEL = "claude-opus-5" $env:ANTHROPIC_DEFAULT_SONNET_MODEL = "claude-sonnet-5" $env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "deepseek-v4-flash" $env:CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY = "1" claude --model claude-sonnet-5
GET /v1/models, а переменные ANTHROPIC_DEFAULT_* привязывают встроенные алиасы opus, sonnet и haiku к профилям Emerald. ANTHROPIC_AUTH_TOKEN отправляется как Bearer‑ключ. Не сохраняйте ключ в репозитории.Cline и Continue
Сам VS Code не выбирает API‑провайдера. Установите агентное расширение и укажите OpenAI‑совместимый URL Emerald.
Cline
Визуальная настройка- Откройте Cline → Settings
- API Provider: OpenAI Compatible
- Base URL:
https://emeraldai.sbs/v1 - API Key:
sk-em-... - Model ID:
claude-sonnet-5
Continue
config.yamlname: Emerald AI
version: 0.0.1
schema: v1
models:
- name: Emerald Sonnet
provider: openai
model: claude-sonnet-5
apiBase: https://emeraldai.sbs/v1
apiKey: sk-em-...
roles: [chat, edit, apply]
Roo Code, свои приложения и SDK
Выберите провайдера OpenAI Compatible, URL https://emeraldai.sbs/v1, ключ Emerald и любой ID из каталога.
base_url="https://emeraldai.sbs/v1" и обычный Bearer‑ключ. Поддерживаются streaming и function calling.
base_url="https://emeraldai.sbs" и ключ через api_key. Поддерживаются Messages и tools.
Chat Completions
/v1/chat/completionsfrom openai import OpenAI
client = OpenAI(
api_key="sk-em-...",
base_url="https://emeraldai.sbs/v1",
)
response = client.chat.completions.create(
model="claude-fable-5",
messages=[{"role": "user", "content": "Привет!"}],
)
print(response.choices[0].message.content)
print(response.usage.total_tokens)
Messages
/v1/messagesfrom anthropic import Anthropic
client = Anthropic(
api_key="sk-em-...",
base_url="https://emeraldai.sbs",
)
message = client.messages.create(
model="gemini-3-1-pro",
max_tokens=1024,
messages=[{"role": "user", "content": "Привет!"}],
)
print(message.content[0].text)
print(message.usage.output_tokens)
Запрос через cURL
curl https://emeraldai.sbs/v1/chat/completions \
-H "Authorization: Bearer sk-em-..." \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-3-6",
"messages": [{"role": "user", "content": "Привет!"}]
}'
Потоковые ответы
Передайте stream=true. Сервер вернёт события Server-Sent Events и завершит поток маркером, совместимым с выбранным SDK.
OpenAI
Получайте части текста из choices[0].delta.content.
Anthropic
Обрабатывайте события content_block_delta и итоговый message_stop.
tool_use и tool_result; в OpenAI-формате — tools и tool_calls. Emerald преобразует оба формата и сохраняет списание по фактическому usage.Модели и коэффициенты
Публичный ID стабилен. Коэффициент показывает, сколько токенов баланса будет списано за один фактический токен запроса и ответа.
claude-fable-5-1Claude FABLE 5.1×14claude-fable-5Claude FABLE 5×11gpt-6-astraGPT 6 Astra×12gpt-6-1-solGPT 6.1 SOL×6gpt-6-solGPT 6 SOL×5claude-opus-5-5Claude Opus 5.5×8claude-sonnet-5-5Claude Sonnet 5.5×4claude-haiku-4-5Claude Haiku 4.5×1.5gemini-3-8-flashGemini 3.8 Flash×3gemini-3-5-flash-liteGemini 3.5 Flash Lite×1gemini-3-1-proGemini 3.1 Pro×3gpt-5-6-solGPT 5.6 SOL×7gpt-5-6-terraGPT 5.6 Terra×1gpt-5-6-lunaGPT 5.6 Luna×1claude-opus-5Claude Opus 5×5grok-4-6GROK 4.6×4grok-4-5GROK 4.5×3claude-opus-4-8Claude Opus 4.8×5gpt-5-5GPT 5.5×1claude-sonnet-5Claude Sonnet 5×3.5claude-opus-4-6Claude Opus 4.6×2deepseek-v4-proDeepSeek V4 Pro×1.5deepseek-v4-1-flashDeepSeek V4.1 Flash×1glm-5-3-flashGLM 5.3 Flash×3kimi-k3Kimi K3×5qwen-3-6Qwen 3.6×3qwen-3-8-maxQwen 3.8 MAX×6gemini-3-7-flashGemini 3.7 Flash×4gemini-3-6-flashGemini 3.6 Flash×3ox-alphaOX Alpha×0.2minimax-m3MiniMax M3×1.5gpt-5-4-miniGPT 5.4 mini×2.5step-3-7-flashStep 3.7 Flash×0.6deepseek-v4-flashDeepSeek V4 Flash×0.8nemotron-freeNemotron (FREE)×0gpt-image-2GPT Image 2400 000 / фотоБаланс и списание
/v1/accountТекстовые модели: ceil((input_tokens + output_tokens) × multiplier). Генерация GPT Image 2 списывает фиксированные 400 000 токенов за успешно созданное изображение.
billing, стандартном объекте usage и заголовке x-emerald-charged-tokens. В api_key_limits ответа /v1/account доступны дневной лимит запросов, месячный лимит токенов и текущий расход выбранного ключа. Лимиты настраиваются отдельно для каждого ключа в кабинете; значение 0 означает без ограничений.Коды ошибок
Ответ всегда содержит JSON-объект error. Машиночитаемый код также доступен в заголовке x-emerald-error-code.
invalid_requestПроверьте JSON, модель и обязательные поля.invalid_api_keyПроверьте ключ и заголовок авторизации.insufficient_balanceНедостаточно токенов на балансе.account_bannedДоступ аккаунта или адреса заблокирован.api_key_limit_exceededИсчерпан дневной или месячный лимит этого ключа. Тип лимита указан в x-emerald-limit-type.upstream_unavailableПровайдер временно недоступен; повторите с задержкой.