Chat Completions
Utilisez POST /v1/chat/completions au format OpenAI et recevez des réponses de style OpenAI depuis les modèles Claude. Exemples Python et Node inclus.
POST /v1/chat/completions accepte la forme de requête OpenAI et renvoie la forme de réponse OpenAI. L’ID du modèle est le seul changement requis par rapport à votre code OpenAI actuel.
Tous les modèles, leurs capacités et leurs tarifs Index de la documentation pour les agents IA :https://oneprovider.dev/docs/llms.txt Requête
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
} Réponse
La forme correspond à 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); Correspondance des champs
| Champ OpenAI | Comportement sur OneProvider |
|---|---|
messages | Transmis ; le rôle system est remonté dans le champ Anthropic system. |
max_tokens | Transmis. |
temperature, top_p | Transmis. |
tools, tool_choice | Traduit en tools / tool_choice Anthropic — même normalisation que pour Utilisation d’outils . |
stream | Transmis ; émet des chunks SSE au format OpenAI (et non des événements Anthropic). |
response_format | json_object est pris en compte via une consigne système. Le mode strict json_schema est actuellement ignoré. |
logprobs, top_logprobs | Ignoré : les modèles ne les exposent pas. |
seed | Ignoré : non pris en charge. |
n > 1 | Renvoie un seul choix. Appelez l’endpoint N fois si vous voulez N échantillons. |
/v1/chat/completions et /v1/messages atteignent les mêmes modèles au même prix. Chat Completions adapte le format OpenAI au modèle ; l’endpoint natif Messages saute cette étape. Pour un nouveau projet, nous recommandons /v1/messages . Pour migrer depuis OpenAI, Chat Completions est la voie rapide. Réponses rapides
Quelle base URL utiliser ?
Claude Code et les SDK Anthropic utilisent https://api.oneprovider.dev. Les SDK OpenAI et les clients compatibles OpenAI utilisent https://api.oneprovider.dev/v1. Une seule clé fonctionne avec les deux ; la liste des modèles est sur la page des modèles , les tarifs sur la page des tarifs .
Comment s’authentifier ?
Envoyez la clé sk-… telle quelle dans x-api-key ou Authorization: Bearer : l’un des deux, jamais les deux. Conservez la clé dans une variable d’environnement, pas dans un fichier qui sera commité. En savoir plus sur l’authentification .
Où obtenir une clé ?
Ouvrez votre espace client dans le bot Telegram @oneprovider_robot ou sur app.oneprovider.dev, rechargez le solde et appuyez sur « Créer une clé ». Chaque clé peut avoir sa propre limite de dépense. Espace client et clés API .
Que signifient 401, 404 et 429 ?
401 : la clé est absente, mal saisie ou envoyée dans le mauvais en-tête ; collez la clé entière, sans guillemets ni espaces. 404 : le plus souvent une base URL incorrecte, par exemple un /v1 manquant ou en double. 429 avec « Insufficient balance » : le solde de l’espace client est à zéro ou la clé a atteint sa limite de dépense, donc rechargez au lieu de réessayer ; tout autre 429 est une limite de débit, donc attendez le délai indiqué par Retry-After. Détails : codes d’erreur et dépannage .
Pourquoi les flux se coupent-ils ou se réinitialisent-ils ?
Les VPN et les proxys VLESS mettent souvent le SSE en mémoire tampon ou perturbent la négociation HTTP/2. OneProvider n’a aucune restriction régionale et ne met pas les flux en mémoire tampon : désactivez le proxy et réessayez.
Où demander de l’aide si cela ne suffit pas ?
Écrivez à @Oneproviderhelpbot sur Telegram ou ouvrez « Support » dans l’espace client web, en indiquant le code de statut HTTP et le message d’erreur exact. Comment fonctionne le support .
Dernière mise à jour: 2026-11-08 Vous avez trouvé un bug ? @Oneproviderhelpbot