Token: cosa sono, come contarli e perché l’italiano costa di più

8 min di lettura

Con le API dei modelli IA tutto si paga in token, ma quasi nessuno sa quanti ne usa davvero. In giro si trova sempre la stessa regola, “un token vale circa tre quarti di parola”, ripetuta senza dire per quale lingua e per quale modello. Allora ho fatto la cosa più semplice: ho preso gli stessi testi e li ho fatti contare a sette modelli di tre provider diversi.

In questo articolo ti spiego cosa sono i token, ti mostro i numeri dell’esperimento e ti lascio gli strumenti per contarli prima di spendere. Spoiler: l’italiano costa più dell’inglese con tutti i modelli, ma quanto di più dipende moltissimo da chi scegli, e due modelli con lo stesso listino possono farti pagare lo stesso testo il 69% in più.

Cosa sono i token

Un modello linguistico non legge lettere né parole: legge token, pezzi di testo presi da un vocabolario fisso che può arrivare a centinaia di migliaia di voci. Il vocabolario si costruisce prima dell’addestramento, cercando le sequenze di caratteri più frequenti in un’enorme quantità di testo. Le parole comuni diventano un token solo, quelle rare vengono spezzate in pezzi più piccoli.

Ecco come il tokenizer di OpenAI (quello usato da GPT-6, ci arrivo tra poco) spezza qualche parola:

ParolaTokenCome viene spezzata
backup1backup
monitoring1monitoring
monitoraggio2monitor · aggio
notifications1notifications
notifiche2notific · he
ripristinarlo4rip · rist · inar · lo
precipitevolissimevolmente7prec · ip · ite · vol · issime · vol · mente
Scomposizione con il tokenizer o200k_base di OpenAI, parola preceduta da uno spazio come in una frase.

Vedi già il problema: “monitoring” è un token, “monitoraggio” due. I vocabolari sono costruiti su testi in gran parte inglesi, quindi le parole inglesi hanno più spesso un token tutto loro, mentre le nostre, con desinenze, pronomi attaccati e parole lunghe, vengono spezzate di più. E più pezzi vuol dire più token da pagare.

L’esperimento: stessi testi, sette modelli

Ho preparato cinque testi di prova: un paragrafo in italiano di 127 parole su un tema da blog tecnico (i backup), lo stesso paragrafo tradotto in inglese, una funzione PHP di 18 righe, un oggetto JSON preso dal tracker dei modelli IA e una piccola tabella in markdown. Poi li ho fatti contare con gli strumenti ufficiali di ogni provider: l’endpoint count_tokens di Anthropic, l’endpoint countTokens di Google e, per OpenAI, il campo usage di una chiamata vera. Dai numeri ho tolto i pochi token fissi che ogni richiesta aggiunge, così resta solo il peso del testo.

TestoGPT-6 Luna e SolGemini 3.8 FlashClaude Haiku 4.5Claude Sonnet 5, Opus 5.5, Fable 5.1
Prosa in italiano178174228300
Stessa prosa in inglese143144146208
Codice PHP165190195247
JSON101124117137
Tabella markdown108130132152
Totale6957628181.044
Token contati il 28 settembre 2026, al netto dei token fissi della richiesta. Gemini 3.1 Pro dà gli stessi numeri di Gemini 3.8 Flash.

Il campione è piccolo, quindi prendi i numeri come ordine di grandezza e non come verità assoluta. Ma tre cose saltano all’occhio.

L’italiano costa dal 21 al 56% in più

Stesso contenuto, stesse 127 parole, eppure la versione italiana pesa sempre di più: +21% con Gemini, +24% con GPT-6, +44% con i Claude più recenti e addirittura +56% con Claude Haiku 4.5. Tradotto in una regola a occhio per la prosa italiana: circa 1,4 token a parola con GPT-6 e Gemini, 1,8 con Haiku 4.5 e 2,4 con Sonnet 5, Opus 5.5 e Fable 5.1. La famosa regola dei tre quarti di parola, per l’italiano, non vale con nessuno.

Claude ha cambiato tokenizer

La colonna più a destra è la sorpresa. Anthropic lo scrive nella documentazione sul conteggio dei token: da Claude Opus 4.7 in poi i modelli usano un tokenizer nuovo, che sullo stesso testo produce circa il 30% di token in più. Nel mio test la differenza tra Haiku 4.5 (tokenizer vecchio) e Sonnet 5, Opus 5.5 e Fable 5.1 (tokenizer nuovo) è del 28% sul totale, con punte del 42% sulla prosa inglese. Il tokenizer è lo stesso per tutti e tre: stesso testo, stesso numero.

La conseguenza pratica: se passi da un Claude vecchio a uno nuovo, non puoi riusare le stime di costo che avevi. Ricontale.

Codice e JSON non sono uguali per tutti

Sulla prosa GPT-6 e Gemini sono quasi pari, ma su codice e JSON Gemini conta dal 15 al 23% in più. Se il tuo caso d’uso è pieno di codice o di dati strutturati, e lo sono quasi tutti quelli con tool use, conviene misurare sul tuo materiale invece di fidarsi della prosa.

Il listino tradotto in parole italiane

Qui le cose si fanno interessanti. I listini sono in dollari per milione di token, ma se tokenizer diversi contano in modo diverso, il confronto tra listini è falsato. Ho quindi rifatto i conti in una misura più onesta: quanto costa far leggere al modello un milione di parole italiane, usando i token a parola misurati sopra e i prezzi di input di fine settembre 2026.

ModelloListino input (per milione di token)Costo per milione di parole italiane
GPT-6 Luna$0,10$0,14
Gemini 3.8 Flash$0,75$1,03
Claude Haiku 4.5$1$1,80
GPT-6 Sol$2$2,80
Claude Sonnet 5$2$4,72
Claude Opus 5.5$4$9,45
Claude Fable 5.1$10$23,62
Stima sul paragrafo di prova, solo input. I prezzi aggiornati sono nel tracker dei modelli IA.

Guarda GPT-6 Sol e Claude Sonnet 5: stesso listino, $2 per milione di token. Ma sul testo italiano Sonnet 5 ne conta 300 dove GPT-6 Sol ne conta 178, quindi a parità di lavoro costa circa il 69% in più. Non è un motivo per scartarlo, la qualità conta più del prezzo, ma è un motivo per non confrontare mai due modelli guardando solo la tabella dei prezzi.

È la stessa cosa che avevo visto sul campo con il chatbot di questo blog: passando da Claude Haiku 4.5 a GPT-6 Luna il listino diceva 10 volte meno, la bolletta 14. Lo racconto nell’articolo su quanto costa davvero un chatbot AI.

Come contare i token prima di spendere

Non serve fare esperimenti ogni volta: ogni provider ha il suo modo per contare in anticipo.

OpenAI: in locale con tiktoken

OpenAI pubblica il suo tokenizer come libreria Python, tiktoken. Nel mio test i conteggi di GPT-6 Luna e GPT-6 Sol coincidono al token con quelli della codifica o200k_base, su tutti e cinque i testi. Quindi puoi contare in locale, gratis e senza chiamare nessuna API:

import tiktoken

enc = tiktoken.get_encoding("o200k_base")
testo = "Ogni lunedì mattina controllo i backup."
print(len(enc.encode(testo)))

Anthropic: l’endpoint count_tokens

Anthropic non pubblica il tokenizer, ma ha un endpoint apposta che accetta la stessa richiesta che manderesti al modello, con system prompt, strumenti e immagini, e ti restituisce il numero di token. È gratuito, ha limiti di richieste al minuto separati da quelli dei messaggi, e conta con il tokenizer del modello che gli indichi:

curl https://api.anthropic.com/v1/messages/count_tokens \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [
      {"role": "user", "content": "Ogni lunedì mattina controllo i backup."}
    ]
  }'

Anthropic precisa che il numero è una stima e che può scostarsi di poco da quello fatturato: per preventivi e controlli sulla lunghezza va benissimo.

Google: countTokens

