Km/h to mph converter
Turn a speed in km/h into miles per hour with the exact mile: 1 km/h is 0.621371192237 mph, because a mile is exactly 1609.344 m. For US road signs, rental fleets and trip plans, without the rounded 0.621 rule. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Kmh
- 1
- Result
- 0.6213711922 mph
- Converted
- 0.6213711922
- Mph
- 0.6213711922
- From unit
- km/h
A kilometres-per-hour-to-miles-per-hour converter turns metric road and dashboard speeds into the statute miles-per-hour value drivers, coaches, rental fleets, and US-facing product copy still need on signs, trip plans, and compliance reports. Approximate mental shortcuts such as multiply by zero point six two one are rejected in favour of the 1959 yard and pound agreement constant, so homework checks and GPS exports match engineering tables.
Why kilometres per hour and statute mph still meet at 1000/1609.344
Kilometres per hour is the default road-speed unit across most of the world: European and many Asian speed limits, metric vehicle clusters, SI-facing logistics contracts, and school science problems quote speed in km/h. Statute miles per hour remain standard on many United States road signs, imperial vehicle speedometers, sports broadcasts that quote pacing or wind in mph, and product copy aimed at US drivers and rental fleets.
The bridge between them is not a survey approximation: since the 1959 international yard and pound agreement, one international mile is defined as exactly one thousand six hundred nine point three four four metres, which is exactly one point six zero nine three four four kilometres. That makes the conversion a single exact multiplication, miles per hour equals kilometres per hour times one thousand divided by one thousand six hundred nine point three four four, or equivalently kilometres per hour divided by one point six zero nine three four four.
Teachers and drivers often still teach the rough rule of thumb multiply by zero point six two one, but that introduces a scale error that shows up immediately on a one-hundred-kilometre-per-hour motorway reading or a fifty-kilometre-per-hour urban log.
Practical tips, checks, and related searches
Prefer sending bare numbers when you control the client; string numbers are accepted only when they match a strict finite numeric pattern without units, thousand separators, or currency symbols. Round-trip sanity checks are easy: convert one hundred kilometres per hour and confirm you receive approximately sixty-two point one three seven one one nine two two three seven three miles per hour after rounding, or convert one kilometre per hour and confirm roughly zero point six two one three seven one one nine two two three seven miles per hour.
When teaching, pair the exact path with the mental shortcut so students see the drift on highway logs. Stay inside the absolute range so the multiplication cannot overflow into a non-finite result the solver must reject.
This landing targets people searching for kmh to mph, convert km/h to miles per hour, or an exact one thousand over one thousand six hundred nine point three four four calculator; it is not a general multi-unit speed hub, not an mph-to-km/h primary form, not a knots tool, and not a Beaufort wind scale converter.
Prefer this capability when the input is already in kilometres per hour and you only need statute miles per hour; if you must convert among many units in one call, use a broader speed converter instead.
What you can do with it
Road trips and rental fleets
Turn metric dashboards and European speed-limit tables into mph for US drivers, cross-border rentals, and trip planners that must show familiar statute units.
Sports and coaching pace notes
Coaches convert km/h training or race readings to mph and compare hand work against deterministic steps before publishing athlete briefs.
FAQ
What formula converts km/h to mph?
mph = km/h × 1000 / 1609.344. One international statute mile is defined as exactly 1609.344 metres (1.609344 km), so the factor is exact.
Is 1000/1609.344 exact or approximate?
Exact. This tool uses the international statute mile definition (1959 yard and pound agreement), not a rough multiply-by-0.621 estimate.
Can I convert mph back to km/h?
This capability is km/h → mph only. Multiply mph by 1.609344 on your side, or use a bidirectional speed converter for other units.
Is the km/h to mph converter free?
The browser tool is free and runs locally.
Why not just multiply by 0.621?
Because 0.621 is a rounded shortcut. The exact factor is 1000 divided by 1609.344, and the rounding error already shows on a motorway reading of 100 km/h, then keeps growing on longer speed logs.
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/conv/kmh-to-mph \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"kmh":100}'const res = await fetch("https://api.kit.forhosting.com/conv/kmh-to-mph", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"kmh": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/kmh-to-mph",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"kmh": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/kmh-to-mph", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"kmh":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"kmh":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/kmh-to-mph", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"kmh": 100
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.kmh_to_mph",
"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_abs | 1000000000000 |
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
Invalid or missing input fails with a clear invalid_input error instead of inventing a number.
How to call the API and what comes back
Absolute values must stay within the published limit of one trillion. Send a JSON body with one required finite number field named kmh. Aliases km_h, kph, kilometers_per_hour, kilometres_per_hour, value, speed, and velocity are accepted so SDK clients and form posts can use the name that fits the product. On success the response echoes rounded kmh, sets mph, result, and converted to the same rounded mile-per-hour magnitude, unit to the token mph, from_unit to km/h and to_unit to mph, factor to the rounded value of one thousand over one thousand six hundred nine point three four four, km_per_mile to the exact constant one point six zero nine three four four, metres_per_mile to one thousand six hundred nine point three four four, formula to the string mph equals km/h times one thousand divided by one thousand six hundred nine point three four four, message to a short English summary, and steps to an ordered array of substitution lines. Failed validation—missing fields, non-finite numbers, bare plus or minus signs, non-numeric strings, values outside absolute limits, or a non-finite converted result—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item and zero marginal unit price.
Practical tips, checks, and related searches
Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when learners deliberately omit kmh or pass text.
Integration use cases
Homework and unit-test fixtures
Students and engineers convert classroom km/h readings to mph and pin golden JSON so browser and API arithmetic never drift.
Technical questions
What happens on missing or non-numeric input?
The API returns invalid_input naming the problem (for example a missing kmh field). Failed tasks are not charged.