DE ▾
API-Schlüssel erhalten

Codex API-Base-URL: So richtest du deinen Client bei uns ein

Die Codex-API-Base-URL für diesen Dienst ist https://api.getcodexapi.com/v1, die Modell-ID ist uncensored, und dein Schlüssel kommt in einen Standard-Bearer-Header. Jedes OpenAI-SDK oder jeder Client funktioniert, sobald du diese Werte änderst.

Aktualisiert

Ein leuchtendes Kabel, das einen Laptop mit einem Serverwürfel verbindet, zur Veranschaulichung des Verbindens eines Clients mit einer API-Base-URL

Wichtige Punkte

  • Base-URL: https://api.getcodexapi.com/v1 (/v1 einschließen, den Endpunktpfad weglassen).
  • Modell-ID ist uncensored, und die API-Schlüssel erfolgt über Authorization: Bearer mit deinem Schlüssel.
  • Teste die Verbindung zuerst mit GET /v1/models, bevor du eine größere App anschließt.
  • Die meisten Fehler entstehen durch ein doppeltes /v1, einen falschen Pfad oder den falschen Schlüssel.

Die drei Werte, die du benötigst

Jeder OpenAI-kompatible Client fragt dieselben drei Dinge ab. Hier sind sie für diesen Dienst.

EinstellungWert
Base-URLhttps://api.getcodexapi.com/v1
API-SchlüsselDein Schlüssel von der API-Schlüssel-Seite
Modelluncensored

Der Schlüssel wird als Authorization: Bearer YOUR_KEY gesendet. Die beiden Endpunkte, die du aufrufen kannst, sind POST /v1/chat/completions und GET /v1/models. Dies ist ein unabhängiger Dienst, der ein Open-Weight-Modell ausführt, nicht der Codex von OpenAI. Füge daher nicht den Endpunkt von OpenAI oder einen OpenAI-Schlüssel in dieselbe Einstellung ein.

Überprüfe die Verbindung mit curl

Bevor du eine App-Konfiguration änderst, bestätige, dass Schlüssel und URL aus einem Terminal funktionieren. Das Auflisten von Modellen ist die günstigste Prüfung, da kein Prompt erforderlich ist:

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

Du solltest eine JSON-Liste erhalten, die das Modell uncensored enthält. Sende dann eine echte Vervollständigung:

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."}]
  }'

Wenn beide Aufrufe funktionieren, liegt das Problem bei späteren Fehlern in deiner Client-Konfiguration, nicht beim Dienst. Die Antwort-Header enthalten X-Request-Id, was nützlich ist, um einen bestimmten Aufruf nachzuverfolgen, und X-Balance-USD, das dein verbleibendes Guthaben anzeigt.

Python mit dem OpenAI SDK

Das offizielle openai-Paket nimmt die Base-URL im Client-Konstruktor auf. Nichts anderes an deinem Code ändert sich.

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)

Wenn du die Konfiguration lieber außerhalb des Codes halten möchtest, liest das SDK auch OPENAI_BASE_URL und OPENAI_API_KEY aus der Umgebung:

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

Mit diesen Einstellungen nimmt OpenAI() ohne Argumente sie auf. Das ist praktisch, da viele Drittanbieter-Tools, die auf dem SDK basieren, dieselben Variablen erben, ohne dass Code geändert werden muss.

Node.js

Das JavaScript SDK verwendet denselben Optionsnamen, geschrieben als 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 ?? "");
}

Das Streaming erfolgt über Server-Sent Events mit stream: true, und die Nutzung wird am Ende angegeben. Beachte, dass eine gestreamte Anfrage einen deiner Parallelitäts-Slots belegt, bis der Stream endet. Ein abgebrochener Stream zählt weiterhin gegen das Limit.

Apps mit einem Einstellungsbildschirm

Desktop-Tools und Editoren bezeichnen das Feld meist auf eine von drei Arten: „Base URL“, „API Base“ oder „OpenAI-compatible endpoint“. Alle benötigen denselben String. Einige Hinweise, die Zeit sparen:

  • Wähle den OpenAI- oder „benutzerdefinierten OpenAI-kompatiblen“ Anbietertyp, nicht einen herstellerspezifischen.
  • Gib den Modellnamen manuell ein, wenn die App eine Freitextbox hat. uncensored ist die exakte ID.
  • Wenn die App eine Schaltfläche „Verbindung testen“ hat, ruft sie normalerweise die Modellliste auf, die diese API unterstützt.
  • Einige Apps zwischenspeichern die Modellliste eines vorherigen Anbieters. Entferne den alten Eintrag und füge einen neuen hinzu, wenn das Dropdown falsch aussieht.

Für ein durchgearbeitetes Beispiel in einem bestimmten Editor sieh dir die Anleitung zum Verbinden von Cursor an oder die Coding-API-Seite für das Gesamtbild. Die vollständige Parameterreferenz findest du in den API-Dokumenten.

Sobald die Verbindung funktioniert, speichere die genauen Werte irgendwo, wo du sie wiederfindest: die URL, den Modellnamen und das Datum, an dem du den Schlüssel erstellt hast. Teams verlieren oft später eine Stunde an einer Kopie der Konfiguration, die noch einen alten Wert enthält. Eine einzige gemeinsam genutzte Beispiel-Datei im Repository mit einem Platzhalter statt des echten Schlüssels verhindert das.

Häufige Fehler und Lösungen

Die URL endet als /v1/v1

Einige Clients hängen /v1 automatisch an. Wenn deine Anfragen fehlschlagen und das Client-Protokoll einen Pfad mit /v1/v1/chat/completions zeigt, entferne das /v1 aus der Base-URL, die du eingegeben hast. Das Gegenteil passiert auch: Ein Client, der es nicht hinzufügt, benötigt es in deiner Einstellung. Das Protokoll des Anfragepfads klärt die Frage schnell.

