Anthropic Messages
POST https://router.1-lab.online/v1/messages — эндпоинт в формате API Anthropic. Он нужен, если ваш код уже написан на SDK anthropic или программа умеет работать только с API Anthropic. Используйте его с моделями Claude (anthropic/...).
Для нового кода проще Chat Completions: там доступны все модели, а модели Claude работают так же.
Заголовки
| Заголовок | Значение |
|---|---|
x-api-key |
ваш ключ sk-... (можно и Authorization: Bearer sk-...) |
anthropic-version |
2023-06-01 |
content-type |
application/json |
cURL
curl https://router.1-lab.online/v1/messages \
-H "x-api-key: $ROUTER_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-5.5",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Составь план статьи про выбор CRM для малого бизнеса"}
]
}'
Параметр max_tokens в этом формате обязателен. Системная инструкция передаётся отдельным полем system, а не сообщением.
Python (SDK Anthropic)
Адрес указывается без /v1 — SDK добавит путь сам.
pip install anthropic
import os
from anthropic import Anthropic
client = Anthropic(
base_url="https://router.1-lab.online",
api_key=os.environ["ROUTER_API_KEY"],
)
msg = client.messages.create(
model="anthropic/claude-sonnet-5.5",
max_tokens=1024,
system="Ты маркетолог. Пиши просто и по делу.",
messages=[{"role": "user", "content": "Составь план статьи про выбор CRM для малого бизнеса"}],
)
print(msg.content[0].text)
print(msg.usage) # input_tokens, output_tokens, cache_read_input_tokens ...
TypeScript (SDK Anthropic)
npm install @anthropic-ai/sdk
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
baseURL: "https://router.1-lab.online",
apiKey: process.env.ROUTER_API_KEY,
});
const msg = await client.messages.create({
model: "anthropic/claude-sonnet-5.5",
max_tokens: 1024,
messages: [{ role: "user", content: "Составь план статьи про выбор CRM для малого бизнеса" }],
});
console.log(msg.content);
Потоковый ответ
Добавьте "stream": true в тело запроса или используйте client.messages.stream(...) в SDK. События приходят в формате API Anthropic: message_start, content_block_delta, message_stop и другие.
with client.messages.stream(
model="anthropic/claude-sonnet-5.5",
max_tokens=1024,
messages=[{"role": "user", "content": "Напиши короткое поздравление коллеге."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
Кэш
Повторяющееся начало запроса (длинная инструкция, документ) можно пометить полем cache_control, как в API Anthropic. Повторные запросы с тем же началом оплачиваются дешевле. Сколько токенов записано в кэш и прочитано из него, видно в usage ответа и в разбивке стоимости в истории запросов. Цены — в разделе Модели и цены.