ДокументацияClaude Messages API
Claude Messages API
POST /v1/messages принимает и возвращает нативный формат Anthropic Messages API. Используйте его с Claude Code, Anthropic SDK и другими клиентами, которые ожидают endpoint Anthropic, а не OpenAI.
Адрес
POST https://api.zenvy.su/v1/messagesДля Claude Code также доступен подсчёт токенов:
POST https://api.zenvy.su/v1/messages/count_tokensЗаголовки
| Заголовок | Значение |
|---|---|
x-api-key | sk-zenvy-... |
anthropic-version | 2023-06-01 |
Content-Type | application/json |
Также поддерживается Authorization: Bearer sk-zenvy-... при ручных запросах.
Первый запрос
curl https://api.zenvy.su/v1/messages \
-H "x-api-key: sk-zenvy-..." \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4.6",
"max_tokens": 1024,
"messages": [
{ "role": "user", "content": "Привет! Объясни, что такое Zenvy." }
]
}'Пример ответа
{
"id": "msg_...",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4.6",
"content": [
{
"type": "text",
"text": "Zenvy — единый API для AI-моделей."
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 19,
"output_tokens": 69
}
}input_tokens — входные токены, output_tokens — токены ответа. Стоимость считается по тем же ценам модели, что и у /v1/chat/completions.
Anthropic SDK
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.ZENVY_API_KEY,
baseURL: "https://api.zenvy.su/v1"
});
const message = await client.messages.create({
model: "claude-sonnet-4.6",
max_tokens: 1024,
messages: [{ role: "user", content: "Привет!" }]
});
console.log(message.content[0]);Системный промпт и блоки контента
{
"model": "claude-sonnet-4.6",
"max_tokens": 512,
"system": "Отвечай кратко и по-русски.",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Назови три идеи для названия продукта." }
]
}
]
}Если для маршрута доступен нативный Anthropic-compatible /v1/messages, Zenvy прокидывает запрос напрямую — сохраняются content blocks, streaming-события, thinking и tool-use. Иначе используется fallback через /v1/chat/completions с преобразованием non-text блоков в текст.
Стриминг
Передайте "stream": true, чтобы получить Anthropic SSE-события: message_start, content_block_delta, message_delta, message_stop.
curl -N https://api.zenvy.su/v1/messages \
-H "x-api-key: sk-zenvy-..." \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4.6",
"max_tokens": 1024,
"stream": true,
"messages": [{ "role": "user", "content": "Напиши одно предложение." }]
}'Поддерживаются temperature, top_p и stop_sequences.
Подсчёт токенов
POST /v1/messages/count_tokens возвращает оценку входных токенов в формате Anthropic API. Claude Code использует этот endpoint при планировании контекста.
curl https://api.zenvy.su/v1/messages/count_tokens \
-H "x-api-key: sk-zenvy-..." \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4.6",
"messages": [
{ "role": "user", "content": "Привет!" }
]
}'Ответ:
{
"input_tokens": 8
}