Документация
Как подключить OdKeys и как расходуются токены.
Начало
Нужны две вещи: базовый адрес и ключ. Всё остальное совпадает с официальным API Anthropic, поэтому существующий код менять не придётся.
https://proxydon.duckdns.orgclaude-opus-5Anthropic API
Эндпоинт POST /v1/messages повторяет схему Anthropic: стриминг через SSE, tool use, system prompt, thinking по запросу. Ответ содержит usage с чистыми входными и выходными токенами.
curl https://proxydon.duckdns.org/v1/messages \
-H "x-api-key: sk-ваш-ключ" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-5",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Объясни разницу между async и defer"}
]
}'from anthropic import Anthropic
client = Anthropic(
base_url="https://proxydon.duckdns.org",
api_key="sk-ваш-ключ",
)
message = client.messages.create(
model="claude-opus-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Объясни разницу между async и defer"}],
)
print(message.content[0].text)
print(message.usage.input_tokens, message.usage.output_tokens)import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
baseURL: "https://proxydon.duckdns.org",
apiKey: "sk-ваш-ключ",
});
const stream = await client.messages.stream({
model: "claude-opus-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Объясни разницу между async и defer" }],
});
for await (const event of stream) {
if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
process.stdout.write(event.delta.text);
}
}Claude Code
Задайте переменные окружения перед запуском — CLI сам подхватит адрес и ключ.
export ANTHROPIC_BASE_URL="https://proxydon.duckdns.org"
export ANTHROPIC_AUTH_TOKEN="sk-ваш-ключ"
export ANTHROPIC_MODEL="claude-opus-5"
claudeOpenAI API
Эндпоинт POST /v1/chat/completions понимает формат OpenAI: messages, stream, stream_options, tools. Подходит для клиентов, которые не умеют работать с Anthropic напрямую.
curl https://proxydon.duckdns.org/v1/chat/completions \
-H "Authorization: Bearer sk-ваш-ключ" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-5",
"messages": [
{"role": "user", "content": "Объясни разницу между async и defer"}
]
}'from openai import OpenAI
client = OpenAI(
base_url="https://proxydon.duckdns.org/v1",
api_key="sk-ваш-ключ",
)
response = client.chat.completions.create(
model="claude-opus-5",
messages=[{"role": "user", "content": "Объясни разницу между async и defer"}],
)
print(response.choices[0].message.content)Модели
Список доступных моделей всегда можно получить запросом GET /v1/models.
| Идентификатор | Контекст | Макс. вывод | Форматы |
|---|---|---|---|
claude-opus-5 | 1 000 000 | 64 000 | Anthropic · OpenAI |
curl https://proxydon.duckdns.org/v1/models -H "Authorization: Bearer sk-ваш-ключ"Как считаются токены
С баланса списывается сумма входных и выходных токенов запроса. Никаких множителей и наценок за размер контекста нет.
Запрос на 1200 входных и 300 выходных токенов уменьшит остаток на 1500 токенов.
- Кэшированные токены не списываются.
- Если стрим оборвался, списывается фактически сгенерированное, а не запрошенное max_tokens.
- Каждый запрос попадает в журнал личного кабинета: видно input, output и точное списание.
Лимиты
Лимиты защищают общий пул от одного слишком активного клиента. Для больших пакетов значения выше — смотрите описание лота.
| Параметр | Значение по умолчанию |
|---|---|
| Запросов в минуту | 60 |
| Одновременных запросов | 5 |
| Срок действия токенов | не ограничен |
Коды ошибок
Формат ошибки соответствует стандарту того API, к которому вы обратились: Anthropic-схема для /v1/messages и OpenAI-схема для /v1/chat/completions.
| HTTP | Что означает | Что делать |
|---|---|---|
401 | Ключ не передан или не найден | Проверьте заголовок и сам ключ |
402 | Закончились токены | Докупите токены на ключ или купите новый пакет |
403 | Ключ заблокирован, истёк или запрещён IP | Проверьте статус в кабинете, напишите в поддержку |
404 | Неизвестная модель или путь | Сверьтесь с GET /v1/models |
429 | Превышен лимит запросов | Повторите с задержкой, ориентируйтесь на Retry-After |
502 / 503 | Временная проблема на стороне сервиса | Повторите запрос через несколько секунд |
Покупка и продление
Ключ выдаётся сразу после оплаты. Токены можно докупить на тот же ключ — менять конфигурацию клиента не нужно.
| Пакет | Токены | Цена |
|---|---|---|
| 1M токенов | 1 M | 149 ₽ |
| 5M токенов | 5 M | 590 ₽ |
| 10M токенов | 10 M | 990 ₽ |
| 25M токенов | 25 M | 2 190 ₽ |
| 50M токенов | 50 M | 3 990 ₽ |
Частые вопросы
Ключ можно использовать на нескольких машинах?
Да, ограничение только по числу одновременных запросов. При необходимости в кабинете можно закрепить ключ за конкретными IP.
Поддерживается ли tool use и function calling?
Да, в обоих форматах. Схема запроса и ответа совпадает с оригинальным API.
Что с extended thinking?
По умолчанию выключен, чтобы ответ соответствовал ожиданиям обычного клиента. Передайте thinking с type: enabled — и рассуждение вернётся в ответе как в Anthropic API.
Есть ли ограничение на размер запроса?
Контекст модели — 1 000 000 токенов, ограничение на тело запроса — 32 МБ.