Chat Completions
Usa POST /v1/chat/completions nel formato di richiesta OpenAI e ricevi risposte in stile OpenAI dai modelli Claude. Con esempi in Python e Node.
POST /v1/chat/completions accetta la forma di richiesta di OpenAI e restituisce la forma di risposta di OpenAI. L'ID del modello è l'unica sostituzione necessaria nel tuo attuale codice OpenAI.
Tutti i modelli, le funzionalità e i prezzi Indice della documentazione per agenti AI:https://oneprovider.dev/docs/llms.txt Richiesta
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
} Risposta
La forma corrisponde a quella di OpenAI 1:1: 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); Mappatura dei campi
| Campo OpenAI | Comportamento su OneProvider |
|---|---|
messages | Inoltrato; il ruolo system viene spostato nel system di Anthropic. |
max_tokens | Inoltrato. |
temperature, top_p | Inoltrato. |
tools, tool_choice | Tradotto in tools / tool_choice di Anthropic, con la stessa normalizzazione di Uso degli strumenti . |
stream | Inoltrato; emette chunk SSE di OpenAI (non eventi Anthropic). |
response_format | json_object è rispettato tramite un suggerimento di sistema. La modalità rigorosa json_schema al momento è ignorata. |
logprobs, top_logprobs | Ignorati: i modelli non li espongono. |
seed | Ignorato: non supportato. |
n > 1 | Restituisce una sola scelta. Chiama l'endpoint N volte se ti servono N campioni. |
/v1/chat/completions sia /v1/messages usano gli stessi modelli allo stesso prezzo. Chat Completions mappa il formato OpenAI sul modello; l'endpoint Messages nativo salta questo passaggio. Per i nuovi progetti consigliamo /v1/messages . Per migrare da OpenAI, Chat Completions è la via più rapida. Risposte rapide
Quale base URL devo usare?
Claude Code e gli SDK Anthropic usano https://api.oneprovider.dev. Gli SDK OpenAI e i client compatibili con OpenAI usano https://api.oneprovider.dev/v1. Con una sola chiave funzionano entrambi; l'elenco dei modelli è nella pagina dei modelli , le tariffe nella pagina dei prezzi .
Come mi autentico?
Invia la chiave sk-… così com'è in x-api-key oppure in Authorization: Bearer: uno dei due, mai entrambi. Tieni la chiave in una variabile d'ambiente, non in un file che finisce nel commit. Altro sull'autenticazione .
Dove ottengo una chiave?
Apri la tua area personale nel bot Telegram @oneprovider_robot oppure su app.oneprovider.dev, ricarica il saldo e premi «Emetti una chiave». Ogni chiave può avere un proprio limite di spesa. Area personale e chiavi API .
Cosa significano 401, 404 e 429?
401: la chiave manca, è scritta male o è inviata nell'header sbagliato; incolla la chiave intera, senza virgolette né spazi. 404: di solito la base URL è sbagliata, per esempio manca /v1 o è doppio. 429 con “Insufficient balance”: il saldo dell'area personale o il limite di spesa della chiave è esaurito, quindi ricarica invece di riprovare; qualsiasi altro 429 è un limite di frequenza, quindi attendi il tempo indicato in Retry-After. Dettagli: codici di errore e risoluzione dei problemi .
Perché gli stream si interrompono o si resettano?
VPN e proxy VLESS spesso mettono in buffer gli SSE o rompono la negoziazione HTTP/2. OneProvider non ha restrizioni regionali e non mette in buffer gli stream: disattiva il proxy e riprova.
Dove chiedo se non basta?
Scrivi a @Oneproviderhelpbot su Telegram oppure apri «Assistenza» nell'area personale sul sito, indicando il codice di stato HTTP e il testo esatto dell'errore. Come funziona l'assistenza .
Ultimo aggiornamento: 2026-11-08 Hai trovato un errore? @Oneproviderhelpbot