Anche l’API di Gemini ha un metodo countTokens per ogni modello, che risponde con il totale. Google indica come regola generale circa 4 caratteri per token: sulla mia prosa inglese erano 4,9, su quella italiana 4,3.

E se vuoi solo una stima veloce

Per un conto a spanne sulla prosa italiana, moltiplica le parole per 1,4 con GPT-6 e Gemini, per 1,8 con Claude Haiku 4.5 e per 2,4 con i Claude più recenti. Per codice e JSON aggiungi un margine, e appena il progetto diventa serio conta davvero.

I token che non vedi

Il testo della domanda è solo una parte di quello che paghi. Gli altri token arrivano da qui:

  • Il system prompt, che viene rimandato a ogni chiamata. Mille token di istruzioni per diecimila domande sono dieci milioni di token.
  • La cronologia della chat, perché il modello non ricorda niente e a ogni turno gli rimandi tutto. L’ho spiegato nella guida alle API di intelligenza artificiale.
  • La struttura della richiesta: ruoli, separatori e formattazione aggiungono qualche token fisso a ogni messaggio. Nel mio test una richiesta con un solo carattere contava già da 7 a 9 token con Claude e GPT-6.
  • I documenti recuperati in un chatbot RAG, che spesso sono la voce più pesante di tutte.
  • Le definizioni degli strumenti, se usi il tool use: nome, descrizione e schema di ogni funzione finiscono nell’input.
  • Le immagini e i PDF, che vengono convertiti in token anche loro, e non pochi.
  • I token di ragionamento dei modelli che pensano prima di rispondere: non sempre li vedi nella risposta, ma li paghi come output, che costa di più.

Come usarne meno senza peggiorare le risposte

  • Istruzioni asciutte. Un system prompt lungo non è per forza migliore. Rileggilo e togli le frasi che ripetono la stessa cosa in tre modi diversi.
  • Cronologia sotto controllo. Nelle chat tieni solo gli ultimi scambi, oppure riassumi quelli vecchi. Il chatbot di questo blog, per esempio, si porta dietro solo gli ultimi due.
  • Dati compatti. Se passi dati strutturati, togli i campi che non servono e l’indentazione: gli spazi del JSON “bello da leggere” si pagano.
  • I pezzi giusti, non tutti i pezzi. In un chatbot RAG passa solo i documenti pertinenti. Come li scelgo io l’ho spiegato nell’articolo sul chatbot RAG senza database vettoriale.
  • Risposte della lunghezza giusta. Chiedi esplicitamente risposte brevi quando bastano e imposta un limite massimo di output: i token di output costano da 3 a 8 volte quelli di input.

Una cosa che invece non consiglio: scrivere i prompt in inglese solo per risparmiare token. Se i tuoi utenti scrivono e leggono in italiano, il risparmio sulle istruzioni è piccolo rispetto al rischio di risposte meno naturali.

In sintesi

I token sono l’unità di misura di tutto quello che fai con le API: costo, limiti, dimensione del contesto. L’italiano ne richiede sempre di più dell’inglese, e lo stesso testo può pesare in modo molto diverso da un modello all’altro, anche dentro la stessa famiglia. Quindi due regole: confronta i modelli sul costo per richiesta, non sul listino, e conta i token sul tuo materiale prima di fare i preventivi.

Se vuoi il quadro generale parti dalla guida alle API di intelligenza artificiale, e per i prezzi aggiornati c’è il tracker dei modelli IA. Il prossimo articolo della serie parla della context window: cosa vuol dire, nella pratica, che un modello può leggere un milione di token.

Newsletter

Ti è stato utile? Il prossimo te lo mando io.

La rassegna AI ogni mattina oppure il digest della domenica: scegli tu.

Cosa vuoi ricevere
Che differenza c’è tra le due newsletter?

Rassegna AI quotidiana: ogni mattina alle 8:30, le notizie sull'IA del giorno.

Digest settimanale: la domenica, gli articoli e le rassegne della settimana in una sola mail.

Puoi sceglierle anche tutte e due.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *