API
Подключение к API
API совместим с OpenAI (Chat Completions, Responses, Images) и Anthropic (Messages). Подходит любой клиент, где можно указать свой адрес и ключ. Ключ создаётся в профиле, вкладка API.
- Базовый адрес
https://slafy.co/v1- Для Anthropic SDK
https://slafy.co, SDK сам добавит/v1- Ключ
- заголовок
Authorization: Bearer sk-slafy-…илиx-api-key: sk-slafy-… - Список моделей
GET /v1/models, цены на странице Тарифы- Усилия модели
reasoning_effort(в Responsesreasoning.effort):low,medium,high,xhigh,maxилиultra, это максимум для выбранной модели. Если модель не знает значение, Slafy подставит ближайшее, а у моделей без настройки усилий параметр уберёт
Эндпоинты
| Метод и путь | Формат |
|---|---|
POST /v1/chat/completions | OpenAI Chat Completions, стриминг поддерживается |
POST /v1/responses | OpenAI Responses |
POST /v1/messages | Anthropic Messages, стриминг поддерживается |
POST /v1/messages/count_tokens | Anthropic, подсчёт токенов, бесплатно |
POST /v1/images/generations | OpenAI Images, ответ в b64_json |
POST /v1/images/edits | OpenAI Images, multipart/form-data |
GET /v1/models | Список доступных моделей |
Какая модель работает через какой эндпоинт, видно в тарифах.
Claude Code
Задайте переменные окружения перед запуском claude:
export ANTHROPIC_BASE_URL="https://slafy.co" export ANTHROPIC_AUTH_TOKEN="sk-slafy-ваш_ключ" export ANTHROPIC_MODEL="claude-sonnet-5-5" export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-5-5"
Codex CLI
Добавьте провайдера в ~/.codex/config.toml и положите ключ в переменную SLAFY_API_KEY:
model = "gpt-6.1-sol" model_provider = "slafy" [model_providers.slafy] name = "Slafy" base_url = "https://slafy.co/v1" env_key = "SLAFY_API_KEY" wire_api = "responses"
Cursor, Cline, Continue, Roo Code
Выберите провайдера «OpenAI Compatible», укажите Base URL https://slafy.co/v1, ключ и имя модели, например claude-sonnet-5-5.
Python, OpenAI SDK
from openai import OpenAI
client = OpenAI(base_url="https://slafy.co/v1", api_key="sk-slafy-ваш_ключ")
r = client.chat.completions.create(
model="claude-sonnet-5-5",
messages=[{"role": "user", "content": "Привет"}],
)
print(r.choices[0].message.content)Python, Anthropic SDK
import anthropic
client = anthropic.Anthropic(base_url="https://slafy.co", api_key="sk-slafy-ваш_ключ")
m = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Привет"}],
)
print(m.content[0].text)curl, стриминг
curl https://slafy.co/v1/messages \
-H "x-api-key: sk-slafy-ваш_ключ" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model": "claude-sonnet-5-5", "max_tokens": 512, "stream": true,
"messages": [{"role": "user", "content": "Расскажи анекдот"}]}'Ошибки
| HTTP | Код | Что делать |
|---|---|---|
| 401 | invalid_api_key | Ключ не найден или отключён. Скопируйте его из профиля полностью. |
| 402 | insufficient_balance | Токены закончились, пополните баланс. |
| 402 | key_limit_reached | Ключ упёрся в свой лимит расходов, поднимите лимит во вкладке API. |
| 404 | model_not_found | Нет такой модели. Проверьте имя по GET /v1/models. |
| 429 | rate_limit_exceeded | Слишком часто. Повторите через несколько секунд. |
| 5xx | upstream_error | Сбой на стороне модели, запрос не оплачивается. Повторите. |
В каждом ответе есть заголовок x-request-id, по нему запрос находится в истории.