Nous utilisons des cookies. Les cookies et le stockage du navigateur vous gardent connecté et mémorisent vos préférences. Avec votre accord, nous mesurons aussi l’utilisation du site. Vous pouvez à tout moment. Consultez notre politique relative aux cookies.

Chat completions

Endpoints

Chat completions

POST /chat/completions : le format de chat d'OpenAI pour tous les modèles de texte, avec paramètres, exemples de requête, réponse, streaming et erreurs.

Essayer dans le playground

L'endpoint de chat completions utilise le format de chat d'OpenAI et fonctionne avec tous les modèles de texte du catalogue : GPT, Claude, Gemini, Llama, DeepSeek, Mistral et des centaines d'autres. Le corps de la requête est transmis tel quel au fournisseur en amont. api14 se contente de vérifier votre clé, le modèle, les limites et le solde, puis enregistre l'utilisation à la fin de la requête.

POST https://api14.com/api/v1/chat/completions
Authorization: Bearer sk-api14-...
Content-Type: application/json

Requête

ParamètreTypeDescription
modelstring, obligatoireId du modèle, par ex. anthropic/claude-sonnet-4.5. Les variantes comme :online ou :nitro sont acceptées. Voir Ids de modèle.
messagesarray, obligatoireLa conversation sous forme d'objets { role, content }. Rôles : system, developer, user, assistant, tool.
modelsstring[]Modèles de repli à essayer dans l'ordre si le premier échoue. Voir Routage des fournisseurs.
streambooleanDiffuse les tokens sous forme de server-sent events. Voir Streaming.
max_tokens / max_completion_tokensintegerNombre maximal de tokens générés.
temperaturenumberTempérature d'échantillonnage, généralement 0–2.
top_p, top_k, min_p, top_anumberAutres réglages d'échantillonnage. Les modèles qui ne les prennent pas en charge les ignorent.
frequency_penalty, presence_penalty, repetition_penaltynumberRéglages de répétition.
stopstring | string[]Séquences d'arrêt.
seedintegerÉchantillonnage déterministe dans la mesure du possible.
logprobs, top_logprobsboolean, integerRenvoie les log-probabilités des tokens lorsque le modèle les prend en charge.
tools, tool_choice, parallel_tool_callsAppel de fonctions. Voir Appels d'outils.
response_formatobjectMode JSON ou sortie conforme à un JSON Schema. Voir Sorties structurées.
reasoning, include_reasoningobject, booleanRéglages du raisonnement. Voir Raisonnement.
plugins, web_search_optionsRecherche web. Voir Recherche web.
providerobjectPréférences de fournisseur en amont. Voir Routage des fournisseurs.
modalitiesstring[]par ex. ["image", "text"] pour une sortie image, ou ["text", "audio"] pour une sortie audio.
predictionobjectSortie prédite ({ type: "content", content }) pour réduire la latence lors des modifications.
transformsstring[]par ex. ["middle-out"] pour compresser les prompts qui dépassent la fenêtre de contexte.
userstringVotre propre identifiant d'utilisateur final.

Le content d'un message peut être une chaîne ou un tableau de parties de contenu (text, image_url, file, input_audio). Voir Vision et fichiers.

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

Réponse

{
  "id": "gen-1760000000-abc123",
  "object": "chat.completion",
  "created": 1760000000,
  "model": "anthropic/claude-sonnet-4.5",
  "provider": "Anthropic",
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": { "role": "assistant", "content": "Hello! How can I help you today?" }
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 9,
    "total_tokens": 21,
    "prompt_tokens_details": { "cached_tokens": 0 },
    "completion_tokens_details": { "reasoning_tokens": 0 },
    "cost": 0.000171
  }
}

usage.cost est le coût de la requête en USD. api14 le débite de votre solde une fois la requête terminée. L'id est l'id de génération, que vous pouvez consulter plus tard avec Consultation des générations.

Notes sur la facturation

  • Vous payez le prix affiché du modèle ; le montant facturé est renvoyé dans usage.cost. Voir Tarifs et facturation.
  • Les requêtes en échec (tout statut 4xx ou 5xx) ne sont pas facturées.
  • Si la requête contient models: [...], chaque modèle de repli doit être autorisé pour votre clé et votre forfait ; sinon, la passerelle rejette la requête avant de l'envoyer en amont.

Erreurs

StatutCodeQuand
400model_requiredmodel est absent.
400invalid_jsonLe corps n'est pas un objet JSON.
401invalid_api_keyLa clé est absente, invalide ou révoquée.
402insufficient_balanceVotre solde en USD est de $0.
403model_not_allowed / plan_requiredLa liste de modèles autorisés de votre clé ou votre forfait ne couvre pas ce modèle.
404model_not_foundId de modèle inconnu ou désactivé.
413payload_too_largeLe corps de la requête dépasse 25 MB.
429rate_limited / daily_limit_reachedLa limite de RPM ou la limite quotidienne en USD de la clé a été atteinte.
502upstream_unavailableLe fournisseur en amont est injoignable.

Les erreurs du fournisseur en amont, comme un dépassement de la longueur de contexte ou une modération de contenu, sont renvoyées avec leur code de statut d'origine et le même format d'erreur. Voir Erreurs.