Claude
API интерфейс
Используйте модели Claude, вызывая API интерфейс, предоставляемый TokenOff.
Получение API ключа
Перейдите на страницу API ключи, чтобы создать свой API ключ.
API Base URL
https://tokenoff.com/apiМодели Claude вызываются через интерфейс /v1/messages, совместимый с Anthropic Messages API. Это означает, что вы можете использовать официальный Anthropic Agent SDK без каких-либо изменений для адаптации.
curl
Блокирующий вызов
curl https://tokenoff.com/api/v1/messages \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello"}
]
}'
Вывод:
{"id":"msg_2be959c6a0f24a3ab2f8989ac75ba170","type":"message","role":"assistant","content":[{"type":"text","text":"Hey! I'm Claude Code, your AI assistant. I can help you with development tasks, writing, analysis, infrastructure work, and pretty much any professional task you need.\n\nI have access to your local filesystem and can execute commands on your macOS system. What can I help you with today?"}],"model":"claude-sonnet-4.5","stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":29,"output_tokens":107,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"service_tier":"standard"}}Потоковый ответ
curl https://tokenoff.com/api/v1/messages \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello"}
],
"stream": true
}'
Вывод:
event: message_start
data: {"type":"message_start","message":{"id":"msg_9eca72b683ce4b48ac2d9e3b81e1734d","type":"message","role":"assistant","content":[],"model":"claude-sonnet-4.5","stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":5,"output_tokens":0,"cache_creation_input_tokens":4,"cache_read_input_tokens":20,"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":4},"service_tier":"standard"}}}
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
event: ping
data: {"type": "ping"}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Hello"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"! I'm"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Claude Code."}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" I can"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" help you with development"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" tasks,"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" writing"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" code, debugging"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":", system"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" administration"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":", or"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" any other professional work you"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" need."}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" What would you like to wor"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"k on?"}}
event: content_block_stop
data: {"type":"content_block_stop","index":0}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":5,"output_tokens":48,"cache_creation_input_tokens":4,"cache_read_input_tokens":20,"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":4},"service_tier":"standard"}}
event: message_stop
data: {"type":"message_stop"}Python
pip install anthropicБлокирующий вызов
from anthropic import Anthropic
client = Anthropic(
auth_token="your_api_key_here",
base_url="https://tokenoff.com/api",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "Hello"}
],
)
print(message.content)
Вывод:
[TextBlock(citations=None, text="Hey! I'm Claude Code, not Claude — but happy to help all the same. What can I do for you?", type='text')]Потоковый ответ
from anthropic import Anthropic
client = Anthropic(
auth_token="your_api_key_here",
base_url="https://tokenoff.com/api",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "Hello"}
],
stream=True,
)
for event in message:
print(event)
Вывод:
RawMessageStartEvent(message=Message(id='msg_b82fc92b20b8484e925f821cc5a4a2cf', container=None, content=[], model='claude-opus-4.6', role='assistant', stop_reason=None, stop_sequence=None, type='message', usage=Usage(cache_creation=CacheCreation(ephemeral_1h_input_tokens=0, ephemeral_5m_input_tokens=3), cache_creation_input_tokens=3, cache_read_input_tokens=24, inference_geo=None, input_tokens=5, output_tokens=0, server_tool_use=None, service_tier='standard')), type='message_start')
RawContentBlockStartEvent(content_block=TextBlock(citations=None, text='', type='text'), index=0, type='content_block_start')
RawContentBlockDeltaEvent(delta=TextDelta(text='Hey', type='text_delta'), index=0, type='content_block_delta')
RawContentBlockDeltaEvent(delta=TextDelta(text='!', type='text_delta'), index=0, type='content_block_delta')
RawContentBlockDeltaEvent(delta=TextDelta(text=" I'm Claude Code, not", type='text_delta'), index=0, type='content_block_delta')
RawContentBlockDeltaEvent(delta=TextDelta(text=' Claude —', type='text_delta'), index=0, type='content_block_delta')
RawContentBlockDeltaEvent(delta=TextDelta(text=' but happy', type='text_delta'), index=0, type='content_block_delta')
RawContentBlockDeltaEvent(delta=TextDelta(text=' to help all', type='text_delta'), index=0, type='content_block_delta')
RawContentBlockDeltaEvent(delta=TextDelta(text=' the', type='text_delta'), index=0, type='content_block_delta')
RawContentBlockDeltaEvent(delta=TextDelta(text=' same', type='text_delta'), index=0, type='content_block_delta')
RawContentBlockDeltaEvent(delta=TextDelta(text='.', type='text_delta'), index=0, type='content_block_delta')
RawContentBlockDeltaEvent(delta=TextDelta(text=' What', type='text_delta'), index=0, type='content_block_delta')
RawContentBlockDeltaEvent(delta=TextDelta(text=' can I do for you?', type='text_delta'), index=0, type='content_block_delta')
RawContentBlockStopEvent(index=0, type='content_block_stop')
RawMessageDeltaEvent(delta=Delta(container=None, stop_reason='end_turn', stop_sequence=None), type='message_delta', usage=MessageDeltaUsage(cache_creation_input_tokens=3, cache_read_input_tokens=24, input_tokens=5, output_tokens=26, server_tool_use=None, cache_creation={'ephemeral_1h_input_tokens': 0, 'ephemeral_5m_input_tokens': 3}, service_tier='standard'))
RawMessageStopEvent(type='message_stop')TypeScript
npm install @anthropic-ai/sdkБлокирующий вызов
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
authToken: "your_api_key_here",
baseURL: "https://tokenoff.com/api",
});
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [
{ role: "user", content: "Hello" },
],
});
console.log(message.content);
Вывод:
[
{
type: 'text',
text: "Hey! I'm Claude Code, not Claude — but happy to help all the same. What can I do for you?"
}
]Потоковый ответ
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
authToken: "your_api_key_here",
baseURL: "https://tokenoff.com/api",
});
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [
{ role: "user", content: "Hello" },
],
stream: true,
});
for await (const event of message) {
console.log(event);
}
Вывод:
{
type: 'message_start',
message: {
id: 'msg_94119cfa27ab499c9f0abd2b7d50732b',
type: 'message',
role: 'assistant',
content: [],
model: 'claude-opus-4.6',
stop_reason: null,
stop_sequence: null,
usage: {
input_tokens: 6,
output_tokens: 0,
cache_creation_input_tokens: 3,
cache_read_input_tokens: 23,
cache_creation: [Object],
service_tier: 'standard'
}
}
}
{
type: 'content_block_start',
index: 0,
content_block: { type: 'text', text: '' }
}
{
type: 'content_block_delta',
index: 0,
delta: { type: 'text_delta', text: 'Hello' }
}
{
type: 'content_block_delta',
index: 0,
delta: { type: 'text_delta', text: '! How' }
}
{
type: 'content_block_delta',
index: 0,
delta: { type: 'text_delta', text: ' can I help you today?' }
}
{ type: 'content_block_stop', index: 0 }
{
type: 'message_delta',
delta: { stop_reason: 'end_turn', stop_sequence: null },
usage: {
input_tokens: 6,
output_tokens: 10,
cache_creation_input_tokens: 3,
cache_read_input_tokens: 23,
cache_creation: { ephemeral_1h_input_tokens: 0, ephemeral_5m_input_tokens: 3 },
service_tier: 'standard'
}
}
{ type: 'message_stop' }Другие языки
Для SDK на других языках обратитесь к официальной документации.
Поддерживаемые модели
claude-sonnet-4-6
Claude Sonnet 4.6
claude-sonnet-4-5-20250929
Claude Sonnet 4.5
claude-sonnet-4-20250514
Claude Sonnet 4
claude-haiku-4-5-20251001
Claude Haiku 4.5
claude-opus-4-7
Claude Opus 4.7
claude-opus-4-6
Claude Opus 4.6
claude-opus-4-5-20251101
Claude Opus 4.5
claude-opus-4-1-20250805
Claude Opus 4.1
claude-opus-4-20250514
Claude Opus 4
Свяжитесь с нами
Если у вас возникли вопросы или проблемы при использовании TokenOff:
Напишите нам наsupport@tokenoff.comи другие официальные каналы для технической поддержки
Создайте Issue в нашемGithubрепозитории