Premiers pas
Compatibilité avec le SDK OpenAI
Utilisez les SDK officiels d'OpenAI sans modification et migrez depuis OpenAI ou une autre API compatible en changeant seulement l'URL de base et la clé.
api14 parle l'API d'OpenAI. Tout SDK officiel d'OpenAI, et tout outil qui accepte une URL de base OpenAI personnalisée, fonctionne sans modifier le code : vous changez seulement l'URL de base et la clé d'API.
Les deux valeurs à changer
| Paramètre | Valeur |
|---|---|
| URL de base | https://api14.com/api/v1 |
| Clé d'API | votre clé sk-api14-... |
import OpenAI from 'openai'
const client = new OpenAI({
baseURL: 'https://api14.com/api/v1',
apiKey: process.env.API14_API_KEY,
})
import os
from openai import OpenAI
client = OpenAI(base_url="https://api14.com/api/v1", api_key=os.environ["API14_API_KEY"])
De nombreux SDK lisent aussi les variables d'environnement OPENAI_BASE_URL et OPENAI_API_KEY : vous pouvez donc basculer sans toucher du tout au code.
Ce qui est compatible
| Fonctionnalité OpenAI | api14 |
|---|---|
chat.completions.create y compris stream, tools, response_format | Pris en charge pour tous les modèles de texte |
responses.create | Pris en charge |
completions.create | Pris en charge |
embeddings.create | Pris en charge |
images.generate | Pris en charge (/images/generations) |
audio.speech.create | Pris en charge |
audio.transcriptions.create | Pris en charge (multipart) |
models.list / models.retrieve | Pris en charge, avec prix et catégories |
Format d'erreur { error: { message, type, code } } | Identique : les SDK lèvent leur APIError habituelle |
Les endpoints propres à OpenAI (Assistants, Threads, fine-tuning, files, batches, vector stores et moderations) ne sont pas disponibles.
Migrer depuis OpenAI
- Définissez l'URL de base sur
https://api14.com/api/v1et utilisez votre clé api14. - Préfixez les noms de modèle par le fournisseur :
gpt-5-minidevientopenai/gpt-5-mini,text-embedding-3-smalldevientopenai/text-embedding-3-small. - C'est tout. Vous pouvez désormais passer à n'importe quel autre fournisseur en changeant l'id du modèle, par exemple
anthropic/claude-sonnet-4.5ougoogle/gemini-2.5-pro.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "openai/gpt-5-mini",
"messages": [
{
"role": "user",
"content": "Explain vector databases in two sentences."
}
]
});
console.log(result.choices[0].message.content);
Migrer depuis une autre API compatible OpenAI
Si vous utilisez déjà une autre passerelle compatible OpenAI, seules l'URL de base et la clé changent.
- Remplacez l'URL de base par
https://api14.com/api/v1. - Remplacez votre clé d'API par votre clé api14.
- Conservez tout le reste : ids de modèle, variantes (
:free,:online,:nitro,:floor), routageprovider, replismodels,reasoning,plugins,transformsetusage.
Différences à connaître :
- La facturation repose sur un solde en USD.
GET /creditsrenvoietotal_creditsettotal_usageen USD, ainsi qu'un champbalance_usd. Voir Solde et infos de clé. - Le coût d'utilisation est toujours inclus. La passerelle demande toujours
usage.costau fournisseur en amont, si bien que chaque réponse indique son prix. - Les en-têtes comme
HTTP-RefereretX-Titlesont définis par la passerelle ; vous n'avez pas besoin de les envoyer. - Les URL des tâches vidéo pointent vers api14 (
/api/v1/videos/{id}), jamais vers le fournisseur en amont. Voir Vidéo.
Paramètres supplémentaires dans les SDK
Vous pouvez tout de même envoyer des champs que le SDK OpenAI ne connaît pas :
await client.chat.completions.create({
model: 'openai/gpt-5-mini',
messages: [{ role: 'user', content: 'Hi' }],
// @ts-expect-error api14 extension
provider: { sort: 'price' },
})
client.chat.completions.create(
model="openai/gpt-5-mini",
messages=[{"role": "user", "content": "Hi"}],
extra_body={"provider": {"sort": "price"}},
)
Voir Routage des fournisseurs et replis, Raisonnement et Recherche web.