FR ▾
Obtenir une clé API

URL de base de l'API Codex : Comment configurer votre client

L’URL de base de l’API codex pour ce service est https://api.getcodexapi.com/v1, l’ID du modèle est uncensored et votre clé s’insère dans un en-tête Bearer standard. Tout SDK ou client OpenAI fonctionne dès que vous modifiez ces valeurs.

Mis à jour le

Un câble lumineux reliant un ordinateur portable à un cube serveur, illustrant la connexion d'un client à une URL de base d'API

Points clés

  • URL de base : https://api.getcodexapi.com/v1 (incluez /v1, sans le chemin de l’endpoint).
  • L'ID du modèle est uncensored, et l'authentification est Authorization: Bearer avec votre clé.
  • Testez d’abord la connexion avec GET /v1/models avant d’intégrer une application plus complexe.
  • La plupart des échecs proviennent d’un /v1 en double, d’un chemin erroné ou d’une clé incorrecte.

Les trois valeurs nécessaires

Tout client compatible OpenAI demande les mêmes trois éléments. Voici les valeurs pour ce service.

ParamètreValeur
URL de basehttps://api.getcodexapi.com/v1
Clé APIVotre clé depuis la page Clé API
Modèleuncensored

La clé est envoyée via Authorization: Bearer YOUR_KEY. Les deux endpoints que vous pouvez appeler sont POST /v1/chat/completions et GET /v1/models. Il s’agit d’un service indépendant exécutant un modèle à poids ouverts, pas du Codex d’OpenAI ; ne collez pas l’endpoint OpenAI ni sa clé dans le même paramètre.

Vérifiez la connexion avec curl

Avant de modifier la configuration de l'application, confirmez que la clé et l'URL fonctionnent depuis un terminal. Lister les modèles est le test le moins coûteux, car il ne nécessite aucun prompt :

curl https://api.getcodexapi.com/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

Vous devez obtenir une liste JSON incluant le modèle uncensored. Ensuite, envoyez une vraie complétion :

curl https://api.getcodexapi.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Say hello in five words."}]
  }'

Si les deux appels fonctionnent, le problème des échecs ultérieurs réside dans la configuration de votre client, pas du service. Les en-têtes de réponse incluent X-Request-Id, utile à conserver pour tracer un appel spécifique, et X-Balance-USD, qui affiche votre crédit restant.

Python avec le SDK OpenAI

Le package officiel openai prend l’URL de base dans le constructeur du client. Rien d’autre dans votre code ne change.

from openai import OpenAI

client = OpenAI(
    base_url="https://api.getcodexapi.com/v1",
    api_key="YOUR_API_KEY",
)

resp = client.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": "You are a concise assistant."},
        {"role": "user", "content": "Explain what a base URL is in two sentences."},
    ],
)
print(resp.choices[0].message.content)

Si vous préférez garder la configuration hors du code, le SDK lit aussi OPENAI_BASE_URL et OPENAI_API_KEY depuis l’environnement :

export OPENAI_BASE_URL="https://api.getcodexapi.com/v1"
export OPENAI_API_KEY="YOUR_API_KEY"

Une fois ces variables définies, OpenAI() sans arguments les récupère. C’est pratique car de nombreux outils tiers basés sur le SDK héritent des mêmes variables sans modification de code.

Node.js

Le SDK JavaScript utilise le même nom d’option, écrit baseURL.

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.getcodexapi.com/v1",
  apiKey: process.env.API_KEY,
});

const stream = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Write a haiku about version control." }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

Le streaming revient sous forme d’événements envoyés par le serveur avec stream: true, et l’usage est inclus à la fin. Notez qu’une requête en streaming occupe un slot de concurrence jusqu’à sa fin ; un stream abandonné sans fermeture continue de compter dans la limite.

Applications avec un écran de paramètres

Les outils de bureau et les éditeurs étiquettent généralement le champ de trois façons : « Base URL », « API Base » ou « OpenAI-compatible endpoint ». Tous attendent la même chaîne. Quelques notes pour gagner du temps :

  • Sélectionnez le fournisseur OpenAI ou « custom OpenAI-compatible », pas un fournisseur spécifique à un éditeur.
  • Saisissez manuellement le nom du modèle si l’application dispose d’un champ texte libre. uncensored est l’ID exact.
  • Si l'application dispose d'un bouton « tester la connexion », il appelle généralement la liste des modèles, supportée par cette API.
  • Certaines applications mettent en cache la liste des modèles d'un fournisseur précédent. Supprimez l'ancienne entrée et ajoutez-en une nouvelle si la liste déroulante semble incorrecte.

Pour un exemple détaillé dans un éditeur spécifique, consultez le guide de connexion à Cursor, ou la page de l’API de codage pour une vue d’ensemble. La référence complète des paramètres se trouve dans la documentation de l’API.

Une fois la connexion établie, enregistrez les valeurs exactes quelque part accessible : l'URL, le nom du modèle et la date de création de la clé. Les équipes perdent souvent une heure plus tard à cause d'une copie de configuration contenant encore une ancienne valeur. Un fichier exemple partagé dans le dépôt, avec un espace réservé à la place de la clé réelle, évite ce problème.

Erreurs courantes et correctifs

L’URL devient /v1/v1

Certains clients ajoutent /v1 automatiquement. Si vos requêtes échouent et que le journal client affiche un chemin avec /v1/v1/chat/completions, retirez le /v1 de l’URL de base saisie. L’inverse se produit aussi : un client qui ne l’ajoute pas a besoin de ce paramètre dans vos réglages. Le journal du chemin de requête règle rapidement la question.

Vous mettez l'endpoint complet dans l'URL de base

L’URL de base s’arrête à /v1. N’y saisissez pas /chat/completions. Le SDK ajoute le chemin pour chaque appel.

Un slash final ou une faute de frappe dans l'hôte

La plupart des SDK tolèrent un slash final, mais certains outils plus anciens construisent les chemins par concaténation simple et finissent avec un double slash. Retirez-le si vous observez des réponses 404 étranges.

Mauvaise clé ou clé d'un autre service

Une clé OpenAI ne fonctionnera pas ici, et la nôtre ne fonctionnera pas là-bas. Les erreurs d'authentification signifient presque toujours un problème de copier-coller, comme un caractère manquant ou un espace à la fin.

Ça fonctionne avec curl mais pas dans votre application

Si curl réussit mais que l’application échoue avec la même URL et clé, la différence réside dans l’environnement. Vérifiez si l’application tourne derrière un proxy ou dans un conteneur sans accès sortant, si elle lit une variable d’environnement obsolète comme un OPENAI_BASE_URL laissé par un autre projet, ou si un fichier de configuration écrase la valeur définie dans le code. Afficher l’URL finale que le client appellera, juste avant la requête, règle la plupart de ces cas en une minute.

HTTP 429

Cela signifie qu’une limite a été atteinte. Le code d’erreur rate_limited concerne les requêtes par minute, et concurrency le trop-plein de requêtes simultanées. Une clé complète permet 8 requêtes concurrentes et 300 par minute ; une clé d’essai en permet 2 et 60. En cas de surcharge temporaire, vous recevez aussi un 429 avec un en-tête Retry-After: 5, attendez cinq secondes et réessayez.

LangChain et centralisation de l'URL

Les frameworks basés sur le client OpenAI utilisent les mêmes valeurs. Dans l'intégration OpenAI de LangChain, les arguments sont nommés ainsi :

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="uncensored",
    base_url="https://api.getcodexapi.com/v1",
    api_key="YOUR_API_KEY",
)
print(llm.invoke("Name three uses of a base URL.").content)

Quel que soit le framework, ne dispersez pas l'URL dans votre code. Placez-la dans une seule variable d'environnement ou un seul fichier de paramètres, et lisez-la depuis là. Ainsi, passer d'une clé de test à une clé de production, ou entre machines, ne nécessite de modifier qu'une seule ligne. Cela garde aussi les clés hors de votre dépôt : stockez la clé dans une variable d'environnement ou un gestionnaire de secrets, jamais dans un fichier validé.

Si vous cherchiez l'endpoint propre à OpenAI pour ses produits Codex, ce n'est pas celui-ci. Leur URL de base et leur authentification sont documentées par OpenAI ; suivez leur documentation actuelle à ce sujet. L'adresse de cette page appartient à un service indépendant et n'accepte que les clés émises ici.

Ce que vous pouvez envoyer une fois connecté

L’endpoint supporte le streaming, l’appel de fonctions (tools, tool_choice, avec des résultats retournés sous forme de messages role: "tool") et le mode JSON via response_format: {"type": "json_object"}. Les paramètres temperature, top_p, stop, seed et les pénalités sont transmis. La fenêtre de contexte est de 100 000 tokens pour le prompt et la complétion combinés, et le corps de requête maximum est de 8 Mo.

Il s’agit uniquement de texte. Il n’y a pas de génération d’images ou d’audio, ni d’embeddings ni de fine-tuning ; une fonctionnalité client qui en dépend ne fonctionnera pas avec cette URL de base. L’usage est facturé par token à 0,15 $ par 1 M d’entrée et 0,50 $ par 1 M de sortie ; la page de tarification propose des exemples détaillés.

Questions et réponses

Quelle est l'URL de base ?

C’est https://api.getcodexapi.com/v1. Utilisez-le comme URL de base dans n’importe quel SDK ou application compatible OpenAI, avec le modèle défini sur uncensored.

S'agit-il de l'endpoint officiel OpenAI Codex ?

Non. Il s'agit d'une API indépendante compatible OpenAI exécutant un modèle à poids ouverts. Elle n'est pas gérée par OpenAI ni par un autre fournisseur de modèles.

Pourquoi obtiens-je une erreur 404 après avoir modifié l'URL de base ?

Le chemin est souvent incorrect, soit un /v1 en double, soit le chemin de l’endpoint inclus dans l’URL de base. Consultez le journal de requêtes de votre client et ajustez.

Ai-je besoin d’un SDK spécial ?

Non. Les SDK OpenAI standards pour Python et Node fonctionnent, tout comme le HTTP brut avec curl. Vous modifiez uniquement l'URL de base, la clé et le nom du modèle.

Votre clé n'est qu'à un formulaire d'ici

Créez un compte, copiez la clé, modifiez l'URL de base. C'est toute la configuration.

Obtenir une clé API