ForHosting KIT · Text & AI

Estimate reading time from text and words per minute

This reading time estimator turns pasted text into a practical duration using a configurable words-per-minute rate.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

It counts whitespace-separated words, applies 200 words per minute by default, and reports the result as whole minutes and seconds. You can change the rate to represent a slower technical review, an average reading pace, or a quick scan. The calculation is deterministic, requires no network access, and gives the same answer whenever the text and rate are unchanged.

Estimate how long a piece of text takes to read

Reading time helps a reader decide whether to start an article now, save it for later, or set aside enough attention for it. Paste the complete text into the estimator and it counts each sequence separated by whitespace as one word. The calculator then divides that count by the selected reading rate and converts the duration into whole minutes and seconds. A default of 200 words per minute offers a useful general estimate for ordinary prose, while the editable rate lets you model a particular audience or situation. The result includes the word count and rate used, so it remains clear how the duration was produced. Blank text returns zero minutes and zero seconds rather than inventing a minimum duration. Because the final duration rounds upward to the next whole second, a nonempty passage never appears to require less time merely because the exact calculation contains a fraction of a second. This makes the output convenient for publishing interfaces, editorial checklists, and other places where a concise human-readable estimate matters.

Choose a words-per-minute rate that fits the reader

Words per minute is an assumption, not a universal measure of reading ability. Straightforward news or familiar instructions may be read quickly, while legal clauses, academic arguments, code documentation, and unfamiliar terminology often require a slower pace. Use 200 when you need a neutral default and do not have evidence for a more specific audience. Lower the rate when readers are expected to pause, compare details, or take notes. Raise it when estimating a quick scan of simple material. For consistent analytics, choose one house rate and apply it to every item in the same collection rather than adjusting the number until each estimate looks appealing. The rate must be a finite number greater than zero because zero or a negative value cannot describe reading speed and would make the division meaningless. Decimal rates are accepted when a study or internal benchmark provides a more precise value. The returned fields repeat the applied rate, which makes saved results auditable and prevents later confusion about whether the default or a custom assumption produced the published time.

Interpret the result and use it consistently

The minutes and seconds form a duration, not a promise about every individual reader. For example, a result of two minutes and fifteen seconds means the word count divided by the chosen rate equals that approximate interval after conversion and upward rounding to a whole second. It does not account for images, equations, embedded videos, navigation, accessibility tools, interruptions, or time spent following links. Treat it as a comparable estimate for text, and explain your chosen rate if the number supports planning or reporting. Publishers can display the concise minute value near an article title while retaining the detailed seconds in structured data. Editors can compare drafts before and after revisions. Trainers can combine several lesson estimates to plan a session, provided they use the same rate throughout. Applications can call the API for repeatable results at $0.002 per request, while browser use can perform the same deterministic calculation locally. Keeping the source text and rate alongside the result is a good practice whenever another person may need to reproduce or review the estimate later.

Label articles with a reading estimate

Calculate a consistent duration for posts so readers can judge whether they have time to read them now.

Plan lessons and documentation

Estimate how much session time written material requires using a rate appropriate for careful study.

Compare editorial drafts

Measure how revisions change the expected reading duration while keeping the same words-per-minute assumption.

What reading speed is used by default?

The default is 200 words per minute. Supply a different positive rate when another pace better represents the intended reader.

How are words counted?

Each nonempty sequence separated by whitespace counts as one word. Punctuation attached to a word does not create an additional word.

Why does the duration round upward?

The exact duration is rounded up to a whole second so a fractional final second is included rather than silently discarded.

Can I use a decimal words-per-minute rate?

Yes. Any finite number greater than zero is accepted, including a positive decimal rate.

What happens when the text is empty?

An empty string or a string containing only whitespace has zero words and returns zero minutes and zero seconds.

What does an API request cost?

Each API request costs $0.002. The calculation is also available in the browser.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/text/count-reading-time

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/text/count-reading-time \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Clear writing helps readers understand an idea without stopping to decode every sentence."}'
{
  "text": "Clear writing helps readers understand an idea without stopping to decode every sentence."
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "text.count_reading_time",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_tokens20000
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →