Erste SchritteAnleitung
Erste API-Anfrage in VS Code: eine .http-Datei, Schlüssel aus .env
Sende deine erste Chat-Completion an CheapTokens aus VS Code mit der REST-Client-Erweiterung, halte den Schlüssel aus git heraus und finde die Antwort und den Token-Verbrauch.

Auf dieser Seite
Du kannst deine erste Anfrage an CheapTokens senden, ohne VS Code zu verlassen: Installiere die REST-Client-Erweiterung, schreibe eine .http-Datei, lege den Schlüssel in einer .env daneben ab und drücke Ctrl+Alt+R. Die Antwort öffnet sich in einem Panel neben der Datei, und der Text und die Token-Anzahl sind zwei Felder, die du auf einen Blick findest.
Wenn du bereits einen Editor offen hast, ist das besser, als eine weitere App zu installieren, nur um einem Modell "Hallo" zu sagen. Und die Anfrage bleibt in einer reinen Textdatei, sodass du sie morgen erneut ausführen oder (ohne den Schlüssel) für einen Kollegen committen kannst. Andere Wege, dieselbe Anfrage zu senden, findest du in Erste Anfrage mit HTTPie und Deine erste API-Anfrage mit CheapTokens.
Installiere die Erweiterung und bring den Schlüssel in .env#
REST Client ist die Erweiterung humao.. Drücke in VS Code F1, tippe ext install, suche nach rest-client und installiere sie. (Geprüft anhand der README der Erweiterung am 9. November 2026.)
Jetzt der Schlüssel. Die README beschreibt {{$dotenv NAME}}: Es liest einen Wert aus einer .env-Datei, die im selben Verzeichnis wie deine .http-Datei liegt. Genau das wollen wir, denn der Schlüssel erscheint nie in der Anfragedatei. Erstelle einen Ordner für das Experiment und lege zwei Dateien hinein.
.env:
CHEAPTOKENS_API_KEY=paste-your-key-here.gitignore:
.envErstelle den Schlüssel in deinem CheapTokens-Konto und füge ihn anstelle des Platzhalters ein. Warum die Ignore-Zeile wichtig ist und was zu tun ist, wenn ein Schlüssel jemals in einem Commit landet, steht in Einen API-Schlüssel sicher speichern.
In die richtige Reihenfolge bringen
Bring das Setup in die richtige Reihenfolge
Ziehe die Elemente oder benutze die Pfeile
- Installiere die REST-Client-Erweiterung
- Füge .env zu .gitignore hinzu
- Lege den Schlüssel in .env neben der .http-Datei ab
- Drücke Ctrl+Alt+R auf der Anfrage
Schreibe die .http-Datei#
Erstelle first.http im selben Ordner. Die Syntax ist kurz: eine Anfragezeile (POST URL HTTP/, die Methode ist optional und standardmäßig GET), Header-Zeilen Name: value bis zur ersten leeren Zeile, dann der Body nach einer Leerzeile. Anfragen werden durch eine Zeile mit drei oder mehr # getrennt.
### First request
POST https://api.cheaptokens.dev/v1/chat/completions
Authorization: Bearer {{$dotenv CHEAPTOKENS_API_KEY}}
Content-Type: application/json
{
"model": "zai-org/GLM-5.3-Flash",
"messages": [{ "role": "user", "content": "Hello" }]
}Drei Dinge sind zu beachten. Die Adresse ist die CheapTokens-API-Basis, https:/, plus /. Das Modell wird mit seiner vollständigen ID geschrieben, zai-: ein Modell mit 390K-Kontext, das bis zu 8.192 Token pro Antwort schreiben kann. Und der Schlüssel ist nur ein {{$dotenv …}}-Platzhalter, sodass diese Datei sicher committet werden kann.

Wenn dein Setup die .env-Datei nicht erkennt, beschreibt die README auch {{$processEnv NAME}}, das stattdessen eine Variable aus der Umgebung deines Rechners liest.
Sende sie und finde die Antwort#
Klicke auf "Send Request" über der Anfragezeile oder drücke Ctrl+Alt+R (Cmd+Alt+R unter macOS). Du kannst auch rechtsklicken oder F1 verwenden. Die Antwort öffnet sich in einem separaten Panel. Wenn du einen normalen Editor-Tab bevorzugst, in dem du suchen und falten kannst, setze rest- in den Einstellungen auf true.
Die Antwort ist das Standard-Chat-Completions-JSON. Zwei Stellen sind am ersten Tag wichtig:
choices[0].ist der Antworttext. Daneben sagt dirmessage. content finish_reason, warum das Modell gestoppt hat.lengthbedeutet, dass die Antwort durch das Token-Limit abgeschnitten wurde.usageenthält die Token-Zahlen für diese Anfrage: gesendete Token und vom Modell geschriebene Token. Dafür bezahlst du, also schau jedes Mal darauf.

Probier es selbstProbier es aus: Woran siehst du, dass eine Antwort abgeschnitten wurde?Antwort anzeigen
Schau dir finish_reason in der Antwort an. Wenn dort length steht, hat das Modell das Token-Limit erreicht, bevor es fertig war. Füge eine "max_tokens"-Zeile zum Body hinzu oder erhöhe sie und sende erneut.
Um ein Gefühl für die Kosten zu bekommen: Angenommen, du sendest diese Anfrage 100-mal mit etwa 1.000 Token Eingabe und 300 Ausgabe (eine Annahme für das Beispiel, keine Messung).
| Modell | Input $/1M | Output $/1M | Pro Anfrage | 100 Anfragen | OpenRouter, 100 Anfragen |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000032 | $0.0032 | $0.0058 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000045 | $0.0045 | $0.0112 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.000095 | $0.0095 | $0.114 |
1.000 Input- und 300 Output-Tokens pro Anfrage. Die Preise pro 1 Mio. Tokens sind aktuell und ändern sich zusammen mit unseren Tarifen; die OpenRouter-Spalte zeigt Referenzpreise für dieselbe Arbeitslast.
Die Tabelle zeigt den Live-Preis dieser Arbeitslast auf jedem Modell, mit einer OpenRouter-Spalte zum Vergleich. Ein winziges "Hallo" kostet weit weniger.
Tausche das Modell in einer Zeile#
Das Praktische an einer reinen Textdatei: Ändere eine Zeile und sende erneut. Ersetze die Modell-ID durch deepseek- (380K-Kontext, bis zu 32.768 Token pro Antwort, ein Preis zu jeder Tageszeit, insgesamt günstiger als OpenRouter bei gemeinsamer Zählung von Eingabe und Ausgabe) und drücke noch einmal Ctrl+Alt+R. Gleicher Body, gleicher Schlüssel, eine andere Antwort und ein anderes usage.
Willst du beide behalten? Füge eine zweite Anfrage unter einer ###-Zeile mit der anderen Modell-ID ein. Jede Anfrage bekommt ihren eigenen Send-Request-Link, sodass du sie nacheinander ausführen und vergleichen kannst. Unsicher bei einer ID? Modelle mit GET /v1/models auflisten zeigt die exakten Strings.
Wenn es nicht funktioniert#
Paare zuordnen
Ordne das Symptom der Ursache zu
Tippe auf ein Element links, dann auf sein Paar
- 401 UnauthorizedDer Schlüssel ist leer oder falsch, oft weil .env nicht im selben Ordner wie die .http-Datei liegt
- 404 Not FoundEin Tippfehler im URL-Pfad oder in der Modell-ID
- Antwort stoppt mitten im Satz, finish_reason ist lengthDas Token-Limit wurde erreicht, erhöhe max_tokens
Für die ersten beiden führt API 401 oder 404: falscher Schlüssel, Basis-URL oder Modell-ID durch die Prüfungen. Vollständige Anfragedetails stehen in der CheapTokens-Dokumentation, und aktuelle Preise findest du auf der Preisseite.
Das ist der ganze Workflow: eine Datei, ein Schlüssel in .env, ein Tastenkürzel. Von hier aus kannst du eine Systemnachricht hinzufügen, max_tokens ändern oder denselben Body in Code in jeder Sprache umwandeln.



