Permeability converter
100 millidarcies are 0.1 darcy, and one darcy is 9.869233 × 10⁻¹³ m². Switch between darcy, millidarcy, microdarcy, nanodarcy and four square-metre units for core reports, groundwater studies or coursework, with every step shown. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Value
- 100
- From
- mD
- To
- D
- Result
- 0.1 D
- Converted
- 0.1
- Value m2
- 0
- Factor
- 0.001
A permeability converter turns one porous-media intrinsic permeability magnitude into another everyday unit without spreadsheet factors or mental decade tables. Enter a finite value plus a source unit and a target unit among darcy, millidarcy, microdarcy, nanodarcy, square metres, square centimetres, square millimetres, and square micrometres; the tool returns the converted permeability, the SI intermediate in square metres, the exact unit factor applied, and step-by-step substitution lines you can paste into a lab notebook, core report, or reservoir engineering note. Petroleum engineers comparing millidarcy core plugs to SI square-metre models, hydrogeologists reading tight-shale nanodarcy ranges, geotechnical labs converting micrometre-squared literature tables, and students converting homework Darcy units all need the same deterministic path.
Which permeability units are supported and how conversion works
This capability converts among eight everyday intrinsic-permeability units that dominate petroleum core reports, hydrogeology papers, geotechnical data sheets, and undergraduate porous-media coursework. The square metre (m²) is the SI coherent unit of intrinsic permeability and the internal hub: every conversion multiplies the input by how many square metres equal one source unit, then divides by how many square metres equal one target unit.
The darcy (D) uses the conventional petroleum-engineering factor of nine point eight six nine two three three times ten to the minus thirteen square metres, derived from the historical definition that permits one cubic centimetre per second of fluid with one centipoise viscosity through one square centimetre under one atmosphere per centimetre. One millidarcy is exactly one thousandth of a darcy, one microdarcy is one millionth, and one nanodarcy is one billionth, covering reservoir sands down to ultra-tight shale.
Square centimetres, millimetres, and micrometres use exact SI power-of-ten factors so CGS and micron-scale literature tables convert without hand-tuned constants. Same-unit requests succeed and return the input magnitude with a short message that no change of unit was required.
Practical tips, limits, and when to use this landing
Prefer sending bare numbers for value when you control the client; string numbers are accepted only when they match a strict finite numeric pattern without currency symbols or thousand separators. Round-trip checks are straightforward: convert A to B and B back to A and confirm you recover the original within the published twelve-decimal rounding. When teaching, pair classic examples such as one darcy to square metres using the conventional factor, one hundred millidarcies to darcies as a pure thousandths step, and one square micrometre into millidarcies for micron-scale literature.
Stay inside the absolute range so intermediate m² values cannot overflow. This landing targets people searching for a permeability converter, darcy to m2, millidarcy converter, or porous media permeability unit conversion online; it is not a general multi-quantity unit converter, not a Darcy velocity or pressure-drop calculator, not a relative-permeability curve fitter, and not a hydraulic-conductivity (m/s) tool that folds viscosity and density.
What you can do with it
Core-plug reports and SI reservoir models
Reservoir engineers convert millidarcy core-plug averages into square metres for simulators and mixed SI–petroleum data sheets without hand-maintained factor tables.
Tight-rock and shale lab notes
Hydrogeologists and petrophysicists convert nanodarcy and microdarcy lab results into millidarcies or SI area units for comparison across tight-shale datasets.
Homework and porous-media checks
Students convert darcy, millidarcy, and square-metre homework values with deterministic steps they can compare against hand calculations before submission.
FAQ
How many square metres equal one darcy?
One millidarcy is exactly one thousandth of that value.
Is the permeability converter free?
The browser tool is free and runs locally.
How many darcies are 100 millidarcies?
100 millidarcies are 0.1 darcy, because a millidarcy is exactly one thousandth of a darcy. The same pure thousandths step links microdarcies to millidarcies and nanodarcies to microdarcies.
Where does the darcy unit come from?
From a historical definition: one darcy lets one cubic centimetre per second of a fluid with one centipoise viscosity pass through one square centimetre under a pressure drop of one atmosphere per centimetre.
Which permeability units can I convert?
Eight units: darcy, millidarcy, microdarcy and nanodarcy, plus square metres, square centimetres, square millimetres and square micrometres. Every conversion passes through square metres, the SI unit of intrinsic permeability.
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/permeability-darcy \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":100,"from":"mD","to":"m2"}'const res = await fetch("https://api.kit.forhosting.com/conv/permeability-darcy", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 100,
"from": "mD",
"to": "m2"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/permeability-darcy",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 100,
"from": "mD",
"to": "m2"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/permeability-darcy", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":100,"from":"mD","to":"m2"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":100,"from":"mD","to":"m2"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/permeability-darcy", 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": 100,
"from": "mD",
"to": "m2"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.permeability_darcy",
"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
Unknown unit names fail with a clear invalid_input error instead of silent wrong factors.
Which permeability units are supported and how conversion works
Common aliases are accepted case-insensitively: darcy and D, millidarcy and mD, microdarcy and μD or uD, nanodarcy and nD, square meter or m2 for square metres, cm2 and square centimetre, mm2, and um2 or square micrometer for square micrometres. If the name is not on that list the solver rejects the request with invalid_input naming the bad field and listing supported units, so clients never guess whether a typo produced a wrong number. Negative values are allowed for signed difference contexts; absolute magnitude must stay within the published one-trillion limit so intermediate products remain finite in IEEE double precision on the Worker and in the browser.
How to call the API and read the response
Value must be a finite number or a strict numeric string within absolute limits of one trillion. Wire this into dashboards, mobile clients, or batch jobs that already hold a core-plug or simulation permeability and only need a second unit for display, regulatory comparison, or mixed SI–petroleum reports without shipping floating conversion tables in every app binary. Send a JSON body with three required fields: value (aliases amount, k, permeability, and perm), from (aliases from_unit, unit_from, and source), and to (aliases to_unit, unit_to, and target). From and to must resolve to supported unit names after alias normalization. On success the response echoes the rounded input value, canonical from and to labels, result and converted set to the same rounded target magnitude, value_m2 as the SI intermediate in square metres, unit as the target label, factor as the from-to multiplier, formula as the short equation string, message as an English summary, steps as ordered substitution lines, and supported_units as the eight canonical identifiers. Failed validation—missing fields, non-finite numbers, values outside absolute limits, or an unknown unit name—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, limits, and when to use this landing
Normalize display labels on your side if you need locale-specific spellings—this API always returns the short canonical tokens D, mD, μD, nD, m², cm², mm², and μm² so automated tests stay stable. Prefer this capability when both endpoints are among the eight supported intrinsic-permeability units and you need deterministic factors and step strings; if you need seepage velocity from head gradient or multiphase relative-k tables, use the dedicated flow and reservoir calculators instead. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when clients deliberately probe unknown unit names.
Technical questions
Which permeability units can I convert?
Darcy (D), millidarcy (mD), microdarcy (μD), nanodarcy (nD), square metres (m²), square centimetres (cm²), square millimetres (mm²), and square micrometres (μm²), including common full-word aliases such as millidarcy and square meter.
What happens if I send an unknown unit name?
The API returns invalid_input, names the bad field, and lists the supported units. The failed task is not charged.
Are results deterministic across browser and API?
Yes. Handler and widget share the same lib.js solve path with fixed SI factors and twelve-decimal rounding, so golden examples match production.