Risposta rapida
Come chiamo LLMwithCrypto con curl?
Invia una POST a https://llmwithcrypto.com/api/v1/chat/completions con -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY", un content type JSON e un body che contiene model e messages. LLMwithCrypto restituisce l'oggetto di risposta di OpenAI; passalo a jq per stampare la risposta e i conteggi dei token. Aggiungi -N e "stream": true per vedere il testo arrivare in tempo reale, come documentato al 23 ottobre 2026.
Come imposto la chiave una volta sola?
Esportala nella tua sessione shell così ogni comando può usarla, e tienila fuori dalla cronologia della shell e dagli script condivisi:
- Linux e macOS:
export LLMWITHCRYPTO_API_KEY=…nel terminale, oppure in un file.envche i tuoi script caricano e che non viene mai committato. - Windows PowerShell:
$env:LLMWITHCRYPTO_API_KEY = "…", poi esegui i comandi in Git Bash o WSL, oppure adatta le virgolette.
Crea una chiave API per ogni app, agente o membro del team e revoca quella che vuoi dalla dashboard senza toccare le altre.
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"'
Come evito i problemi di virgolette?
Metti il body in un file. Le virgolette della shell e quelle del JSON si scontrano appena un prompt contiene un apostrofo o un simbolo del dollaro; un file evita entrambi. --data @request.json invia il file così com'è.
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'
Come faccio a vedere una risposta in streaming?
-N disattiva il buffer di output di curl, così ogni server-sent event viene stampato non appena arriva. Vedrai le righe data: grezze; la pagina sullo streaming le spiega.
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
}'
Come faccio a elencare i modelli e controllare i crediti?
Entrambe le chiamate sono gratuite. La prima stampa un id di modello per riga, pronto per il campo model; la seconda stampa i crediti rimanenti in dollari USA.
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'
Come faccio a vedere un errore nel terminale?
Aggiungi -w "\nHTTP %{http_code}\n" per stampare lo status dopo il body. Un body di errore è un piccolo oggetto JSON con un campo code, come invalid_api_key, insufficient_balance o model_not_found; la pagina sugli errori li spiega uno per uno. Con jq, .error.code // empty stampa il codice quando c'è e niente altrimenti, il che rende facile creare rami negli script.
Gli errori non costano nulla. Paghi per token dal tuo saldo: i token di input e di output vengono contati dal tokenizer del modello stesso e addebitati al prezzo di quel modello per 1M di token. Una chiamata che termina con un errore non costa nulla.
Posso automatizzare un batch con curl?
Per una manciata di richieste, un loop shell sui file va bene: un body JSON per file, un curl per file, i risultati scritti accanto. Tienilo sequenziale, oppure esegui qualche richiesta alla volta con xargs -P 4, per restare sotto il tuo rate limit. Ogni account ha un limite di richieste e di token al minuto, mostrato nella dashboard; chiedi al supporto e può essere alzato.
Per volumi più grandi, retry e concorrenza sono più semplici nel codice: le pagine Python e Node.js hanno esempi di batch pronti con un limite di concorrenza.
curl: domande frequenti
Perché ricevo un errore 401?
La chiave manca, è scritta male o è stata revocata, oppure la variabile non è impostata in questa shell. Esegui echo ${#LLMWITHCRYPTO_API_KEY} per controllare che non sia vuota.
Come faccio a confrontare rapidamente due modelli?
Esegui lo stesso file due volte e cambia solo model, per esempio deepseek-v4-pro e gpt-oss-120b; le righe usage mostrano quanto è costata ogni risposta in token.
Il mio prompt viene memorizzato?
No. Non conserviamo i tuoi prompt né le risposte del modello: una volta inviata una risposta, il suo testo non c'è più. Ogni chiamata lascia una riga di log con l'ora, l'account, il modello e i conteggi dei token, cancellata dopo 30 giorni.