Travel pace to speed
A 12-minute-per-kilometre walk is 5 km/h, so a 10 km city tour takes 2 hours on the move. Enter your pace and distance to get the speed in km/h and mph and the duration of the leg. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Pace
- 12:00 km
- Distance
- 10
- Activity
- Walk
- Pace minutes
- 12 km
- Pace display
- 12:00
- Unit label
- min/km
- Distance unit
- km
Planning a walking city tour or a multi-stop cycling day often starts with a simple question: if I keep this pace, how fast am I moving and when will I finish the leg? Fitness watches report minutes per kilometre or mile, while maps and itineraries think in kilometres per hour and total hours. This travel pace to speed calculator bridges that gap. Enter a positive pace in decimal minutes or M:SS clock form, choose per kilometre or per mile, and add the tour distance in matching units. You receive speed in both km/h and mph plus a pure on-route duration—hours, minutes, and a compact display string—so tour operators, city guides, and self-guided travellers can sketch realistic schedules without spreadsheets. Optional activity labels (walk or cycle) tag the response for UI copy; the arithmetic is identical.
How pace converts to speed and tour duration
Speed is the reciprocal identity scaled to an hour. When pace is minutes per kilometre, speed in kilometres per hour equals sixty divided by that pace; miles per hour follows by dividing by the exact international mile factor one point six zero nine three four four. When pace is minutes per mile, miles per hour equals sixty over pace and kilometres per hour multiplies by the same mile factor.
A twelve-minute-per-kilometre walk over ten kilometres is five kilometres per hour and two hours on the clock; a four-minute-per-mile bike leg over twenty miles is fifteen miles per hour and one hour twenty minutes. Send pace as a decimal number of minutes or as M:SS (or H:MM:SS for very slow segments), or split minutes and optional seconds. Distance is required and must be positive.
What you can do with it
Self-guided walking city tours
City guides convert a comfortable minutes-per-kilometre walk pace and a planned route length into km/h and total hours so visitors know whether the museum-to-market leg fits before dinner.
Cycling day-stage planning
Bike-tour operators and rental desks turn min/km or min/mi targets plus stage distance into mph/kmh and pure riding time before adding café stops elsewhere.
Multi-leg itinerary builders
Travel apps call once per walking or cycling segment with matching pace and distance, then sum durations client-side for a transparent day plan without live routing.
FAQ
How do I convert travel pace to speed and estimate tour time?
Send pace (decimal minutes or M:SS) or minutes with optional seconds, unit km or mi, and a positive distance in the same unit.
What happens if pace or distance is zero or negative?
Non-positive pace cannot yield a finite speed, and non-positive distance is not a valid tour length; those failures are not charged.
Is activity changing the calculation?
Speed and duration use the same pace-to-speed and distance-over-speed identities.
Is the travel pace to speed calculator free?
The browser tool runs free on your device.
Does this include hills, traffic, or rest breaks?
No. The estimator is pure pace conversion and distance over constant speed. Lower the pace or add buffer time outside this call for hills, crowds, and stops.
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/pace-to-speed \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"distance":10,"pace":"12:00"}'const res = await fetch("https://api.kit.forhosting.com/travel/pace-to-speed", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"distance": 10,
"pace": "12:00"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/pace-to-speed",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"distance": 10,
"pace": "12:00"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/pace-to-speed", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"distance":10,"pace":"12:00"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"distance":10,"pace":"12:00"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/pace-to-speed", 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": 10,
"pace": "12:00"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.pace_to_speed",
"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.
Limits
max_pace_minutes | 1000000 |
max_distance | 1000000 |
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
How pace converts to speed and tour duration
Travel pace is time spent covering one unit of distance: minutes per kilometre or minutes per mile. Tour duration assumes a constant average pace over the full distance: hours equal distance divided by speed in matching units. Zero or negative pace would make speed infinite or reverse; zero or negative distance is not a valid tour length—both fail with invalid_input and are not billed.
Reading the response and choosing realistic tour paces
Activity does not change the math—it only labels the tour type so templates can say walking tour versus cycling tour. Prefer conservative average paces over peak fitness numbers when the route includes hills, luggage, photo stops, or crowded streets: urban sightseeing walks often land near twelve to fifteen minutes per kilometre, while leisure cycling may sit near four to six minutes per kilometre depending on terrain and bike type. A successful response echoes pace_minutes after stable rounding, pace_display as a human M:SS or H:MM:SS string, unit and unit_label (min/km or min/mi), distance and distance_unit, activity and activity_label (walking or cycling), speed_kmh and speed_mph, duration_hours and duration_minutes, duration_display such as 2h or 1h 20m, precision, a formula string you can show beside the numbers, and method equal to travel_pace_to_speed. Use speed_kmh when regional materials are metric; use speed_mph for US mile itineraries; use duration_display on mobile cards and duration_hours when chaining multi-leg math in your own code. This endpoint does not model elevation gain, wind, traffic lights, or café breaks; add buffer time outside the call if your itinerary needs slack. Missing pace and minutes together, non-finite values, conflicting pace and minutes fields, and out-of-range precision all fail with invalid_input naming the problem so form UIs can highlight the field.
API usage, pricing, travel workflows, and limits
Call the free in-browser travel pace to speed calculator for holiday planning, classroom demos, and quick tour checks without installing a spreadsheet. Pair this tool with a distance unit converter when the map exports miles but your pace table is in minutes per kilometre—convert one side first so unit and distance stay coherent. POST a JSON body with distance and either pace or minutes (optional seconds), plus optional unit, activity, and precision. Use the prepaid API when a travel portal, bike-rental desk, city walking app, or multi-day cycle guide needs a stable contract under KIT balance at $0.002 per successful item; validation failures never consume balance. For multi-leg walking or cycling tours, call once per leg and sum duration_hours client-side so each segment stays auditable in logs and support tickets. Authors shipping SDKs can map duration_display into itinerary tables and keep speed_kmh and speed_mph side by side for mixed audiences—the same shape travellers sketch by hand when they convert a watch pace into an expected arrival window for a museum-to-harbour walk or a coastal bike stage.