Words needed for a speech
A five-minute speech at 130 words per minute needs 650 words. Set the length, your speaking pace and an optional share for pauses and applause, and you get the whole-word target to write before you rehearse. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Minutes
- 5
- Words per minute
- 130
- Seconds
- 0
- Pause percent
- 0
- Total seconds
- 300
- Speaking seconds
- 300
Speakers, coaches, and students plan a talk by the clock, not by page count. A five-minute classroom speech, a twelve-minute conference slot, and a thirty-minute keynote each need a different script length at a comfortable speaking pace. This calculator multiplies target duration by words per minute and optionally reserves a pause percentage for breaths, applause, and slide changes, then returns the whole-word budget you should actually write. Extra seconds cover odd lengths such as seven minutes and thirty seconds.
How a speaking pace turns minutes into a word budget
A spoken script is planned from duration and pace, not from printed pages. Comfortable presentation English sits near one hundred twenty to one hundred fifty words per minute; ceremonial or very careful delivery can drop toward one hundred; brisk conference talks often sit near one hundred fifty to one hundred sixty; auction-style or rushed delivery climbs past one hundred eighty and is hard to follow.
Ten percent on a ten-minute talk at one hundred thirty words per minute leaves nine spoken minutes and one thousand one hundred seventy words instead of one thousand three hundred.
Where a speech word-budget calculator earns its keep
Assignment briefs often say prepare a five-minute speech or a ten-minute oral presentation; students need a word target before they open a blank page, and coaches need the same number when they mark a draft that is twice as long as the slot. Conference organizers publishing speaker guidelines can pin one hundred thirty or one hundred forty words per minute plus a ten-percent pause reserve so every accepted talk aims at the same density instead of a folk-rule page count.
Toastmasters clubs, debate coaches planning constructive drafts (as opposed to splitting the round clock), TED-style rehearsal apps, and LMS oral-exam plugins embed the free browser path so the published word budget matches what automation will later store.
What you can do with it
Classroom oral presentations
Turn a five- or ten-minute assignment into a whole-word draft target at a comfortable 130 WPM speaking pace before students start writing.
Conference and keynote speaker guidelines
Publish a slot length plus a house speaking pace and pause reserve so every accepted talk aims at the same script density.
FAQ
How many words do I need for a five-minute speech?
At a comfortable 130 words per minute with no pause reserve you need 650 words.
What speaking pace should I use?
Most presentation English sits between 120 and 150 words per minute. Use about 100–110 for careful or ceremonial delivery, 150–160 for a brisk conference talk, and avoid staying above 180 if you want the audience to follow.
Can I model seven minutes and thirty seconds?
Yes. Set minutes to 7 and seconds to 30, or send minutes as 7.5. Extra seconds must be non-negative.
How do I leave time for pauses, laughter or slide changes?
Enter a pause percentage. That share of the slot is set aside before the words are counted, so a ten-minute talk at 130 words per minute with 10% for pauses needs 1,170 words instead of 1,300.
Why is the word target rounded up?
Because you write whole words, the result is always the next whole number at or above the exact figure. A script that runs slightly long is easier to trim in rehearsal than a short one is to pad on stage.
Related tools
For developers — API access
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.
API endpoint
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.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/edu/words-for-minutes \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"minutes":5,"words_per_minute":130}'const res = await fetch("https://api.kit.forhosting.com/edu/words-for-minutes", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"minutes": 5,
"words_per_minute": 130
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/words-for-minutes",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"minutes": 5,
"words_per_minute": 130
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/words-for-minutes", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"minutes":5,"words_per_minute":130}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"minutes":5,"words_per_minute":130}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/words-for-minutes", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"minutes": 5,
"words_per_minute": 130
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.words_for_minutes",
"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.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Failed validation is not billed; successful API calls use prepaid KIT balance at $0.002 per item.
How a speaking pace turns minutes into a word budget
This capability encodes that product identity: total_seconds equals minutes times sixty plus optional extra seconds; speaking_seconds equals total_seconds times one minus pause_percent over one hundred; words equals speaking_seconds times words_per_minute over sixty, which is the same as (minutes plus seconds over sixty) times words_per_minute times the spoken fraction. words_needed is the smallest integer at or above that exact figure, because you write whole words and a slightly long script is easier to trim in rehearsal than a short one is to pad on stage. pause_percent is the share of the slot you do not intend to fill with new language—breaths, laughter, applause, a slide click, a sip of water. The pace_band label is a deterministic coach hint (slow, conversational, presentation, brisk, or fast) and never changes the arithmetic. seconds_per_word is sixty divided by the pace so a timer can tick per word; estimated_delivery_seconds rebuilds wall-clock time from the ceiled word count plus reserved pauses so you can see whether rounding pushed you a breath over the slot.
Input contract, response fields, and validation errors
POST a JSON object with minutes as a finite number strictly greater than zero and words_per_minute as a finite number strictly greater than zero. minutes accepts aliases duration, duration_minutes, speech_minutes, target_minutes, and time_minutes; fractional values such as seven point five are valid. words_per_minute accepts aliases wpm, speaking_pace, pace, speaking_wpm, and rate. Optional pause_percent defaults to zero and must lie between zero and one hundred inclusive; aliases include pauses, pause, and pause_pct. Optional seconds defaults to zero and must be non-negative; aliases extra_seconds and remainder_seconds work the same way. Missing required fields, empty strings, non-finite values, zero or negative duration, zero or negative pace, pause_percent outside zero through one hundred, and negative extra seconds all fail with invalid_input naming the field and are not billed. On success the body echoes the four resolved inputs and reports total_seconds, speaking_seconds, pause_seconds, spoken_minutes, hours, seconds_per_word, words as the exact (stably rounded) product, words_needed as the whole-word ceiling, estimated_delivery_seconds after that ceiling, pace_band, plus formula and method duration_times_pace_minus_pauses. Pair the response with your own rehearsal timer if you need a live clock; this endpoint only converts duration and pace into a word budget and does not store talks or fetch manuscripts. The browser tool is free; successful API calls use prepaid KIT balance at $0.002 per item.
Where a speech word-budget calculator earns its keep
Keep minutes and words_per_minute positive, pin words_needed in goldens, and you get a reproducible script length for homework, club nights, and keynote prep without inventing a words-per-minute constant by hand each semester.
Integration use cases
Rehearsal apps and LMS oral-exam plugins
Compute the same words_needed figure in the browser widget and the API so timers, rubrics, and stored drafts never disagree.
Technical questions
What does pause_percent do?
It reserves that share of the slot for breaths, applause, laughter, and slide changes. Spoken time is the remaining fraction, so the word budget shrinks by the same percentage.
What does the words-needed-for-speech calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.