Du hast den vollständigen Endpunkt in die Base-URL eingegeben

Die Base-URL endet bei /v1. Gib dort nicht /chat/completions ein. Das SDK fügt den Pfad für jeden Aufruf hinzu.

Ein abschließender Slash oder ein Tippfehler im Host

Die meisten SDKs tolerieren einen abschließenden Slash, aber einige ältere Tools bauen Pfade durch einfache Verkettung und enden mit einem doppelten Slash. Entferne ihn, wenn du seltsame 404-Antworten siehst.

Falscher Schlüssel oder der Schlüssel eines anderen Dienstes

Ein OpenAI-Schlüssel funktioniert hier nicht, und unserer funktioniert dort nicht. API-Schlüsselsfehler bedeuten fast immer ein Copy-Paste-Problem, wie ein fehlendes Zeichen oder ein Leerzeichen am Ende.

Es funktioniert in curl, aber nicht in deiner App

Wenn curl erfolgreich ist und die Anwendung mit derselben URL und demselben Schlüssel fehlschlägt, liegt der Unterschied in der Umgebung. Prüfe, ob die App hinter einem Proxy läuft oder in einem Container ohne ausgehenden Zugriff, ob sie eine ältere Umgebungsvariable wie einen veralteten OPENAI_BASE_URL aus einem anderen Projekt liest und ob eine Konfigurationsdatei den Wert überschreibt, den du im Code festgelegt hast. Das Ausdrucken der finalen URL, die der Client aufrufen wird, direkt vor der Anfrage, klärt die meisten dieser Fälle innerhalb einer Minute.

HTTP 429

Das bedeutet, dass ein Limit erreicht wurde. Der Fehlercode rate_limited bezieht sich auf Anfragen pro Minute, und concurrency auf zu viele gleichzeitige Anfragen. Ein vollständiger Schlüssel erlaubt 8 gleichzeitige Anfragen und 300 pro Minute; ein Test-Schlüssel erlaubt 2 und 60. Bei temporärer Überlastung erhältst du auch einen 429-Fehler mit einem Retry-After: 5-Header. Warte fünf Sekunden und versuche es erneut.

LangChain und die URL an einem Ort halten

Frameworks, die auf dem OpenAI-Client basieren, verwenden dieselben Werte. In LangChains OpenAI-Integration heißen die Argumente so:

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)

Egal welches Framework du verwendest, verteile die URL nicht im gesamten Code. Speichere sie in einer einzigen Umgebungsvariable oder einer einzigen Konfigurationsdatei und lese sie von dort. So musst du beim Wechsel zwischen einem Test-Schlüssel und einem Produktions-Schlüssel oder zwischen Maschinen nur eine einzige Zeile ändern. So bleiben die Schlüssel auch außerhalb deines Repositorys: Speichere den Schlüssel in einer Umgebungsvariable oder einem Secrets-Manager, niemals in einer festgeschriebenen Datei.

Wenn du nach dem eigenen Endpunkt von OpenAI für seine Codex-Produkte gesucht hast, bist du hier falsch. Die Basis-URL und die API-Schlüssel von OpenAI werden von OpenAI dokumentiert. Folge daher deren aktueller Dokumentation dafür. Die Adresse auf dieser Seite gehört zu einem unabhängigen Dienst und akzeptiert nur Schlüssel, die hier ausgestellt wurden.

Was du nach der Verbindung senden kannst

Der Endpunkt unterstützt Streaming, Tool Calling (tools, tool_choice, mit Ergebnissen als role: "tool"-Nachrichten) und den JSON-Modus über response_format: {"type": "json_object"}. Die Parameter temperature, top_p, stop, seed und die Strafen werden durchgereicht. Das Kontextfenster umfasst 100.000 Token für Prompt plus Completion, und der maximale Anforderungstext beträgt 8 MB.

Es ist nur Text. Es gibt keine Bild- oder Audio-Generierung, keine Embeddings und kein Fine-Tuning. Eine Client-Funktion, die davon abhängt, funktioniert also nicht mit dieser Basis-URL. Die Nutzung wird pro Token abgerechnet: $0,15 pro 1 Mio. Input-Token und $0,50 pro 1 Mio. Output-Token. Die Preisseite enthält funktionierende Beispiele.

Fragen und Antworten

Was ist die Basis-URL?

Es ist https://api.getcodexapi.com/v1. Verwende es als Basis-URL in jedem OpenAI-kompatiblen SDK oder App, wobei das Modell auf uncensored eingestellt ist.

Ist dies der offizielle OpenAI Codex Endpunkt?

Nein. Es ist eine unabhängige, OpenAI-kompatible API, die ein Open-Weight-Modell ausführt. Sie wird nicht von OpenAI oder einem anderen Modellanbieter betrieben.

Warum erhalte ich nach dem Ändern der Base URL einen 404-Fehler?

Normalerweise ist der Pfad falsch, entweder ein doppeltes /v1 oder der Endpunktpfad bereits in der Base URL enthalten. Prüfe das Anforderungsprotokoll deines Clients und passe ihn an.

Brauche ich ein spezielles SDK?

Nein. Die Standard-OpenAI-SDKs für Python und Node funktionieren, ebenso wie einfaches HTTP mit curl. Du änderst nur die Base URL, den Schlüssel und den Modellnamen.

Dein Schlüssel ist nur ein Formular entfernt

Erstelle ein Konto, kopiere den Schlüssel, ändere die Basis-URL. Das ist die gesamte Einrichtung.

API-Schlüssel erhalten