API: свой проект
Проверенные адреса, ключи и примеры запросов Responses и Messages для Bash и PowerShell.
Адреса и протоколы
| Задача | Метод и адрес | Ключ |
|---|---|---|
| Codex / GPT Responses | POST https://claud.sale/v1/responses | codex_pro |
| Claude Messages | POST https://claud.sale/v1/messages | claude_max |
| Каталог ключа | GET https://claud.sale/v1/models | Соответствующая группа |
В SDK OpenAI задавайте base_url=https://claud.sale/v1. В Claude Code задавайте ANTHROPIC_BASE_URL=https://claud.sale: клиент добавит путь Messages сам. Указывайте точный идентификатор модели из каталога.
Bash: GPT / Responses
Короткая потоковая проверка. Нужен curl с поддержкой --fail-with-body (7.76+).
curl --no-buffer --fail-with-body --max-time 120 \
https://claud.sale/v1/responses \
-H "Authorization: Bearer $CLAUDSALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"gpt-5.6-sol","input":[{"role":"user","content":"Reply with OK."}],"stream":true,"store":false}'
В потоке ищите события с текстом response.output_text.delta и завершение response.completed. Само получение HTTP 200 не означает, что модель закончила ответ успешно.
Bash: Claude / Messages
curl --no-buffer --fail-with-body --max-time 120 \
https://claud.sale/v1/messages \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
-H 'anthropic-version: 2023-06-01' \
-H 'Content-Type: application/json' \
-d '{"model":"claude-opus-5","max_tokens":32,"messages":[{"role":"user","content":"Reply with OK."}],"stream":true}'
Ожидаются текстовые события content_block_delta и завершение message_stop. Gateway принимает показанный Bearer-заголовок; Claude Code использует его через ANTHROPIC_AUTH_TOKEN.
Windows PowerShell: запрос без проблем с JSON
Используйте curl.exe, чтобы не вызвать старый PowerShell alias curl. JSON пишется в временный файл UTF-8 без BOM и удаляется после запроса. Для примера GPT:
$body = @{
model = 'gpt-5.6-sol'
input = @(@{ role = 'user'; content = 'Reply with OK.' })
stream = $true
store = $false
} | ConvertTo-Json -Depth 10
$requestFile = Join-Path $env:TEMP ([guid]::NewGuid().ToString() + '.json')
[IO.File]::WriteAllText($requestFile, $body, [Text.UTF8Encoding]::new($false))
try {
curl.exe --no-buffer --fail-with-body --max-time 120 `
'https://claud.sale/v1/responses' `
-H "Authorization: Bearer $env:CLAUDSALE_API_KEY" `
-H 'Content-Type: application/json' `
--data-binary ('@' + $requestFile)
if ($LASTEXITCODE -ne 0) { throw "curl завершился с кодом $LASTEXITCODE" }
} finally {
Remove-Item -LiteralPath $requestFile -Force
}
Для Claude используйте следующий самостоятельный пример:
$body = @{
model = 'claude-opus-5'
max_tokens = 32
messages = @(@{ role = 'user'; content = 'Reply with OK.' })
stream = $true
} | ConvertTo-Json -Depth 10
$requestFile = Join-Path $env:TEMP ([guid]::NewGuid().ToString() + '.json')
[IO.File]::WriteAllText($requestFile, $body, [Text.UTF8Encoding]::new($false))
try {
curl.exe --no-buffer --fail-with-body --max-time 120 `
'https://claud.sale/v1/messages' `
-H "Authorization: Bearer $env:ANTHROPIC_AUTH_TOKEN" `
-H 'anthropic-version: 2023-06-01' `
-H 'Content-Type: application/json' `
--data-binary ('@' + $requestFile)
if ($LASTEXITCODE -ne 0) { throw "curl завершился с кодом $LASTEXITCODE" }
} finally {
Remove-Item -LiteralPath $requestFile -Force
}
OpenClaw
Откройте вкладку OpenClaw на главной, выберите группу и модель. После входа ключ подставится в команду; без входа замените api_key на свой ключ прямо в команде. На macOS и Linux команда скачивает наш настройщик, который при необходимости запускает официальный установщик OpenClaw и добавляет провайдера через openclaw config patch --stdin. Остальные провайдеры сохраняются. На Windows показаны отдельные команды установки и добавления конфигурации.
Группа codex_pro использует openai-responses и адрес https://claud.sale/v1; claude_max — anthropic-messages и https://claud.sale. Выбранный провайдер и модель становятся основными для OpenClaw. После настройки запустите openclaw gateway, затем откройте панель через openclaw dashboard.
Ключ записывается в локальную конфигурацию OpenClaw. Перед настройкой сохраните копию собственного файла конфигурации, если вам нужно быстро вернуться к прежнему основному провайдеру. Команды конфигурации OpenClaw · Официальная установка.
Cherry Studio и Cursor
В Cherry Studio добавьте провайдера типа Anthropic с адресом https://claud.sale и ключом claude_max, затем вручную добавьте нужный идентификатор модели из каталога. Готовые параметры доступны во вкладке Cherry Studio на главной.
В Cursor подключение показано через официальное расширение Codex: оно использует нашу конфигурацию Responses, как расширение в VS Code. Это отдельная панель Codex внутри редактора. Встроенный агент Cursor с OpenAI-compatible Chat Completions через этот способ не настраивается.
Использование в приложении
- Храните ключ на сервере или в локальном окружении. Не включайте его в JavaScript публичной страницы.
- Для Codex используйте Responses API. Поддержку конкретных инструментов, изображений, фоновых задач и других возможностей проверяйте отдельно: совместимый формат не означает поддержку всей платформы OpenAI или Anthropic.
- Обрабатывайте ошибки как HTTP-запроса, так и потока. Различайте текстовый ответ, завершение, обрыв и событие ошибки.
- Для временных ошибок применяйте ограниченное число повторов с увеличением паузы. Повторная генерация после неясного обрыва может создать ещё одно списание.
- Сохраняйте request ID, время, модель и длительность. Заголовки авторизации не записывайте в логи.
Формат API
Первичные справочники: OpenAI Responses и Claude Messages. Адреса, разрешённые модели и тарификация claud.sale описаны здесь отдельно от возможностей официальных API.