Chat completions
Используйте POST /v1/chat/completions в формате OpenAI и получайте ответы моделей Claude в привычной схеме OpenAI. Примеры на Python и Node.
POST /v1/chat/completions принимает форму запроса OpenAI и возвращает форму ответа OpenAI. Замена id модели — единственное обязательное изменение в вашем текущем OpenAI-коде.
Все модели, характеристики и цены Индекс документации для AI-агентов:https://oneprovider.dev/docs/llms.txt Запрос
httpPOST https://api.oneprovider.dev/v1/chat/completions
Authorization: Bearer sk-...
content-type: application/json
{
"model": "claude-sonnet-5-5",
"messages": [
{ "role": "system", "content": "You are concise." },
{ "role": "user", "content": "Why is the sky blue?" }
],
"max_tokens": 256,
"stream": false
} Ответ
Форма 1:1 совпадает с OpenAI — id, choices[].message, usage.
{
"id": "chatcmpl_01...",
"object": "chat.completion",
"created": 1715472000,
"model": "claude-sonnet-5-5",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "Rayleigh scattering..." },
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 48,
"completion_tokens": 92,
"total_tokens": 140
}
} OpenAI SDK (Python)
pythonfrom openai import OpenAI
client = OpenAI(
api_key="<OPENAI_API_KEY>",
base_url="https://api.oneprovider.dev/v1",
)
r = client.chat.completions.create(
model="claude-sonnet-5-5",
messages=[{"role": "user", "content": "Say hi."}],
)
print(r.choices[0].message.content) OpenAI SDK (Node)
tsimport OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: "https://api.oneprovider.dev/v1",
});
const r = await client.chat.completions.create({
model: "claude-sonnet-5-5",
messages: [{ role: "user", content: "Say hi." }],
});
console.log(r.choices[0].message?.content); Маппинг полей
| Поле OpenAI | Поведение на OneProvider |
|---|---|
messages | Прокидывается; роль system поднимается в Anthropic system. |
max_tokens | Прокидывается. |
temperature, top_p | Прокидывается. |
tools, tool_choice | Транслируется в Anthropic tools / tool_choice — та же нормализация, что и в Использовании инструментов . |
stream | Прокидывается; шлёт OpenAI SSE-чанки (не Anthropic-события). |
response_format | json_object уважается через system-подсказку. Strict json_schema-режим сейчас игнорируется. |
logprobs, top_logprobs | Игнорируется: модели их не отдают. |
seed | Игнорируется: не поддерживается. |
n > 1 | Возвращает один choice. Зовите эндпоинт N раз, если нужно N сэмплов. |
/v1/chat/completions, и /v1/messages ходят в одни и те же модели по одной цене. Chat Completions переводит формат OpenAI в формат модели; нативному Messages-эндпоинту это не нужно. Для greenfield-проектов рекомендуем /v1/messages . Для миграции с OpenAI Chat Completions будет быстрым путём. Быстрые ответы
Какой base URL использовать?
Claude Code и Anthropic SDK работают с https://api.oneprovider.dev. OpenAI SDK и OpenAI-совместимые клиенты работают с https://api.oneprovider.dev/v1. За обоими адресами один ключ; список моделей: странице моделей , ставки на странице тарифов .
Как авторизоваться?
Передайте сырой ключ sk-… в заголовке x-api-key или Authorization: Bearer: один из двух, не оба. Храните ключ в переменной окружения, а не в файле, который попадает в репозиторий. Подробнее об аутентификации .
Где взять ключ?
Откройте кабинет в Telegram-боте @oneprovider_robot или на app.oneprovider.dev, пополните баланс и нажмите «Выпустить ключ». У каждого ключа может быть свой лимит расхода. Кабинет и ключи .
Что значат ошибки 401, 404 и 429?
401: ключ не задан, написан с ошибкой или передан не в том заголовке; вставьте ключ целиком, без кавычек и пробелов. 404: обычно неверный base URL, например лишний или двойной /v1. 429 с текстом «Insufficient balance»: баланс кабинета или лимит ключа исчерпан, пополните его вместо повторов; любой другой 429 это лимит частоты, подождите Retry-After. Разбор: коды ошибок и решение проблем .
Почему обрывается стрим или сбрасывается соединение?
VPN и VLESS-прокси часто буферизуют SSE или ломают согласование HTTP/2. У OneProvider нет региональных ограничений, и стримы на нашей стороне не буферизуются: отключите прокси и повторите запрос.
Куда писать, если не помогло?
Напишите в Telegram @Oneproviderhelpbot или откройте «Поддержку» в веб-кабинете: приложите код статуса и точный текст ошибки. Как работает поддержка .
Последнее обновление: 2026-10-05 Нашли ошибку? @Oneproviderhelpbot