KM to miles converter
Divide kilometers by exactly 1.609344 and get statute miles: 1.609344 km make exactly 1 mile, with no 0.62 rule of thumb in between. For maps, event plans and copy aimed at US readers. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Km
- 1.609344
- Result
- 1 mi
- Converted
- 1
- Miles
- 1
- From unit
- km
A kilometres-to-miles converter turns a metric road or race distance into the statute mile value drivers, runners, and logistics teams still need on maps, event plans, and US-facing product copy. Approximate mental shortcuts such as multiply by zero point six two are rejected in favour of the 1959 yard and pound agreement constant, so homework checks and route exports match engineering tables.
Why kilometres and statute miles still meet at 1.609344
Kilometres belong to the SI-derived metric family used for road signs outside the United States, athletic race markings, and most scientific distance reports. Statute miles remain standard on many United States highway signs, vehicle odometers, running apps when set to imperial, and logistics contracts that quote last-mile haul distance.
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 division, miles equals kilometres divided by one point six zero nine three four four, or equivalently kilometres times the reciprocal factor one over one point six zero nine three four four.
Teachers and coaches often still teach the rough rule of thumb multiply by zero point six two, but that introduces a scale error that shows up immediately on a ten-kilometre race or a five-hundred-kilometre delivery corridor.
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 a known textbook value such as one point six zero nine three four four kilometres and confirm you receive exactly one mile after rounding, or convert one hundred kilometres and confirm roughly sixty-two point one three seven one one nine two two three three five miles.
When teaching, pair the exact path with the mental shortcut so students see the drift on long hauls. Stay inside the absolute range so the division cannot overflow into a non-finite result the solver must reject. This landing targets people searching for km to miles, convert kilometers to miles, or an exact one point six zero nine three four four calculator; it is not a general multi-unit length hub, not a miles-to-kilometres primary form, not a nautical-mile tool, and not an astronomical distance converter.
Prefer this capability when the input is already in kilometres and you only need statute miles; if you must convert among many units in one call, use a broader unit converter instead.
What you can do with it
Road trip and logistics planning
Turn metric route distances from map APIs into statute miles for US-facing trip estimates, fuel budgets, and delivery SLAs with the same exact factor every row.
Race and training distance checks
Runners and coaches convert 5K, 10K, and half-marathon kilometre marks to miles and compare hand work against deterministic steps before publishing race guides.
FAQ
What formula converts km to miles?
Miles = kilometres ÷ 1.609344. One international statute mile is defined as exactly 1.609344 kilometres (1609.344 metres) by the 1959 international yard and pound agreement.
Is 1.609344 exact or approximate?
Exact. This tool uses the international statute mile definition, not a survey-mile or a rough multiply-by-0.62 estimate.
Can I convert miles back to kilometres?
This capability is kilometres → miles only. Multiply miles by 1.609344 on your side, or use a bidirectional length converter for other units.
Is the km to miles converter free?
The browser tool is free and runs locally.
Is the result in nautical miles?
No. You always get statute miles, the ones on US highway signs and odometers, defined as exactly 1.609344 km. This converter is not meant for the nautical miles used at sea.
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/km-to-miles \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"km":1.609344}'const res = await fetch("https://api.kit.forhosting.com/conv/km-to-miles", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"km": 1.609344
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/km-to-miles",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"km": 1.609344
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/km-to-miles", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"km":1.609344}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"km":1.609344}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/km-to-miles", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"km": 1.609344
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.km_to_miles",
"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 km. Aliases kilometers, kilometres, value, length, km_value, and distance are accepted so SDK clients and form posts can use the name that fits the product. On success the response echoes rounded km, sets miles, result, and converted to the same rounded mile magnitude, unit to the token mi, from_unit to km and to_unit to mi, factor to the rounded reciprocal one over one point six zero nine three four four, km_per_mile to the exact constant one point six zero nine three four four, formula to the string miles equals km divided by one point six zero nine 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 km or pass text.
Integration use cases
Homework and unit-test fixtures
Students and engineers convert classroom kilometre readings to miles 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 km field). Failed tasks are not charged.