How Many Slides Do You Need for a Presentation?
This presentation slide calculator estimates a practical slide count from two choices: the total time available and the average number of minutes you want to spend on each slide.
Run — free
It divides the duration by your selected pace, recommends the nearest whole number of slides, and shows how rounding affects the plan. Use it when outlining a talk, checking whether an existing deck is realistic, or comparing a brisk visual presentation with a slower, explanation-heavy format before you begin building slides.
Choose a pace that matches the way you will present
Minutes per slide is a planning average, not a rule that every slide must obey. A title slide may take only a few seconds, while a chart, demonstration, or important argument can require several minutes. Choose a lower average when the deck consists of simple visuals, short transitions, or images that support spoken narration. Choose a higher average when listeners need time to read, interpret evidence, follow a worked example, or ask questions. The audience matters as much as the subject: an introductory talk often needs more explanation than a briefing for specialists who already know the vocabulary. Rehearsal is the best way to refine the pace, but an initial average gives you a useful design constraint before the deck exists. Enter only the speaking duration available for slides. If the scheduled session includes introductions, questions, breaks, or a live exercise, subtract those parts first so the estimate does not quietly consume time reserved for something else.
Understand the estimate and its rounding
The calculation divides total presentation minutes by the chosen average minutes per slide. Because a usable deck cannot contain a fraction of a slide, the result is rounded to the nearest whole slide, with a minimum recommendation of one. The response keeps the unrounded ratio as the exact slide count and also reports the duration implied by the rounded recommendation. A positive duration difference means the recommended number of slides would take slightly longer than the target if every slide used the selected average. A negative difference means it would take slightly less time. The actual minutes-per-slide field answers the reverse question: if you keep the recommended whole slide count and use exactly the stated presentation duration, what average pace must you achieve? These companion values make the rounding visible rather than hiding it behind a single integer. When the exact ratio sits close to a half-slide boundary, compare the deck above and below the recommendation and prefer the version that gives your most important material enough room.
Turn the number into a workable presentation outline
Treat the recommended count as a capacity estimate, then assign that capacity deliberately. Reserve slides for the opening, the core ideas, transitions that genuinely help orientation, and a clear closing. Do not add filler merely to reach the number, and do not compress several dense arguments onto one slide simply to stay below it. A useful next step is to write one purpose for each planned slide: introduce a question, present evidence, explain a process, compare options, or state a conclusion. If several purposes accumulate on one slide, the plan may need more slides or a slower pace. If many slides repeat the same purpose, combine or remove them. Then rehearse aloud with the real visuals and revise from observed timing. The calculator cannot predict interruptions, speaking style, animation delays, or the difficulty of individual concepts, so leave a sensible buffer for live delivery. Run the estimate again when the allotted duration changes or when rehearsal shows that your chosen average was optimistic.
What you can do with it
Outline a new conference talk
Turn the speaking slot and intended pace into an initial slide budget before writing or designing the deck.
Check an existing deck
Compare the recommended count with a finished presentation to see whether rehearsal should focus on trimming slides or allowing more explanation.
Compare presentation styles
Try different minutes-per-slide averages to contrast a quick visual narrative with a slower technical or instructional presentation.
FAQ
How is the recommended number of slides calculated?
The duration is divided by the chosen minutes per slide, then rounded to the nearest whole slide with a minimum of one.
What should I enter as the presentation duration?
Enter the time available for presenting the slides. Subtract introductions, question periods, breaks, and activities if they have separate time allocations.
Does every slide need to take the same amount of time?
No. The selected pace is an average across the deck. Individual slides can be much shorter or longer depending on their purpose and complexity.
Why does the planned duration differ from my target?
The exact division may produce a fractional slide. The recommendation uses a whole slide, so applying the selected pace to it can create a small positive or negative difference.
Should I include a question-and-answer slide?
Include it if it serves your presentation, but reserve the question period itself separately when entering the duration unless questions are meant to occur throughout the talk.
What does the API request cost?
Each API calculation costs $0.002. The calculator can also run free in the browser.
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/slides-for-minutes \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"duration_minutes":30,"minutes_per_slide":2}'const res = await fetch("https://api.kit.forhosting.com/edu/slides-for-minutes", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"duration_minutes": 30,
"minutes_per_slide": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/slides-for-minutes",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"duration_minutes": 30,
"minutes_per_slide": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/slides-for-minutes", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"duration_minutes":30,"minutes_per_slide":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"duration_minutes":30,"minutes_per_slide":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/slides-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
{
"duration_minutes": 30,
"minutes_per_slide": 2
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.slides_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. |