Knowing the exact token count of a piece of text — before sending it to an API — is essential for staying within context limits and predicting cost. You can't count tokens by eye; you need the actual tokenizer.
Why You Can't Just Estimate by Word Count
"I can't believe it's already 2026!"
Word count: 6 words
Token count: likely 9-10 tokens (contractions and the year
number each commonly split into multiple tokens)
The "~4 characters per token" or "~0.75 tokens per word" rules of thumb are useful for rough estimates, but production systems that need to stay reliably under a context limit should count tokens precisely using the actual tokenizer for the model in use.
Counting Tokens Programmatically (Conceptual)
# Conceptual — real usage depends on the specific tokenizer library
# for the model you're using (each model family has its own)
tokenizer = load_tokenizer_for_model("model-name")
token_ids = tokenizer.encode("Your text goes here")
token_count = len(token_ids)
print(token_count)
Most providers publish an official tokenizer library specifically so you can count tokens locally, without making an API call just to check length.
Practical Use Case — Budgeting a Request
context_window_limit = 8000
system_prompt_tokens = count_tokens(system_prompt)
history_tokens = count_tokens(conversation_history)
new_message_tokens = count_tokens(user_message)
reserved_for_response = 1000 # leave room for the model's output
available_budget = (
context_window_limit
- system_prompt_tokens
- history_tokens
- new_message_tokens
- reserved_for_response
)
if available_budget < 0:
# trim conversation history before sending the request
conversation_history = trim_to_fit(conversation_history, available_budget)
Common Mistakes
- Estimating token count from word or character count alone in a production system where staying under a hard limit actually matters
- Forgetting to reserve token budget for the model's own response, only counting input tokens
- Not re-checking token count after modifying a prompt template — small wording changes can shift the count more than expected
Interview Relevance
"How would you make sure a long conversation never exceeds the model's context window?" — a strong answer includes counting tokens precisely (not estimating) and trimming/summarizing history proactively, not just handling the error after the fact.
Practice Question
Design a simple strategy (in plain steps) for keeping a customer support chat under a fixed token budget as the conversation grows long.