Walking time estimator
A 5 km walk at 5 km/h takes one hour, or 60 minutes. Enter the distance and your average walking speed in km/h, mph or any matching pair to see how long a city hop, school run or trail will take. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Distance
- 5
- Pace
- 5
- Time
- 1
- Time hours
- 1
- Time minutes
- 60
Knowing how long a walk will take is the first practical question for city hops, trail planning, school routes, and fitness goals. This walking time estimator divides walking distance by average pace expressed as speed—kilometres per hour, miles per hour, or any coherent distance-per-time pair—and returns a stable duration you can pin in apps and tests. Zero or negative pace is rejected as invalid input so sensors or form glitches never divide by zero or invent a backward clock.
Walking time is distance divided by speed
The estimate rests on one simple idea: time equals distance divided by speed. A 5 km route at 5 km/h takes one hour, and a 3 mile stroll at 3 mph also takes one hour. The same works in metres per second if your device reports speed that way. The result comes in hours and in minutes, so it drops straight into an itinerary. That makes it handy for checking whether a museum-to-hotel leg fits before dinner, how long the school run or the walk to the station takes, or what a flat stretch of trail will cost you in time.
Getting an estimate you can rely on
Enter your real average speed rather than an optimistic one: city walking usually sits around 4 to 5 km/h, while brisk fitness walks run higher. Pace here means speed, not minutes per kilometre, so a watch showing 5 minutes per kilometre means 12 km/h. Keep the units matched and never mix kilometres with miles per hour. A speed of zero or below is refused, and a distance of zero gives zero time. Hills and rest stops are not included, so add them separately when your route needs it.
What you can do with it
City and tourist walking itineraries
Travel apps and city guides convert planned route length and a typical walking speed into hours and minutes so visitors know whether a museum-to-hotel leg fits before dinner.
Commute and school-run planning
Parents and commuters enter walking distance to school or transit plus their usual pace to estimate door-to-door minutes without live map routing.
Trail and fitness previews
Hiking blogs and training tools preview flat-ground walk duration from distance and average speed before adding elevation or rest stops elsewhere.
FAQ
What happens if pace is zero or negative?
Zero or negative pace would divide by zero or invent a reverse duration, so those values are rejected and not charged.
Is pace the same as minutes per kilometre?
Convert minutes-per-km to speed first if your watch uses that format.
Is the walking time estimator free?
The browser tool runs free on your device.
Does this account for hills or rest breaks?
No. The estimator is pure distance over pace. Adjust pace downward for hills and add rest time outside this call if you need a more conservative schedule.
What walking speed should I enter?
Use your real average, not a race pace. Typical city walking is around 4 to 5 km/h, brisk fitness walks are faster, and hills, luggage, children or traffic lights all slow you down.
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/travel/walking-time \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"distance":5,"pace":5}'const res = await fetch("https://api.kit.forhosting.com/travel/walking-time", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"distance": 5,
"pace": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/walking-time",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"distance": 5,
"pace": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/walking-time", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"distance":5,"pace":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"distance":5,"pace":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/walking-time", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"distance": 5,
"pace": 5
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.walking_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.
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
Enter distance and pace to get time, time_hours, and time_minutes in deterministic JSON for travel planners, tour operators, and commuting tools.
How walking time is computed from distance and pace
A five-kilometre route at five kilometres per hour needs one hour; a three-mile stroll at three miles per hour also needs one hour; the same identity works for metres per second if your sensors already speak SI. Keep units coherent—do not mix kilometres with miles per hour without converting first. Zero or negative pace is a hard error under the product contract because it would divide by zero or reverse time. Negative distance is likewise rejected; zero distance yields zero time for empty itineraries. Estimated walking duration equals distance divided by average pace when pace is written as speed: distance units per unit of time. Send required fields distance and pace as JSON numbers or numeric strings. Aliases d, walk_distance, length, km, and miles map to distance; speed, walking_speed, rate, velocity, kmh, and mph map to pace. Magnitude caps keep results finite on the Worker isolate.
Reading the response fields and choosing realistic walking speeds
The formula field is safe to show next to the numbers so users see duration equals distance divided by pace. Prefer real-world average speeds over optimistic race times when the route includes hills, luggage, children, or stop lights—typical urban walking often lands near four to five kilometres per hour, while brisk fitness walks may run higher. Pace here is speed, not minutes per kilometre; if your fitness watch reports five minutes per kilometre, convert to twelve kilometres per hour before calling so the division matches the contract. On success the response echoes distance and pace after stable rounding, plus time equal to distance over pace, time_hours equal to that same time value when pace is per hour, time_minutes equal to time times sixty for clock-friendly display, a human-readable formula string, and method equal to distance_over_pace. Use time when your pipeline already stores durations in hours; use time_minutes when itineraries, school-run cards, or accessibility apps show minutes on a map pin. This endpoint does not model elevation, stairs, rest breaks, or weather; it is a transparent arithmetic check, not a routing engine. Missing required fields, non-finite values, and zero or negative pace all fail with invalid_input and are not charged after the engine rejects the request.
API usage, pricing, travel workflows, and practical limits
For multi-leg walking tours, sum time client-side or call once per leg so each segment stays auditable in logs and support tickets. Send a JSON body with distance and pace (or the documented aliases). Call the free in-browser walking time estimator for holiday planning, classroom demos, and quick commute checks without installing a spreadsheet or map SDK. Use the prepaid API when a travel portal, city guide, tour booking tool, school logistics app, or fitness companion needs a stable contract under KIT balance at $0.002 per successful item; validation failures never consume balance. Pair this endpoint with a unit converter when the map exports miles but your pace table is in kilometres per hour—convert one side first, then call here with matching units. Authors shipping SDKs can map time_hours and time_minutes into tables that show hours and minutes side by side—the same shape travellers sketch on a simple day-plan sheet when they estimate a museum-to-hotel walk by hand.
Technical questions
How do I estimate walking time with this calculator?
Send JSON with distance and pace (average speed in matching units, for example distance: 5 and pace: 5 for five kilometres at five km/h). The response includes time, time_hours, and time_minutes.