эндпоинт /v1/messages принимает запросы в формате anthropic messages. код, написанный под api anthropic, переносится без изменений — меняются только базовый адрес и ключ.
запрос
обязательные поля: model, messages и max_tokens — ограничение на длину ответа. инструкция для модели передаётся отдельным полем system.
официальные библиотеки anthropic сами дописывают путь /v1/messages, поэтому в качестве базового адреса им указывается https://api.airakurs.ru.
curl "https://api.airakurs.ru/v1/messages" \
-H "Content-Type: application/json" \
-H "X-API-Key: <КЛЮЧ>" \
-d '{
"model": "anthropic/claude-sonnet-4.5",
"max_tokens": 1024,
"system": "Отвечай коротко.",
"messages": [
{"role": "user", "content": "Назови столицу Австралии."}
]
}'from anthropic import Anthropic
client = Anthropic(
api_key="<КЛЮЧ>",
base_url="https://api.airakurs.ru",
)
message = client.messages.create(
model="anthropic/claude-sonnet-4.5",
max_tokens=1024,
system="Отвечай коротко.",
messages=[{"role": "user", "content": "Назови столицу Австралии."}],
)
print(message.content[0].text)ключ передаётся заголовком X-API-Key — так его отправляют официальные библиотеки anthropic. заголовок Authorization тоже работает. заголовок anthropic-version подставляется автоматически, передавать его не нужно.
если в поле model указано короткое имя без вендора, подставляется anthropic — на этом эндпоинте это вендор по умолчанию.
ответ
текст лежит в массиве content, в элементе с типом text:
{
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Канберра."
}
],
"usage": {
"input_tokens": 18,
"output_tokens": 4
}
}
подсчёт токенов
эндпоинт /v1/messages/count_tokens считает, сколько токенов займёт запрос, не выполняя его. тело запроса — такое же, как у /v1/messages.
подсчёт токенов на этом эндпоинте работает только с моделями anthropic.
какие модели доступны
сам формат anthropic messages не ограничивает выбор: на /v1/messages можно обратиться к любой текстовой модели каталога, указав её идентификатор целиком — например, openai/gpt-5-mini или google/gemini-3.5-flash.
что дальше
- единый api — базовый формат запроса и ответа.
- родной формат — когда запрос уходит без перевода.
частые вопросы
подойдёт ли официальная библиотека anthropic?
да. достаточно указать базовый адрес https://api.airakurs.ru и ключ airakurs — путь /v1/messages библиотека дописывает сама.
можно ли на этом эндпоинте обращаться к моделям других вендоров?
да, доступна любая текстовая модель каталога. идентификатор нужно указать целиком, вместе с вендором. а вот подсчёт токенов работает только с моделями anthropic.
почему запрос возвращает ошибку про max_tokens?
в формате anthropic поле max_tokens обязательное, в отличие от формата openai. укажите в нём предельную длину ответа в токенах.