Перейти к содержимому

Anthropic-совместимый API для Claude

Кроме OpenAI-совместимого /v1/chat/completions у GPTunneL есть эндпоинт в формате Anthropic Messages API. Это не обёртка с переводом форматов, а прокси: тело запроса и ответа совпадает с тем, что описано в документации Anthropic.

Практический смысл — код менять не нужно. Официальный SDK Anthropic, Claude Code и любой клиент, умеющий работать с Claude, начинают работать после подмены базового адреса и ключа.

Запрос к Claude

POST https://gptunnel.ru/v1/messages

Headers

ПараметрТипОписание
x-api-key*stringAPI ключ. Альтернатива — Authorization: Bearer YOUR_API_KEY
anthropic-versionstringВерсия API Anthropic, передаётся как есть
content-type*stringapplication/json

Тело запроса — то же, что у Anthropic: model, messages, system, tools, tool_choice, stream и остальные поля. Мы проверяем только те из них, к которым обращаемся сами, всё прочее уходит наверх без изменений.

Пример запроса

Окно терминала
curl --request POST \
--url https://gptunnel.ru/v1/messages \
--header 'x-api-key: YOUR_API_KEY' \
--header 'anthropic-version: 2023-06-01' \
--header 'content-type: application/json' \
--data '{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Привет!" }]
}'

Только модели Claude

Эндпоинт принимает исключительно модели Claude. Запрос с любой другой моделью вернёт 404 с типом ошибки not_found_error — для остальных моделей есть OpenAI-совместимый /v1/chat/completions.

Тот же 404 с тем же типом приходит и на несуществующий идентификатор модели: различается только текст error.message, программно эти два случая не разделяются.

Актуальные идентификаторы и цены — в списке моделей.

Потоковый ответ

Работает штатно: "stream": true в теле запроса, ответ приходит потоком server-sent events в том же формате событий, что у Anthropic. Никаких дополнительных заголовков не нужно.

Подсчёт токенов

POST https://gptunnel.ru/v1/messages/count_tokens

Возвращает оценку числа входных токенов для тела запроса.

Инструменты

Пользовательские инструменты (name + input_schema) передаются без изменений. Из типовых инструментов Anthropic проходят web_search, web_fetch, computer, bash и text_editor.

Не поддерживается только code_execution — запрос с ним вернёт 400. Причина в модели тарификации: код исполняется на стороне Anthropic и оплачивается по времени работы контейнера, а не по токенам. По той же причине из заголовка anthropic-beta вырезаются значения code-execution-*; остальные беты передаются как есть.

Кэширование промпта

Тоже passthrough: брейкпоинты cache_control расставляет ваш клиент, счётчики cache_creation_input_tokens и cache_read_input_tokens приходят в usage ответа. Списание учитывает кэш — чтение из кэша дешевле обычного ввода, запись дороже.

Ошибки

Формат ошибок совпадает с Anthropic: HTTP-код плюс тело с объектом error, у которого есть type и message. Клиентские SDK разбирают их своими штатными средствами.