Перейти к содержимому
Главная

Messages API

OdiRouter Messages API принимает формат Anthropic Messages. Он подходит для сценариев генерации текста, где используется Anthropic-совместимая структура сообщений. Непотоковый запрос возвращает полное сообщение одним ответом; потоковый запрос возвращает события инкрементально через SSE.

POST {BASE_URL}/messages

Тело запроса должно включать как минимум model, max_tokens и messages. system является необязательным полем верхнего уровня. Если stream не передан или равен false, endpoint возвращает один JSON-ответ; если stream: true, ответ возвращается как SSE-события.

Окно терминала
curl -sS "${BASE_URL}/messages" \
-H "Authorization: Bearer ${API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 256,
"system": "You are a concise technical assistant.",
"messages": [
{
"role": "user",
"content": "Explain how to connect to the OdiRouter Messages API in two points."
}
]
}'
Окно терминала
curl -N "${BASE_URL}/messages" \
-H "Authorization: Bearer ${API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 256,
"messages": [
{
"role": "user",
"content": "Stream two integration suggestions."
}
],
"stream": true
}'
{
"id": "msg_xxx",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4-6",
"content": [
{
"type": "text",
"text": "1. Configure the Base URL and API Key.\n2. Send requests to /v1/messages."
}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 28,
"output_tokens": 32
}
}
event: message_start
data: {"type":"message_start","message":{"id":"msg_xxx","type":"message","role":"assistant","content":[],"model":"claude-sonnet-4-6"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"1. Configure the Base URL"}}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":32}}
event: message_stop
data: {"type":"message_stop"}
  • Непотоковый текст находится в content blocks text внутри массива content.
  • Потоковые ответы используют SSE. event: обозначает тип события, а data: содержит payload события.
  • Используйте поле usage ответа как источник истины по потреблению.