OneProvider

Chat Completions

Nutzen Sie POST /v1/chat/completions im OpenAI-Format und erhalten Sie Antworten im OpenAI-Stil von Claude-Modellen. Mit Python- und Node-Beispielen.

POST /v1/chat/completions akzeptiert die OpenAI-Anfrageform und liefert die OpenAI-Antwortform. Die Modell-ID ist das Einzige, was Sie in Ihrem bisherigen OpenAI-Code austauschen müssen.

Alle Modelle, Funktionen und Preise Dokumentationsindex für KI-Agenten: https://oneprovider.dev/docs/llms.txt

Anfrage

http
POST 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
}

Antwort

Die Form entspricht OpenAI 1:1 – id, choices[].message, usage.

json
{
"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)

python
from 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)

ts
import 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);

Feld-Zuordnung

Referenzdaten
OpenAI-FeldVerhalten bei OneProvider
messagesWeitergeleitet; die Rolle system wird in das Anthropic-Feld system verschoben.
max_tokensWeitergeleitet.
temperature, top_pWeitergeleitet.
tools, tool_choiceIn Anthropic-tools / tool_choice übersetzt – dieselbe Normalisierung wie bei der Tool-Nutzung .
streamWeitergeleitet; liefert OpenAI-SSE-Chunks (keine Anthropic-Events).
response_formatjson_object wird über einen System-Hinweis umgesetzt. Der strikte Modus json_schema wird derzeit ignoriert.
logprobs, top_logprobsIgnoriert: Die Modelle stellen sie nicht bereit.
seedIgnoriert: nicht unterstützt.
n > 1Liefert eine Choice. Rufen Sie den Endpoint N-mal auf, wenn Sie N Varianten brauchen.
Wählen Sie ein Wire-Format und bleiben Sie dabei /v1/chat/completions und /v1/messages erreichen dieselben Modelle zum selben Preis. Chat Completions bildet das OpenAI-Format auf das Modell ab; der native Messages-Endpoint spart diesen Schritt. Für neue Projekte empfehlen wir /v1/messages . Für die Migration von OpenAI ist Chat Completions der schnellste Weg.

Kurze Antworten

Welche base URL verwende ich?

Claude Code und die Anthropic-SDKs verwenden https://api.oneprovider.dev. OpenAI-SDKs und OpenAI-kompatible Clients verwenden https://api.oneprovider.dev/v1. Ein Schlüssel funktioniert an beiden Adressen; die Modellliste finden Sie auf der Modellseite , die Preise auf der Preisseite .

Wie authentifiziere ich mich?

Senden Sie den unveränderten sk-…-Schlüssel in x-api-key oder Authorization: Bearer: nur eines von beiden, nie beide. Bewahren Sie den Schlüssel in einer Umgebungsvariable auf, nicht in einer Datei, die ins Repository committet wird. Mehr zur Authentifizierung .

Wo bekomme ich einen Schlüssel?

Öffnen Sie Ihr Konto im Telegram-Bot @oneprovider_robot oder auf app.oneprovider.dev, laden Sie das Guthaben auf und tippen Sie auf „Schlüssel ausstellen“. Jeder Schlüssel kann ein eigenes Ausgabenlimit haben. Konto & API-Schlüssel .

Was bedeuten 401, 404 und 429?

401: Der Schlüssel fehlt, ist falsch geschrieben oder steht im falschen Header; fügen Sie den ganzen Schlüssel ohne Anführungszeichen und Leerzeichen ein. 404: meist eine falsche base URL, zum Beispiel ein fehlendes oder doppeltes /v1. 429 mit „Insufficient balance“: Das Guthaben des Kontos oder das Ausgabenlimit des Schlüssels ist aufgebraucht – laden Sie auf, statt es erneut zu versuchen; jedes andere 429 ist ein Rate-Limit, warten Sie dann die Zeit aus Retry-After ab. Details: Fehlercodes und Fehlerbehebung .

Warum brechen Streams ab oder werden zurückgesetzt?

VPN- und VLESS-Proxys puffern SSE oft oder stören die HTTP/2-Aushandlung. OneProvider hat keine regionalen Beschränkungen und puffert keine Streams – schalten Sie den Proxy aus und versuchen Sie es erneut.

Wohin wende ich mich, wenn das nicht reicht?

Schreiben Sie @Oneproviderhelpbot auf Telegram oder öffnen Sie „Support“ im Web-Konto – mit HTTP-Statuscode und genauer Fehlermeldung. So arbeitet der Support .

Zuletzt aktualisiert: 2026-11-08 Fehler gefunden? @Oneproviderhelpbot