ForHosting KIT · Science

PPM to molarity calculator

100 ppm of sodium chloride (58.44 g/mol) is 0.001711156742 mol/L under the dilute-water rule that 1 ppm equals 1 mg per litre. Enter the reading and the molar mass to get mol/L and mmol/L side by side. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Ppm
100
Molar mass
58.44
You get
Molarity
0.0017111567 mol/L
Mmol per L
1.711156742
Assumption
dilute aqueous; 1 ppm ≈ 1 mg/L

Environmental reports, drinking-water specs, and many process-control sheets still quote dissolved solutes in parts per million, while lab stoichiometry, rate laws, and equilibrium constants expect molarity in moles per liter. Bridging those two units requires the solute molar mass and a clear density assumption: for dilute aqueous solutions one ppm is treated as one milligram per liter, so molarity equals ppm divided by molar mass times one thousand.

How ppm becomes molarity and which inputs to send

Start from a concentration reported in parts per million and the molar mass of the dissolved species in grams per mole. Under the dilute aqueous approximation used throughout water chemistry and introductory lab work, one ppm equals one milligram of solute per liter of solution. Dividing that mass concentration by the molar mass converts milligrams per liter into millimoles per liter; dividing again by one thousand yields moles per liter, which is the definition of molarity.

Ppm must be non-negative because a negative concentration is not physical in this product. Negative molar mass is also rejected. Identical inputs always produce identical outputs because there is no network call, no model, no random seed, and no wall clock in the path.

Classroom examples include converting one hundred ppm of sodium chloride with molar mass fifty eight point four four into molarity, or turning a ten ppm nitrate reading into moles per liter for an equilibrium calculation.

Reading the response: molarity, mmol/L, formula, and assumptions

The unit field is always mol/L so UI code can label the primary result without hard-coding strings. Formula restates M equals ppm over molar mass times one thousand, and assumption documents the dilute aqueous one-ppm-equals-one-milligram-per-liter convention so reviewers know density was not measured. Use molarity alone when a kinetics notebook needs mol/L; use mmol_per_L when comparing against millimolar stock labels; use formula and assumption together when a report must state the conversion rule for auditors.

Validation failures such as zero molar mass mention the offending field so technicians can correct a blank or zero molecular-weight column without reading a stack trace.

Water quality and environmental reporting

Convert ppm readings of chloride, nitrate, or hardness ions into mol/L for equilibrium, charge-balance, and regulatory stoichiometry worksheets.

Does this work for non-aqueous solutions?

The default formula assumes dilute aqueous solutions (1 ppm ≈ 1 mg/L). For other solvents or high concentrations, apply your own density correction outside this calculator.

Is the ppm to molarity calculator free?

The browser tool runs free on your device.

What is mmol_per_L in the response?

It is ppm divided by molar mass, equal to millimoles per liter. Multiply by 0.001 or use the molarity field when you need moles per liter.

Why is the result divided by 1000 after the molar mass?

Because the ppm reading is taken as milligrams per litre. Dividing by the molar mass gives millimoles per litre, and dividing again by 1000 turns millimoles into moles, which is what molarity counts.

What happens if I enter a molar mass of zero?

The calculation is refused with a message that names the value to fix, because dividing by zero has no answer. A negative molar mass or a negative ppm reading is refused in the same way.

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.

POSThttps://api.kit.forhosting.com/chem/ppm-to-molarity

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.

curl -X POST https://api.kit.forhosting.com/chem/ppm-to-molarity \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ppm":100,"molar_mass":58.44}'
{
  "ppm": 100,
  "molar_mass": 58.44
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "chem.ppm_to_molarity",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

This capability accepts non-negative ppm and a strictly positive molar mass in grams per mole, returns mol/L and a convenient mmol/L twin, and fails with invalid_input when molar mass is zero so pipelines never divide by a dead molecular weight. Homework checkers, LIMS scripts, teaching apps, and water-quality dashboards can pin the same JSON in tests without embedding a chemistry CAS.

How ppm becomes molarity and which inputs to send

Send a JSON object with required fields ppm and molar_mass as finite numbers or numeric strings; aliases such as parts_per_million, concentration_ppm, molecular_weight, mw, and molarMass are accepted when documented by the SDK so client code can speak laboratory English. Molar mass must be strictly positive: a zero value would make the formula undefined and raises invalid_input with an explicit message rather than returning infinity.

Reading the response: molarity, mmol/L, formula, and assumptions

On success the response echoes numeric ppm and molar_mass, then reports molarity in moles per liter after stable rounding, plus mmol_per_L which equals ppm divided by molar mass and is often the unit sensors and environmental tables already imply. The method label is always ppm_to_molarity so downstream routers can branch without sniffing shapes. Missing fields, non-finite numbers, and negative ppm also raise invalid_input and are not charged after the engine rejects the request.

API usage, pricing, lab workflows, and practical limits

Call the free in-browser ppm to molarity calculator for homework checks, lecture demos, and quick bench conversions without installing a spreadsheet formula library. Highly concentrated brines, non-aqueous solvents, and density-corrected industrial streams are outside the dilute aqueous assumption—document your own density factor or use a dedicated conversion when mass percent and specific gravity are known. Authors shipping SDKs can map the two fields into labeled inputs Concentration ppm and Molar mass g/mol with the molarity cell auto-filled—the same columns students write when they convert ppm to mol/L by hand on paper. Send a JSON body with ppm and molar_mass as numbers or numeric strings. Use the prepaid API when a LIMS integration, tutoring platform, water-quality dashboard, or inventory system needs a stable contract under KIT balance at $0.002 per successful item; validation failures never consume balance after the engine rejects the request. Pair this endpoint with a molar mass calculator in your own pipeline when the next step is obtaining grams per mole from a chemical formula before the ppm conversion.

Homework and exam verification

Students convert ppm plus molar mass into molarity and compare against structured JSON, with clear errors when molar mass is zero or missing.

LIMS and teaching app integrations

Scripts and curriculum tools call a stable prepaid endpoint instead of reimplementing ppm-to-molarity arithmetic in every language and spreadsheet.

How do I convert ppm to molarity?

Send JSON with ppm and molar_mass in g/mol. The response returns molarity in mol/L using M = ppm / (molar_mass × 1000) under the dilute aqueous assumption that 1 ppm ≈ 1 mg/L.

What happens if molar mass is zero?

The request fails with invalid_input. Zero molar mass would make the conversion undefined; molar_mass must be a strictly positive number in g/mol.

Read the full KIT documentation →