CFM to cubic meters per hour converter
100 CFM is exactly 169.901079552 m³/h. Turn the airflow on a US fan, nameplate or HVAC schedule into the cubic metres per hour used in European and ISO ventilation tables, with the exact factor instead of a rounded multiplier. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Cfm
- 100
- Result
- 169.901079552 m³/h
- Converted
- 169.901079552
- Cubic meters per hour
- 169.901079552
- From unit
- CFM
A CFM-to-cubic-metres-per-hour converter turns a US imperial volume flow rate into the metric hourly rate used on European HVAC schedules, process-plant datasheets, and international ventilation standards. Approximate mental shortcuts such as multiply by one point seven are rejected in favour of that exact constant, so commissioning tables and product nameplates match engineering definitions.
Why CFM and cubic metres per hour still meet at 0.3048 cubed times sixty
Cubic feet per minute remain the everyday airflow unit on many US HVAC nameplates, residential ventilation rules of thumb, fan catalogues, and clean-room balance sheets written for imperial markets. Cubic metres per hour dominate European and ISO ventilation schedules, process-plant mass-balance sheets that quote volumetric flow at standard temperature, and most international equipment tables that never list CFM at all.
The bridge between them is exact under modern definitions: since the 1959 international yard and pound agreement, one international foot is zero point three zero four eight metres, so one cubic foot is exactly zero point zero two eight three one six eight four six five nine two cubic metres. One hour is exactly sixty minutes, so one cubic foot per minute becomes that volume times sixty per hour—one point six nine nine zero one zero seven nine five five two cubic metres per hour.
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 hundred CFM and confirm you receive one hundred sixty-nine point nine zero one zero seven nine five five two cubic metres per hour after rounding, or convert one CFM and confirm you receive exactly one point six nine nine zero one zero seven nine five five two m³/h.
When teaching, pair the exact path with the mental shortcut so students see the drift on large air handlers. Stay inside the absolute range so the multiply cannot overflow into a non-finite result the solver must reject. This landing targets people searching for CFM to cubic meters per hour, convert CFM to m³/h, or CFM to m3/h calculator with an exact factor; it is not a general multi-unit flow hub, not an m³/h-to-CFM primary form, not a litres-per-second or gallons-per-minute tool, and not a compressible-gas mass-flow converter.
Prefer this capability when the input is already in CFM and you only need cubic metres per hour; if you must convert among many flow units in one call, use a broader volume-flow converter instead.
What you can do with it
HVAC schedule and nameplate alignment
Turn US CFM fan and diffuser ratings into m³/h for European schedules, ISO ventilation tables, and bilingual equipment packages with the same exact factor every row.
Commissioning and balance sheets
Commissioning teams convert measured CFM traverses to m³/h and compare hand work against deterministic steps before signing air-balance reports.
FAQ
What formula converts CFM to cubic meters per hour?
m³/h = CFM × 1.69901079552. One international foot is exactly 0.3048 m, so one cubic foot is exactly 0.3048³ m³; multiply by 60 minutes per hour.
Is 1.69901079552 exact or approximate?
Exact under the international foot definition and sixty minutes per hour. This tool uses 0.028316846592 × 60, not a survey-foot or a rough multiply-by-1.7 estimate.
Can I convert cubic metres per hour back to CFM?
This capability is CFM → m³/h only. Divide m³/h by 1.69901079552 on your side, or use a bidirectional volume-flow converter for other units.
Is the CFM to cubic meters per hour converter free?
The browser tool is free and runs locally.
Why not just multiply CFM by 1.7?
Because 1.7 is a rounded shortcut that drifts on large air handlers. The exact factor is 1.69901079552, built from the 0.3048 m foot and sixty minutes per hour, so commissioning tables match the nameplates.
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/cfm-to-cubic-meters-per-hour \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"cfm":100}'const res = await fetch("https://api.kit.forhosting.com/conv/cfm-to-cubic-meters-per-hour", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"cfm": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/cfm-to-cubic-meters-per-hour",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"cfm": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/cfm-to-cubic-meters-per-hour", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"cfm":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"cfm":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/cfm-to-cubic-meters-per-hour", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"cfm": 100
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.cfm_to_cubic_meters_per_hour",
"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 cfm. Aliases cubic_feet_per_minute, ft3_per_min, ft³/min, value, flow, flow_rate, and q are accepted so SDK clients and form posts can use the name that fits the product. On success the response echoes rounded cfm, sets cubic_meters_per_hour, result, and converted to the same rounded m³/h magnitude, unit to the token m³/h, from_unit to CFM and to_unit to m³/h, factor to the rounded exact multiplier one point six nine nine zero one zero seven nine five five two, cubic_meters_per_cubic_foot to zero point zero two eight three one six eight four six five nine two, meters_per_foot to zero point three zero four eight, minutes_per_hour to sixty, formula to the string cubic_meters_per_hour equals cfm times one point six nine nine zero one zero seven nine five five two, 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 cfm or pass text.
Integration use cases
Homework and unit-test fixtures
Students and engineers convert classroom CFM readings to cubic metres per hour 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 cfm field). Failed tasks are not charged.