KI für EinsteigerAnleitung
OpenAI-kompatible API: Was base_url ist und wie man wechselt
Eine OpenAI-kompatible API akzeptiert dieselben Anfragen wie die von OpenAI. Ändere base_url, den Schlüssel und die Modell-ID, und dein Code sendet seine erste Anfrage an CheapTokens.

Auf dieser Seite
Eine OpenAI-kompatible API ist eine API, die Anfragen im selben Format wie die Chat Completions API von OpenAI annimmt und im selben Format antwortet. Um eine App zu einem anderen Anbieter zu verschieben, änderst du normalerweise drei Werte: base_url (wohin die Anfragen gehen), den API-Schlüssel und die Modell-ID. Der Rest deines Codes, einschließlich der Nachrichtenliste und der Art, wie du die Antwort liest, bleibt unverändert.
Dieser Leitfaden erklärt die Idee in einfachen Worten und endet mit einer funktionierenden ersten Anfrage an CheapTokens in Python und curl. Die Fakten zu CheapTokens wurden am 22. Oktober 2026 mit der Dokumentation abgeglichen.
Was bedeutet "OpenAI-kompatibel"?#
Eine API ist eine Reihe von Regeln für die Kommunikation mit einem Dienst über das Internet (falls das Wort neu ist, beginne mit wie deine erste API-Anfrage funktioniert). Das Chat-Format von OpenAI wurde zu einem gemeinsamen Standard: Viele Anbieter und Tools akzeptieren denselben Anfrage-Body und geben dieselbe Antwortstruktur zurück. Eine solche API heißt OpenAI-kompatibel.
In der Praxis bedeutet das, dass bei jedem kompatiblen Anbieter drei Dinge gleich sind:
- Die Anfrage: ein JSON-Body mit einem
model-Feld und einermessages-Liste, wobei jede Nachricht einerole(system,useroderassistant) undcontenthat. - Der Endpoint-Pfad:
/, angehängt an die Basis-URL.chat/ completions - Die Antwort: ein JSON-Objekt, in dem der generierte Text in
choices[0].steht.message. content
Da das Format geteilt wird, können offizielle SDKs und viele Apps mit jedem kompatiblen Anbieter kommunizieren. Sie müssen nur wissen, wohin die Anfrage gesendet werden soll.
Was ist base_url?#
base_url ist die Adresse, mit der jede Anfrage beginnt. Ein SDK baut die vollständige Adresse, indem es den Pfad des Aufrufs anhängt.
Tabelle nach rechts scrollen →
| Teil | Beispiel |
|---|---|
base_url |
https:/ |
| Vom SDK hinzugefügter Pfad | / |
| Vollständige Adresse der Anfrage | https:/ |
Wenn du also eine andere base_url setzt, sendet derselbe Code dieselbe Art von Anfrage an einen anderen Server. Die Basis-URL von CheapTokens ist https:/. Die API ist kompatibel mit OpenAI Chat Completions und mit Anthropic Messages, und ein Prepaid-Guthaben deckt alle Modelle ab.
Die drei Werte, die du änderst#
Tabelle nach rechts scrollen →
| Wert | Was er ist | Woher er kommt |
|---|---|---|
base_url |
Adresse der API | https:/ |
| API-Schlüssel | Dein geheimes Passwort für die API | Dein CheapTokens-Konto. Siehe was ein API-Schlüssel ist und wie du ihn sicher speicherst |
| Modell-ID | Der exakte Name des Modells im Feld model |
Die CheapTokens-Dokumentation |
Die Modell-ID verdient Aufmerksamkeit. Verschiedene Anbieter geben demselben Modell unterschiedliche IDs, daher funktioniert eine ID von einem anderen Dienst hier nicht. Nimm IDs aus der CheapTokens-Dokumentation. Die derzeit verfügbaren IDs:
Tabelle nach rechts scrollen →
| Modell | Modell-ID | Kontext | Max. Ausgabe pro Antwort |
|---|---|---|---|
| GLM-5.3-Flash | zai- |
390K | 8.192 Tokens |
| DeepSeek-V4-Flash | deepseek- |
380K | 32.768 Tokens |
| MiniMax-M2.7 | MiniMaxAI/ |
180K | 8.192 Tokens |
DeepSeek-V4-Flash liefert bis zu 32.768 Tokens pro Antwort und hat einen 380K-Kontext; GLM-5.3-Flash hat einen 390K-Kontext; MiniMax-M2.7 hat einen 180K-Kontext. Alle drei werden aus demselben Guthaben abgerechnet, sodass ein Wechsel zwischen ihnen nur das Ändern der Modell-ID bedeutet.
Erste Anfrage in Python#
Installiere das Paket openai und speichere deinen Schlüssel dann in einer Umgebungsvariable, statt ihn in den Code zu schreiben:
pip install openai
export CHEAPTOKENS_API_KEY="YOUR_CHEAPTOKENS_KEY"Jetzt der Code. Der einzige Unterschied zu einem Standard-OpenAI-Beispiel ist das Argument base_url, der Schlüssel und die Modell-ID:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1", # 1. where requests go
api_key=os.environ["CHEAPTOKENS_API_KEY"], # 2. your CheapTokens key
)
response = client.chat.completions.create(
model="MiniMaxAI/MiniMax-M2.7", # 3. model id from the docs
messages=[
{"role": "system", "content": "You answer briefly."},
{"role": "user", "content": "Explain base_url in one sentence."},
],
)
print(response.choices[0].message.content)Der Schlüssel im Beispiel ist ein Platzhalter: Ersetze YOUR_ durch deinen eigenen Schlüssel und committe niemals einen echten Schlüssel in ein Repository.
Wenn eine App, die du bereits hast, Einstellungen aus einer Konfigurationsdatei oder Umgebungsvariablen liest, musst du ihren Code überhaupt nicht bearbeiten. Suche nach Feldern namens Base URL, API Base oder Endpoint und trage dort dieselben drei Werte ein.
Dieselbe Anfrage mit curl#
curl zeigt, was das SDK hinter den Kulissen tut: die Basis-URL plus den Pfad, den Schlüssel im Header Authorization und einen JSON-Body.
curl https://api.cheaptokens.dev/v1/chat/completions \
-H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMaxAI/MiniMax-M2.7",
"messages": [
{"role": "user", "content": "Explain base_url in one sentence."}
]
}'Was du sehen solltest#
Wenn alles korrekt eingestellt ist, gibt das Python-Skript eine kurze Textantwort aus, und curl gibt ein JSON-Objekt aus. Suche die Liste choices: Der Text der Antwort steht in choices[0].. Wenn du das siehst, hat deine erste Anfrage an CheapTokens funktioniert, und du kannst mit deiner echten App weitermachen.
Was kostet es?#
Die Abrechnung erfolgt nach Tokens, getrennt gezählt für Eingabe und Ausgabe (siehe Eingabe- vs. Ausgabe-Tokens). Beispielsweise kostet MiniMax-M2.7 derzeit $0.05 pro 1M Eingabe-Tokens und $0.15 pro 1M Ausgabe-Tokens. Die folgende Tabelle zeigt immer die aktuellen Preise für alle Modelle, ohne Aufschläge zu Stoßzeiten.
| Modell | Kontext | Input $/1M | Output $/1M | OpenRouter Input | OpenRouter Output |
|---|---|---|---|---|---|
| GLM-5.3-Flash reasoning | 390K | $0.02 | $0.04 | $0.0413 | $0.0758 |
| DeepSeek-V4-Flash | 380K | $0.015 | $0.10 | $0.0475 | $0.1568 |
| MiniMax-M2.7 | 180K | $0.05 | $0.15 | $0.30 | $1.20 |
Preise in USD pro 1 Mio. Token. OpenRouter-Zahlen dienen dem Vergleich und können sich ändern.
Preise für die vollständige Modellliste findest du auch auf der CheapTokens-Preisseite.
Wenn es nicht funktioniert#
- Authentifizierungsfehler (meist 401): Der Schlüssel fehlt, ist falsch geschrieben oder enthält zusätzliche Leerzeichen. Prüfe, ob die Umgebungsvariable in demselben Terminal gesetzt ist, in dem du das Skript ausführst.
- "Not found" (meist 404): Prüfe
base_url. Sie muss mit/v1enden, und du solltest/nicht selbst anhängen, wenn du ein SDK verwendest, sonst wird der Pfad verdoppelt.chat/ completions - Unbekanntes Modell: Kopiere die Modell-ID exakt aus der Tabelle oben oder aus der Dokumentation, einschließlich Groß-/Kleinschreibung und des Teils vor dem Schrägstrich.
- Keine Verbindung oder Timeout: siehe häufige Verbindungsfehler und wie du sie behebst.
- Antwort mitten im Satz abgeschnitten: Das Limit
max_tokenswurde erreicht, was in warum eine KI-Antwort mitten im Satz stoppt behandelt wird.
Nächste Schritte#
Sobald die erste Anfrage funktioniert, kannst du Streaming in Python hinzufügen, dieselben drei Werte in deinen Editor oder Agenten eintragen oder wie man KI-Modellnamen liest lesen. Einrichtungsdetails und eine vollständige Modellliste findest du in der CheapTokens-Dokumentation.



