AI per principiantiGuida
Token di input vs output: cosa ti fattura un'API IA
Perché un'API IA conta separatamente i token di input e di output, dove leggerli nel campo usage e come calcolare il costo di una richiesta.

In questa pagina
Se hai appena effettuato la tua prima chiamata API a un modello linguistico, probabilmente hai visto un blocco usage nella risposta e ti sei chiesto cosa conti esattamente. La risposta breve: ogni richiesta ha due contatori. Uno conta i token che invii (input), l'altro conta i token che il modello scrive in risposta (output). Ogni contatore ha il proprio prezzo, e il costo di una richiesta è la somma di entrambi.
Questa guida mostra dove trovare i numeri, come convertirli in dollari e cosa puoi cambiare per spendere meno. Se la parola "token" è ancora vaga, inizia da Cos'è un token nell'IA?.
Cosa conta come input e cosa come output#
I token di input sono tutto ciò che il modello deve leggere per risponderti:
- il tuo ultimo messaggio;
- il system prompt (istruzioni come "rispondi brevemente, in italiano");
- i messaggi precedenti della conversazione, se li invii di nuovo;
- documenti, codice o risultati di ricerca che incolli nella richiesta.
I token di output sono tutto ciò che il modello genera in risposta. Nel formato compatibile con OpenAI è il testo in choices[0].. Alcuni modelli in modalità thinking generano anche token di ragionamento prima della risposta finale; controlla la pagina dei prezzi di un modello per vedere se vengono fatturati come output.
Il punto importante per i principianti: il modello non ricorda la tua chat tra una richiesta e l'altra. Un'app di chat reinvia l'intera cronologia ogni volta, quindi l'input di una conversazione lunga cresce a ogni turno, anche se il tuo nuovo messaggio è una sola riga.
Dove leggere i numeri: il blocco usage#
Ogni risposta non in streaming di un'API compatibile con OpenAI termina con un oggetto usage. Questo è un esempio didattico della sua struttura:
{
"choices": [
{ "message": { "role": "assistant", "content": "..." }, "finish_reason": "stop" }
],
"usage": {
"prompt_tokens": 2000,
"completion_tokens": 500,
"total_tokens": 2500
}
}Scorri la tabella verso destra →
| Campo | Cosa significa | Fatturato come |
|---|---|---|
prompt_tokens |
Token in tutto ciò che hai inviato | Input |
completion_ |
Token generati dal modello | Output |
total_tokens |
prompt_tokens + completion_ |
Non è un prezzo separato: è solo la somma |
Un errore comune dei principianti è moltiplicare total_tokens per un unico prezzo. Poiché input e output hanno prezzi diversi, servono i due numeri separatamente.
Alcuni provider aggiungono campi extra. Ad esempio, l'API di DeepSeek suddivide anche prompt_tokens in prompt_ e prompt_ e, in modalità thinking, riporta reasoning_tokens (fonte: documentazione API DeepSeek, verificata il 21 ottobre 2026). I tre campi della tabella sono quelli su cui puoi contare in qualsiasi risposta compatibile con OpenAI.
Quando trasmetti la risposta in streaming, l'usage non è noto all'inizio. Nell'API di DeepSeek arriva nell'ultimo chunk di contenuto prima di data: [DONE] (documentazione API DeepSeek, verificata il 21 ottobre 2026); altre API potrebbero inviarlo diversamente o solo su richiesta, quindi controlla cosa riceve il tuo client. Lo streaming in sé è trattato in Risposte in streaming in Python.
Perché i due lati hanno prezzi diversi#
Leggere il tuo prompt e scrivere una risposta sono tipi di lavoro diversi. Il modello elabora l'intero prompt in un'unica passata, ma deve produrre la risposta un token alla volta, e ogni nuovo token dipende dai precedenti. Ecco perché i provider di solito prezzano l'output più dell'input, e perché vedi due numeri per modello in qualsiasi listino prezzi.
Il modello che usiamo come esempio qui sotto, MiniMax-M2.7 (id minimax-m2.7), segue questo schema. I prezzi attuali per 1M di token sono $0.05 per l'input e $0.15 per l'output.
La formula#
I prezzi sono indicati per 1 milione di token, quindi il costo di una richiesta è:
cost = input_tokens × input_price ÷ 1,000,000
+ output_tokens × output_price ÷ 1,000,000Ecco con prezzi tondi inventati, solo per mostrare l'aritmetica (esempio, sostituisci con i prezzi attuali dalla tabella qui sotto):
# example, substitute current prices from the table
price_in = 0.20 # USD per 1M input tokens
price_out = 0.80 # USD per 1M output tokens
prompt_tokens = 2000
completion_tokens = 500
cost = (prompt_tokens * price_in + completion_tokens * price_out) / 1_000_000
# 2000 × 0.20 ÷ 1,000,000 = 0.0004 (input)
# 500 × 0.80 ÷ 1,000,000 = 0.0004 (output)
# 0.0004 + 0.0004 = 0.0008 USDUn esempio svolto con un modello reale#
Prendi la richiesta dell'esempio usage qui sopra: 2.000 token di input e 500 token di output. Su MiniMax-M2.7 tramite CheapTokens costa $0.00018. Il numero è calcolato dal listino prezzi attuale ogni volta che la pagina viene mostrata.
Una singola richiesta è minuscola, quindi è utile scalare. Una piccola app che invia 10.000 richieste di questa dimensione usa 20.000.000 di token di input e 5.000.000 di token di output, per un totale di $1.75.
La stessa richiesta su altri modelli della nostra lista:
| Modello | Input $/1M | Output $/1M | Costo | OpenRouter |
|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.00006 | $0.00012 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.00008 | $0.00017 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.00018 | $0.0012 |
2000 token di input e 500 token di output in totale. I prezzi per 1M di token sono attuali e cambiano insieme alle nostre tariffe; la colonna OpenRouter mostra i prezzi di riferimento per lo stesso carico di lavoro.
Nota che l'output è una parte minore del conteggio dei token qui (500 su 2.500) ma una parte maggiore della fattura rispetto alla sua quota di token, perché i token di output costano di più (vedi la tabella). Per questo modello il lato output è anche dove si conferma il risparmio rispetto al prezzo di riferimento di OpenRouter, il che è utile se la tua app scrive risposte lunghe.
Usarlo nel codice#
Puoi leggere usage dal pacchetto Python ufficiale openai puntandolo al base URL di CheapTokens:
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key="YOUR_API_KEY",
)
response = client.chat.completions.create(
model="MiniMaxAI/MiniMax-M2.7",
messages=[{"role": "user", "content": "Explain input and output tokens in two sentences."}],
)
usage = response.usage
print("input:", usage.prompt_tokens)
print("output:", usage.completion_tokens)
print("total:", usage.total_tokens)
# example, substitute current prices from the table above
price_in, price_out = 0.20, 0.80
cost = (usage.prompt_tokens * price_in + usage.completion_tokens * price_out) / 1_000_000
print(f"approx. cost: ${cost:.6f}")Se non hai ancora inviato una richiesta, segui prima La tua prima richiesta API con CheapTokens.
Come spendere meno token#
- Accorcia il prompt. Riduci il system prompt e rimuovi le istruzioni di cui il modello non ha bisogno. Ogni token che invii viene fatturato a ogni richiesta.
- Riduci la cronologia. In una chat lunga, mantieni gli ultimi turni o un breve riassunto invece dell'intera conversazione.
- Invia solo la parte rilevante di un documento. Una pagina di testo costa meno di un file intero.
- Chiedi il formato che ti serve. "Rispondi in tre punti elenco" produce meno token di output di un saggio aperto.
- Imposta
max_tokensdi proposito. Limita solo l'output. Troppo basso e la risposta viene troncata; i dettagli sono in Perché una risposta dell'IA si interrompe a metà frase? MiniMax-M2.7 su CheapTokens consente fino a 8.192 token di output per risposta e ha una finestra di contesto di 180K.
Per stimare il costo di un flusso di lavoro più grande, vedi Come stimare il costo di un agente IA.
Cosa ricordare#
- Ogni richiesta ha token di input (
prompt_tokens) e token di output (completion_).tokens - Hanno prezzi separati, di solito con l'output più alto.
- Costo = token di input × prezzo input + token di output × prezzo output, con prezzi per 1M di token.
- Leggi i numeri da
usagenella risposta invece di indovinare.
Su CheapTokens un unico saldo prepagato copre tutti i modelli, i prezzi per modello sono fissi senza prezzi di punta, e l'API è compatibile con OpenAI Chat Completions e Anthropic Messages. Per provare l'esempio qui sopra, ottieni una chiave API e invia la tua prima richiesta.
Prezzi attuali per ogni modello: Prezzi CheapTokens.



