Imperial converter
2.54 cm is exactly 1 inch: take a metric length or weight and read the inches, feet, yards, miles, ounces, pounds, stones or long tons printed on drawings, labels and shipping forms. One direction, length and mass only. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Value
- 2.54
- From
- Cm
- To
- In
- Value
- 1 in
- Converted
- 1
- Input
- 2.54
- Quantity
- length
A metric-to-imperial converter turns a length or a mass written in SI units into the inch, foot, yard, mile, ounce, pound, stone, or long-ton value that still appears on drawings, labels, and shipping forms. Enter a finite number, a metric source unit, and an imperial target; the solver converts through metres or kilograms using the exact 1959 international yard and pound constants, then returns the converted value.
Why metric length and weight still need an imperial landing
Millimetres, centimetres, metres, and kilometres describe length in the SI family used by science, most manufacturing drawings, and everyday tape measures outside the United States. Milligrams, grams, kilograms, and the metric tonne describe mass on the same decimal ladder. Inches, feet, yards, and statute miles remain the length language of many US product specs, lumber lists, road signs, and clothing charts.
Avoirdupois ounces, pounds, stones, and the long ton of two thousand two hundred forty pounds remain the mass language of kitchen scales, shipping documents, and UK body-weight reports. People who search for an imperial converter are not looking for a general unit kitchen that also does temperature and volume: they want the one-way job of taking a metric length or weight and reading the imperial equivalent. This capability is that landing.
It does not invent a US survey foot, a troy ounce, or a short ton of two thousand pounds, and it does not reverse the arrow from pounds back to kilograms. The arithmetic is the 1959 international yard and pound agreement: one inch is exactly zero point zero two five four metres, and one avoirdupois pound is exactly zero point four five three five nine two three seven kilograms.
Feet, yards, and miles are exact integer multiples of that inch; ounces, stones, and long tons are exact integer multiples of that pound. Routing every pair through metres or kilograms keeps a single factor table, so centimetres to inches and kilograms to pounds cannot drift from one another. Mixing a length with a mass is not a conversion at all: it is an unsupported unit pair and the solver fails closed rather than emitting a meaningless number.
Checks, limits, and when to pick a narrower pair
Prefer sending bare numbers when you control the client. String numbers are accepted only when they match a strict finite numeric pattern without unit suffixes, thousand separators, or currency symbols. Round-trip sanity checks are easy: convert two point five four centimetres to inches and confirm you receive exactly one inch, or convert one kilogram to pounds and confirm two point two zero four six two two six two one eight four nine pounds after twelve-decimal rounding.
Convert one hundred metres to feet and you should see the exact international factor of one metre over zero point three zero four eight. Stay inside the published absolute range so the SI multiply cannot overflow into a non-finite result the solver must reject. This landing targets people searching for metric to imperial, imperial converter, convert to inches, or kilograms to pounds as a pair of everyday quantities.
It is not a bidirectional length hub, not a US-short-ton shipping calculator, not a cooking-volume converter, and not a temperature scale. Prefer a dedicated centimetres-to-inches page when the source is already locked to centimetres, and prefer a general unit converter only when the same call must also handle litres, gallons, or degrees.
Keep requests inside the documented enums, pin both the converted value and the SI hub in tests, and you get reproducible imperial numbers for catalogs, LMS plugins, and edge workers without standing up a full unit library of your own.
What you can do with it
US-facing product dimensions from metric CAD
Export millimetre or centimetre warehouse measurements to inch and foot fields on US product pages and packing slips with the same 1959 inch every row.
Body weight and shipping mass for UK and US forms
Turn kilograms from a clinic scale or a bill of lading into pounds, stones, or long tons without mixing a metric tonne with a short ton.
FAQ
Which metric-to-imperial pairs does this converter support?
Length: millimetres, centimetres, metres, or kilometres into inches, feet, yards, or miles. Mass: milligrams, grams, kilograms, or metric tonnes into ounces, pounds, stones, or long tons (2240 lb). Mixed length and mass pairs are rejected.
What exact factors convert centimetres to inches and kilograms to pounds?
One inch is exactly 0.0254 metres and one avoirdupois pound is exactly 0.45359237 kilograms, from the 1959 international yard and pound agreement. Other imperial units are integer multiples of those two constants.
Why is converting kilograms to inches an error?
Kilograms measure mass and inches measure length. That pair is unsupported.
Can I convert pounds back to kilograms?
No. This landing is metric to imperial only. Use a dedicated pounds-to-kilograms or bidirectional mass tool for the other direction.
How is the imperial converter priced?
The browser tool is free and runs locally. Failed validation, including unsupported unit pairs, is never charged.
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/imperial \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":2.54,"from":"cm","to":"in"}'const res = await fetch("https://api.kit.forhosting.com/conv/imperial", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 2.54,
"from": "cm",
"to": "in"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/imperial",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 2.54,
"from": "cm",
"to": "in"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/imperial", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":2.54,"from":"cm","to":"in"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":2.54,"from":"cm","to":"in"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/imperial", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"value": 2.54,
"from": "cm",
"to": "in"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.imperial",
"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
Mixing length with mass, asking for a reverse imperial-to-metric pair, or naming an unknown unit fails with invalid_input instead of a guessed number. Successful API calls are billed at $0.002; failed validation is not charged.
How to call the converter and what the JSON contains
Send a JSON body with three required fields. The field value is the finite metric magnitude; aliases amount and quantity are accepted so forms and spreadsheets can reuse a familiar name. The field from is the metric source: millimetres, centimetres, metres, or kilometres for length, and milligrams, grams, kilograms, or metric tonnes for mass. The field to is the imperial target: inches, feet, yards, or miles for length, and ounces, pounds, stones, or long tons for mass. Canonical tokens in the form are mm, cm, m, km, mg, g, kg, t, in, ft, yd, mi, oz, lb, st, and long_ton; case-insensitive aliases such as centimetres and pounds are accepted on the API. On success the response sets value and converted to the same rounded imperial magnitude, echoes input, from, and to, names unit as the target token, flags quantity as length or mass, reports the SI hub as si with si_unit metres or kilograms, and includes the exact multiplicative factor, a substitution formula, and a short English message. Missing fields, non-finite numbers, unknown names, reverse imperial-to-metric requests, and cross-quantity pairs such as kilograms to inches return invalid_input and are never charged. Pricing is a flat $0.002 per successful item.
Checks, limits, and when to pick a narrower pair
Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when learners deliberately omit from or pass a mixed pair.
Integration use cases
Homework and catalog QA
Students and data pipelines check centimetres-to-inches and kilograms-to-pounds against deterministic JSON, and mixed pairs fail closed instead of inventing a number.