Réponse rapide
Comment appeler LLMwithCrypto avec curl ?
Envoyez un POST à https://llmwithcrypto.com/api/v1/chat/completions avec -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY", un type de contenu JSON et un corps contenant model et messages. LLMwithCrypto renvoie l'objet de réponse OpenAI ; passez-le à jq pour afficher la réponse et les comptes de tokens. Ajoutez -N et "stream": true pour voir le texte arriver en direct, comme documenté le 23 octobre 2026.
Comment définir la clé une seule fois ?
Exportez-la dans votre session shell pour que chaque commande puisse l'utiliser, et gardez-la hors de votre historique shell et des scripts partagés :
- Linux et macOS :
export LLMWITHCRYPTO_API_KEY=…dans le terminal, ou dans un fichier.envque vos scripts chargent et qui n'est jamais commité. - Windows PowerShell :
$env:LLMWITHCRYPTO_API_KEY = "…", puis exécutez les commandes dans Git Bash ou WSL, ou adaptez les guillemets.
Créez une clé API par app, agent ou coéquipier et révoquez n'importe laquelle depuis le dashboard sans toucher aux autres.
curl -s "https://llmwithcrypto.com/api/v1/chat/completions" \
-H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-oss-20b", "messages": [{"role": "user", "content": "One word for fast?"}], "max_tokens": 20}' \
| jq -r '.choices[0].message.content, "\(.usage.prompt_tokens) in, \(.usage.completion_tokens) out"'
Comment éviter les problèmes de guillemets ?
Mettez le corps dans un fichier. Les guillemets du shell et ceux du JSON s'affrontent dès qu'un prompt contient une apostrophe ou un signe dollar ; un fichier évite les deux. --data @request.json envoie le fichier tel quel.
cat > request.json <<'EOF'
{
"model": "deepseek-v4-pro",
"messages": [
{"role": "system", "content": "You review shell scripts."},
{"role": "user", "content": "Is it safe to run rm -rf \"$DIR\"/ when DIR may be empty?"}
],
"max_tokens": 300
}
EOF
curl -s "https://llmwithcrypto.com/api/v1/chat/completions" \
-H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" \
-H "Content-Type: application/json" \
--data @request.json | jq -r '.choices[0].message.content'
Comment suivre une réponse en streaming ?
-N désactive le tampon de sortie de curl, ainsi chaque server-sent event s'affiche dès son arrivée. Vous verrez des lignes brutes data: ; la page streaming explique comment les lire.
curl -sN "https://llmwithcrypto.com/api/v1/chat/completions" \
-H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"messages": [{"role": "user", "content": "Write a haiku about latency."}],
"stream": true,
"stream_options": {"include_usage": true},
"max_tokens": 120
}'
Comment lister les modèles et vérifier le crédit ?
Les deux appels sont gratuits. Le premier affiche un id de modèle par ligne, prêt pour le champ model ; le second affiche le crédit restant en dollars US.
curl -s "https://llmwithcrypto.com/api/v1/models" \
-H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" | jq -r '.data[].id'
curl -s "https://llmwithcrypto.com/api/v1/credits" \
-H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" | jq -r '.balance_usd'
Comment voir une erreur dans le terminal ?
Ajoutez -w "\nHTTP %{http_code}\n" pour afficher le statut après le corps. Un corps d'erreur est un petit objet JSON avec un champ code, comme invalid_api_key, insufficient_balance ou model_not_found ; la page des erreurs explique chacune. Avec jq, .error.code // empty affiche le code quand il y en a un et rien sinon, ce qui facilite les branchements dans les scripts.
Les erreurs ne coûtent rien. Vous payez au token depuis votre solde : les tokens d'entrée et de sortie sont comptés par le tokenizer du modèle lui-même et facturés au prix de ce modèle par 1M de tokens. Un appel qui se termine par une erreur ne coûte rien.
Puis-je scripter un lot avec curl ?
Pour une poignée de requêtes, une boucle shell sur des fichiers suffit : un corps JSON par fichier, un curl par fichier, résultats écrits à côté. Restez en séquentiel, ou lancez-en quelques-unes à la fois avec xargs -P 4, pour rester sous votre rate limit. Chaque compte a une limite de requêtes et de tokens par minute, affichée dans le dashboard ; demandez au support, elle peut être augmentée.
Pour plus de volume, les retries et la concurrence sont plus simples en code : les pages Python et Node.js ont des exemples de lots prêts à l'emploi avec une limite de concurrence.
curl : questions fréquentes
Pourquoi j'obtiens une erreur 401 ?
La clé est absente, mal saisie ou révoquée, ou la variable n'est pas définie dans ce shell. Lancez echo ${#LLMWITHCRYPTO_API_KEY} pour vérifier qu'elle n'est pas vide.
Comment comparer deux modèles rapidement ?
Lancez le même fichier deux fois en changeant seulement model, par exemple deepseek-v4-pro et gpt-oss-120b ; les lignes usage montrent ce que chaque réponse a coûté en tokens.
Mon prompt est-il stocké ?
Non. Nous ne stockons ni vos prompts ni les réponses du modèle : une fois une réponse envoyée, son texte a disparu. Chaque appel laisse une ligne de log avec l'heure, le compte, le modèle et le nombre de tokens, supprimée après 30 jours.