Messages API
Messages API: основной способ работать с моделями Claude через codexkey. Вы отправляете структурированный список сообщений, в ответ приходит сообщение модели.
Эндпоинт
POST https://api.codexkey.ru/v1/messagesАутентификация
Укажите API-ключ в заголовке x-api-key:
x-api-key: sk_cdx_YOUR_KEYТело запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
model | string | Да | ID модели (например, claude-sonnet-5). |
max_tokens | integer | Да | Максимальное число токенов в ответе. |
messages | array | Да | Массив сообщений. В каждом role ("user" или "assistant") и content (строка либо массив блоков контента). |
system | string | Нет | Системный промпт, задающий поведение модели. |
temperature | number | Нет | Температура сэмплирования от 0 до 1. По умолчанию: 1. |
top_p | number | Нет | Параметр nucleus sampling. По умолчанию: 0.999. |
stream | boolean | Нет | При true ответ приходит потоком Server-Sent Events. По умолчанию false. |
thinking | object | Нет | Включить расширенное размышление. См. раздел Размышление ниже. |
Ответ
| Поле | Тип | Описание |
|---|---|---|
id | string | Уникальный ID сообщения (например, msg_01XFDUDYJgAACzvnptvVoYEL). |
type | string | Всегда "message". |
role | string | Всегда "assistant". |
content | array | Массив блоков контента; у каждого блока есть type ("text") и text. |
model | string | Модель, сгенерировавшая ответ. |
stop_reason | string | Причина остановки: "end_turn", "max_tokens" или "stop_sequence". |
usage | object | Расход токенов: input_tokens и output_tokens. |
Пример
Запрос
curl https://api.codexkey.ru/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: sk_cdx_YOUR_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, Claude!"}
]
}'Ответ
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! How can I help you today?"
}
],
"model": "claude-sonnet-5",
"stop_reason": "end_turn",
"usage": {
"input_tokens": 12,
"output_tokens": 10
}
}Стриминг
Передайте stream: true в теле запроса, и ответ придёт потоком Server-Sent Events (SSE). Формат событий описан на странице Стриминг.
curl --no-buffer https://api.codexkey.ru/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: sk_cdx_<YOUR_KEY>" \
-H "anthropic-version: 2023-06-01" \
-H "accept: text/event-stream" \
-d '{
"model": "claude-opus-5-5",
"max_tokens": 1024,
"stream": true,
"messages": [{"role": "user", "content": "Hello"}]
}'Vision (блоки изображений)
Моделям с vision отправляйте мультимодальный контент: текст вместе с блоками image (ниже пример с URL).
{
"model": "claude-sonnet-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "What is in this image?"},
{
"type": "image",
"source": {"type": "url", "url": "https://example.com/picture.jpg"}
}
]
}
]
}Размышление (Extended Thinking)
Расширенное размышление даёт модели время обдумать сложную задачу до ответа. Включается объектом thinking в теле запроса:
{
"model": "claude-sonnet-5",
"max_tokens": 16000,
"thinking": {
"type": "enabled",
"budget_tokens": 10000
},
"messages": [
{"role": "user", "content": "What is the derivative of x^3 * sin(x)?"}
]
}Когда размышление включено, в массиве content ответа может появиться блок type: "thinking" с рассуждениями модели, а после него итоговый блок type: "text". Предел токенов на размышление задаёт budget_tokens.