Messages
Диалог, инструменты и рассуждения в формате Messages
Создаёт сообщение модели в формате Messages
POST https://api.getapi.ru/v1/messages
Заголовки
| Заголовок | Значение |
|---|---|
x-api-key | Ключ GetAPI, альтернатива Authorization: Bearer <key> |
anthropic-version | 2023-06-01 |
Content-Type | application/json |
Параметры
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
model | string | Да | Идентификатор модели |
messages | array | Да | Сообщения с ролями user и assistant |
max_tokens | integer | Нет | Запрашиваемый лимит вывода, задавайте явно |
system | string или array | Нет | Системная инструкция |
stream | boolean | Нет | Поток SSE |
tools | array | Нет | Функции с name, description и input_schema |
tool_choice | object | Нет | Правило выбора функции |
thinking | object | Нет | Управление рассуждениями для совместимых моделей |
В отличие от требований прямого API поставщика, GetAPI может принять запрос без max_tokens
Передавайте его явно для управления длиной ответа
Пример запроса
curl https://api.getapi.ru/v1/messages \
-H "x-api-key: $GETAPI_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-haiku-4-5-20251001",
"max_tokens": 128,
"system": "Отвечай кратко",
"messages": [{"role": "user", "content": "Что такое API?"}]
}'Пример ответа
{
"id": "msg_example",
"type": "message",
"role": "assistant",
"model": "claude-haiku-4-5-20251001",
"content": [{"type": "text", "text": "API позволяет приложениям обмениваться данными"}],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {"input_tokens": 20, "output_tokens": 12}
}Блоки ответа
content содержит массив блоков
Обрабатывайте их по type, а не по позиции
| Тип | Содержимое |
|---|---|
text | Текст в поле text |
tool_use | Вызов функции: id, name, input |
thinking | Блок рассуждений, может содержать signature |
stop_reason: "end_turn" завершает ход
max_tokens обозначает достижение лимита
tool_use обозначает запрос на выполнение инструмента
Инструменты
Опишите функцию через JSON Schema в input_schema
После получения tool_use выполните разрешённое действие в своём приложении
Добавьте полное сообщение assistant в историю, затем сообщение user с результатом
{
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": "toolu_example",
"content": "{\"temperature\": 18}"
}
]
}tool_use_id должен совпадать с id вызова
Для ошибки инструмента используйте is_error: true
Общий порядок работы описан в руководстве
Рассуждения и кеширование
На моделях с ручным бюджетом задайте thinking: {"type":"enabled","budget_tokens":1024} и max_tokens больше бюджета рассуждений
Для отключения поддерживаемого режима используется thinking: {"type":"disabled"}
Не меняйте возвращённые блоки рассуждений и подписи при продолжении диалога
cache_control на блоках содержимого предназначен для совместимых моделей
Наличие кеширования определяйте по счётчикам cache_read_input_tokens и cache_creation_input_tokens, когда они присутствуют
Не считайте их обязательными полями
Ошибки и ограничения
Ошибки возвращаются в формате GetAPI Не переносите на сервис все возможности Messages API поставщика Поддержка типов блоков, инструментов и параметров зависит от модели