Messages
MarkdownФормат Anthropic Messages. Его используют Claude Code, Anthropic SDK и многие агенты.
Полное руководство
https://api.ailoot.ai/v1/messagescurl https://api.ailoot.ai/v1/messages \
-H "x-api-key: $AILOOT_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Привет! Что ты умеешь?"}]
}' import anthropic
import os
client = anthropic.Anthropic(max_retries=0,
base_url="https://api.ailoot.ai", # без /v1: SDK сам добавит /v1/messages
api_key=os.environ["AILOOT_API_KEY"],
)
msg = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Объясни в двух предложениях, что такое API."}],
)
print(msg.content[0].text)import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ maxRetries: 0,
baseURL: "https://api.ailoot.ai", // без /v1
apiKey: process.env.AILOOT_API_KEY,
});
const msg = await client.messages.create({
model: "claude-sonnet-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Объясни в двух предложениях, что такое API." }],
});
console.log(msg.content[0].type === "text" ? msg.content[0].text : msg.content);{
"id": "msg_01H…",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-5-5",
"content": [
{ "type": "text", "text": "Привет! Я умею писать и объяснять код, отвечать на вопросы…" }
],
"stop_reason": "end_turn",
"usage": { "input_tokens": 14, "output_tokens": 52 }
}Авторизация
- x-api-keyheaderобязательный
Ключ
sk-…. Можно иAuthorization: Bearer sk-…— так делает Claude Code сANTHROPIC_AUTH_TOKEN. - anthropic-versionheaderнеобязательный
Версия API, например
2023-06-01. SDK отправляют её сами.
Тело запроса
- modelstringобязательный
ID модели с форматом Messages — 776 идентификаторов: Claude, а также GPT, Gemini, DeepSeek, Qwen и другие.
- messagesarrayобязательный
Сообщения
userиassistant;content— строка или блоки (text,image,tool_use,tool_result). - max_tokensintegerобязательный
Максимум токенов ответа. Входит в резерв; если баланса не хватает на полный лимит, Ailoot уменьшает его, но не ниже 256 (1025 с включёнными размышлениями) и сообщает новый лимит в заголовке
X-Ailoot-Max-Tokens-Capped. - systemstring | arrayнеобязательный
Системная инструкция.
- streambooleanнеобязательный
Поток событий SSE (
message_start,content_block_delta, …,message_stop). Платный текст приходит одним блоком после расчёта стоимости. - temperaturenumberнеобязательный
Случайность ответа от 0 до 1.
- toolsarrayнеобязательный
Инструменты:
name,description,input_schema. - tool_choiceobjectнеобязательный
auto,any,toolилиnone. - thinkingobjectнеобязательный
{"type": "enabled", "budget_tokens": N}— размышления у моделей, которые это умеют. - stop_sequencesarrayнеобязательный
Строки, на которых генерация остановится.
Ответ
- contentarray
Блоки ответа:
text,thinking,tool_use. - stop_reasonstring
end_turn,max_tokens,stop_sequenceилиtool_use. - usageobject
input_tokens,output_tokens, для кэша —cache_read_input_tokensиcache_creation_input_tokens.