En token er en liten bit tekst, ofte et kort ord eller en del av et langt ord. Det er enheten en språkmodell leser, skriver og regner pris i.
De fleste tenker at en språkmodell leser ord. Den leser tall, og hvert tall står for en bit. Det er biten som telles. Via API er det biten du betaler for, og i en vanlig chat er det biten som teller mot grensene dine.
En modell trenger et fast vokabular. Hadde hvert ord i alle språk vært en egen enhet, ville vokabularet blitt uhåndterlig, og et sjeldent ord ville vært helt ukjent. Med biter kan modellen sette sammen hva som helst. Vanlige ord blir én token. Lange og uvanlige ord deles opp.
Det betyr at «lønnsomhetsvurderingen» koster mer enn «hus», selv om begge er ett ord.
De fleste språkmodeller er trent på mest engelsk. Da blir de best til å dele engelske ord i store biter. Norske ord, og særlig de sammensatte, deles oftere i flere. Du får derfor gjerne flere tokens per ord på norsk enn på engelsk. Hvor stor forskjellen er, varierer mellom modeller, så mål heller enn å gjette.
Anslaget deler antall tegn på tallet du velger. En vanlig tommelfingerregel for engelsk er rundt fire tegn per token, for norsk er det som regel færre. En ekte tokenizer gir et annet tall. Teksten forlater ikke nettleseren din.
Anslaget i verktøyet over er fem linjer Python: antall tegn delt på tegn per token. Det er et anslag.
def anslag(tekst, tegn_per_token=3.2):
return round(len(tekst) / tegn_per_token)
tekst = "Lønnsomhetsvurderingen er ferdig, og den viser at investeringen betaler seg tilbake i løpet av tre år."
print(len(tekst), "tegn gir et anslag på", anslag(tekst), "tokens")102 tegn gir et anslag på 32 tokens
Det riktige tallet får du fra Anthropic. count_tokens tar samme innhold som et vanlig kall, med systemprompt, verktøy, bilder og PDF-er, og gir antall inntokens. Det er gratis, men har egen grense for forespørsler per minutt, og tallet er et estimat som kan avvike litt fra det du blir belastet for. Tokens telles per modell. Ifølge dokumentasjonen gir Claude 4.7 og nyere opptil rundt 30 til 35 prosent flere tokens for samme tekst enn eldre modeller, avhengig av teksten, så tell mot modellen du skal bruke. Derfor teller eksempelet under mot tre: to modeller med ny tokenizer og én av forrige generasjon, så du kan se forskjellen selv.
# pip install anthropic (leser nøkkelen fra miljøvariabelen ANTHROPIC_API_KEY)
import anthropic
client = anthropic.Anthropic()
tekst = "Lønnsomhetsvurderingen er ferdig, og den viser at investeringen betaler seg tilbake i løpet av tre år."
for modell in [
"claude-opus-5-5", # ny tokenizer
"claude-haiku-5-5", # ny tokenizer: omtrent 30 prosent flere tokens enn Haiku 4.5, ifølge Anthropic
"claude-haiku-4-5", # forrige generasjon, eldre tokenizer. Tatt med for å se forskjellen
]: # alle tre ID-ene sjekket 8. oktober 2026
svar = client.messages.count_tokens(
model=modell,
messages=[{"role": "user", "content": tekst}],
)
print(modell, svar.input_tokens, "tokens")
# Etter et ekte kall står regninga i svaret:
# svar = client.messages.create(...)
# print(svar.usage.input_tokens, svar.usage.output_tokens)Etter et ekte kall står regninga i svar.usage.input_tokens og svar.usage.output_tokens. Bruk ikke tiktoken: det er OpenAIs tokenizer, og den teller feil for Claude. Les mer i dokumentasjonen om tokentelling.
Anslaget er kjørt her med Python 3.13, 8. oktober 2026, og utskriften er limt inn slik den kom. Tellingen mot API-et er ikke kjørt mot API-et her. Test med din egen nøkkel. Den er syntakssjekket og lest mot dokumentasjonen, så jeg har ikke tall for hva eksempelteksten gir hos Anthropic. Modell-ID-ene er lest i dokumentasjonen samme dag, og ID-er eldes.
Oppdatert oktober 2026. Delingen i figuren er konstruert for å vise prinsippet. Hver modell har sin egen tokenizer, altså sin egen måte å dele opp tekst på, og gir andre biter og andre tall. Tommelfingerregelen om fire tegn per token for engelsk står i Anthropics dokumentasjon.