Premiers pasGuide
Première requête API dans VS Code : un fichier .http, la clé depuis .env
Envoyez votre premier chat completion à CheapTokens depuis VS Code avec l'extension REST Client, gardez la clé hors de git, et trouvez la réponse et l'usage des tokens.

Sur cette page
Vous pouvez envoyer votre première requête à CheapTokens sans quitter VS Code : installez l'extension REST Client, écrivez un fichier .http, gardez la clé dans un .env à côté et appuyez sur Ctrl+Alt+R. La réponse s'ouvre dans un panneau à côté du fichier, et le texte et le nombre de tokens sont deux champs que vous repérez d'un coup d'œil.
Si vous avez déjà un éditeur ouvert, c'est plus simple que d'installer une autre application juste pour dire « Hello » à un modèle. Et la requête reste dans un fichier texte brut, donc vous pouvez la relancer demain ou la committer (sans la clé) pour un collègue. D'autres façons d'envoyer la même requête sont décrites dans Première requête avec HTTPie et Votre première requête API avec CheapTokens.
Installez l'extension et placez la clé dans .env#
REST Client est l'extension humao.. Dans VS Code, appuyez sur F1, tapez ext install, cherchez rest-client et installez-la. (Vérifié d'après le README de l'extension le 9 novembre 2026.)
Maintenant la clé. Le README décrit {{$dotenv NAME}} : il lit une valeur dans un fichier .env situé dans le même répertoire que votre fichier .http. C'est exactement ce qu'on veut, car la clé n'apparaît jamais dans le fichier de requête. Créez un dossier pour l'expérience et placez-y deux fichiers.
.env :
CHEAPTOKENS_API_KEY=paste-your-key-here.gitignore :
.envCréez la clé dans votre compte CheapTokens et collez-la à la place du placeholder. Pourquoi la ligne d'ignore est importante, et que faire si une clé atterrit dans un commit, voir Stocker une clé API en sécurité.
Remettre en ordre
Mettez la configuration dans le bon ordre
Faites glisser les éléments ou utilisez les flèches
- Installez l'extension REST Client
- Ajoutez .env à .gitignore
- Placez la clé dans .env à côté du fichier .http
- Appuyez sur Ctrl+Alt+R sur la requête
Écrivez le fichier .http#
Créez first.http dans le même dossier. La syntaxe est courte : une ligne de requête (POST URL HTTP/, la méthode est facultative et vaut GET par défaut), des lignes d'en-tête Name: value jusqu'à la première ligne vide, puis le corps après une ligne vide. Les requêtes sont séparées par une ligne de trois # ou plus.
### 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" }]
}Trois choses à remarquer. L'adresse est la base de l'API CheapTokens, https:/, plus /. Le modèle est écrit avec son id complet, zai- : un modèle à contexte de 390K qui peut écrire jusqu'à 8 192 tokens par réponse. Et la clé n'est qu'un placeholder {{$dotenv …}}, donc ce fichier peut être committé sans risque.

Si votre configuration ne prend pas en compte le fichier .env, le README décrit aussi {{$processEnv NAME}}, qui lit une variable depuis l'environnement de votre machine à la place.
Envoyez-la et trouvez la réponse#
Cliquez sur « Send Request » au-dessus de la ligne de requête, ou appuyez sur Ctrl+Alt+R (Cmd+Alt+R sur macOS). Vous pouvez aussi faire un clic droit ou utiliser F1. La réponse s'ouvre dans un panneau séparé. Si vous préférez un onglet d'éditeur normal où vous pouvez chercher et replier, réglez rest- sur true dans les paramètres.
La réponse est le JSON standard de chat-completions. Deux endroits comptent dès le premier jour :
choices[0].est le texte de la réponse. À côté,message. content finish_reasonvous indique pourquoi le modèle s'est arrêté.lengthsignifie que la réponse a été coupée par la limite de tokens.usagecontient les comptes de tokens pour cette requête : les tokens envoyés et les tokens écrits par le modèle. C'est ce que vous payez, alors regardez-le à chaque fois.

Essayez vous-mêmeEssayez : comment voir qu'une réponse a été coupée ?Afficher la réponse
Regardez finish_reason dans la réponse. S'il indique length, le modèle a atteint la limite de tokens avant de terminer. Ajoutez une ligne "max_tokens" au corps, ou augmentez-la, et renvoyez.
Pour avoir une idée du coût : disons que vous envoyez cette requête 100 fois avec environ 1 000 tokens en entrée et 300 en sortie (une hypothèse pour l'exemple, pas une mesure).
| Modèle | Entrée $/1M | Sortie $/1M | Par requête | 100 requêtes | OpenRouter, 100 requêtes |
|---|---|---|---|---|---|
| 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 tokens d'entrée et 300 tokens de sortie par requête. Les prix par million de tokens sont actuels et évoluent avec nos tarifs ; la colonne OpenRouter indique des prix de référence pour la même charge de travail.
Le tableau montre le prix réel de cette charge de travail sur chaque modèle, avec une colonne OpenRouter pour comparer. Un petit « Hello » coûte bien moins.
Changez de modèle en une ligne#
L'avantage d'un fichier texte brut : changez une ligne et renvoyez. Remplacez l'id du modèle par deepseek- (contexte de 380K, jusqu'à 32 768 tokens par réponse, un seul prix à toute heure, au total moins cher qu'OpenRouter en comptant entrée et sortie ensemble) et appuyez encore une fois sur Ctrl+Alt+R. Même corps, même clé, une réponse différente et un usage différent.
Vous voulez garder les deux ? Collez une seconde requête sous une ligne ### avec l'autre id de modèle. Chaque requête a son propre lien Send Request, donc vous pouvez les exécuter l'une après l'autre et comparer. Un doute sur un id ? Lister les modèles avec GET /v1/models montre les chaînes exactes.
Si ça ne fonctionne pas#
Associer les paires
Associez le symptôme à la cause
Touchez un élément à gauche, puis sa paire
- 401 UnauthorizedLa clé est vide ou erronée, souvent parce que .env n'est pas dans le même dossier que le fichier .http
- 404 Not FoundUne faute de frappe dans le chemin de l'URL ou dans l'id du modèle
- La réponse s'arrête en milieu de phrase, finish_reason vaut lengthLa limite de tokens a été atteinte, augmentez max_tokens
Pour les deux premiers, API 401 ou 404 : mauvaise clé, URL de base ou id de modèle détaille les vérifications. Les détails complets de la requête sont dans la documentation CheapTokens, et les prix actuels sont sur la page de tarifs.
Voilà tout le flux de travail : un fichier, une clé dans .env, un raccourci. À partir de là, vous pouvez ajouter un message système, changer max_tokens, ou transformer le même corps en code dans n'importe quel langage.



