pOH calculator
0.001 mol/L of hydroxide is pOH 3 and pH 11, a clearly basic solution: enter [OH−] in moles per litre and get pOH, pH, the matching [H+] and an acidic, neutral or basic label at 25 °C. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Oh concentration
- 0.001
- Poh
- 3
- Ph
- 11
- H concentration
- 0
- Temperature c
- 25
pOH is the base-side partner of pH: it is defined as the negative base-ten logarithm of the hydroxide ion concentration in moles per litre. In pure water and dilute aqueous solutions at twenty-five degrees Celsius the ion product of water fixes the sum of pH and pOH at fourteen, so once you know [OH−] you immediately know both pOH and the corresponding pH without a second measurement. Students use this identity on every strong-base homework set; lab technicians convert measured hydroxide molarity into pH for waste neutralization logs; process chemists monitor alkaline streams where [OH−] is the natural process variable. This calculator accepts a strictly positive hydroxide concentration, returns pOH, pH, the implied [H+], a twenty-five degree Celsius marker, and a simple acidic-neutral-basic label, and rejects zero or negative concentration so a bad logarithm never becomes Infinity or NaN.
How pOH and pH relate at twenty-five degrees Celsius
Start from the formal definition used in every introductory chemistry text: pOH equals the negative common logarithm of the hydroxide ion molarity, written pOH equals negative log base ten of open bracket OH minus close bracket. The autoprotolysis equilibrium of water is H two O reversible arrow H plus plus OH minus, and at twenty-five degrees Celsius the equilibrium constant Kw equals one times ten to the minus fourteen.
Taking the negative log of both sides of Kw equals open bracket H plus close bracket times open bracket OH minus close bracket produces the famous identity pH plus pOH equals fourteen when temperature is fixed at that textbook value. Therefore a single positive [OH−] determines the whole acid-base snapshot: compute pOH with the log formula, subtract from fourteen to obtain pH, and recover [H+] as Kw divided by [OH−] if you need the hydronium molarity for a report table.
Pure water has [OH−] equal to one times ten to the minus seven, so pOH and pH are both seven and the solution is labeled neutral. Strong bases such as sodium hydroxide at one millimolar give [OH−] equal to zero point zero zero one, pOH equal to three, and pH equal to eleven, a classic basic result.
Where pOH calculators show up in real work
Secondary-school and introductory university chemistry courses assign endless strong-base drills that convert [OH−] into pOH and then into pH using the fourteen identity; a single trusted oracle speeds grading and demo setup without hand-waving floating-point noise. Environmental labs logging alkaline wastewater streams often measure hydroxide or estimate it from titration and need a consistent pH column for regulatory forms that expect the acid scale. Process chemists and water-treatment engineers track caustic makeup tanks where [OH−] is the controlled variable and pH is the reported product specification.
Pharmacy and formulation groups preparing alkaline buffers or cleaning solutions verify that a target hydroxide molarity lands in the intended pH band before batch release. If you later need pH from [H+] alone, temperature-dependent Kw tables, buffer equations, or conversion from mass percent of sodium hydroxide to molarity, treat those as separate search intents and landings rather than overloading this pOH-from-hydroxide calculator page.
What you can do with it
Homework and exam answer keys
Convert textbook [OH−] values into pOH and pH at 25 °C so students and auto-graders share one closed-form ground truth.
Alkaline process and waste logs
Turn measured hydroxide molarity into consistent pH columns for wastewater, caustic tanks, and neutralization records.
Lab prep of strong bases
Check that a planned NaOH or KOH molarity yields the pH band required by a protocol before the batch is mixed.
FAQ
How is pOH calculated?
pOH = −log10([OH−]), where [OH−] is the hydroxide ion concentration in mol/L.
Why is temperature fixed at 25 °C?
Other temperatures change Kw and need a separate temperature-aware landing.
What does it cost?
The browser tool is free and runs locally.
What happens if the hydroxide concentration is zero or negative?
The calculator rejects it with a clear message. The logarithm of zero has no finite value and the logarithm of a negative number is not real, so instead of showing infinity it asks for a positive concentration.
My hydroxide value is in millimoles per litre. What do I do?
Divide it by 1000 to get moles per litre before you enter it. The calculator reads every value as mol/L, so a millimolar figure typed directly would give a pOH and pH that do not match your sample.
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/chem/poh \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"oh_concentration":0.001}'const res = await fetch("https://api.kit.forhosting.com/chem/poh", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"oh_concentration": 0.001
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/chem/poh",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"oh_concentration": 0.001
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/chem/poh", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"oh_concentration":0.001}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"oh_concentration":0.001}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/chem/poh", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"oh_concentration": 0.001
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "chem.poh",
"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.
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
How pOH and pH relate at twenty-five degrees Celsius
Concentration must be strictly positive because the logarithm of zero diverges and the logarithm of a negative number is not real; both cases fail validation with a clear invalid_input message rather than a silent Infinity. This capability evaluates the closed form in deterministic floating-point arithmetic: no random seeds, no wall-clock timestamps, no network calls, and no model drift, so identical inputs always produce identical JSON. It does not retune Kw for other temperatures, convert mass percent to molarity, or solve buffer Henderson-Hasselbalch problems; those remain separate search intents.
What you send and what you get back
The value must be strictly greater than zero; zero and negative concentrations fail because pOH uses the negative log of that concentration. Classic textbook checks include one times ten to the minus three molar hydroxide for pOH three and pH eleven, one times ten to the minus seven for the neutral water case, and one molar hydroxide for pOH zero and pH fourteen. Keep concentration on the molar scale across multi-step lab pipelines: if you measure millimoles per litre, convert to moles per litre before calling so the numeric product still matches the pOH interpretation your report claims. Send one required finite number under the field oh_concentration representing the hydroxide ion concentration in moles per litre. Missing fields, non-numeric strings, NaN, and Infinity also fail with invalid_input and are not charged. On success the response echoes the cleaned oh_concentration, provides poh as the primary pOH result, ph as fourteen minus pOH at twenty-five degrees Celsius, h_concentration as Kw over [OH−], temperature_c equal to twenty-five, pkw equal to fourteen, and an acidity label that is acidic when pH is below seven, neutral when pH is seven, and basic when pH is above seven. A units hint object names moles per litre for the concentrations and dimensionless pH and pOH units for the log scales, method is set to poh_from_oh_at_25c, and formula quotes the log and fourteen-minus identities so homework write-ups can cite the same expressions. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.
Where pOH calculators show up in real work
Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.
Technical questions
What happens if [OH−] is zero or negative?
The request fails with invalid_input. pOH uses −log10([OH−]), so zero and negative concentrations are rejected instead of returning Infinity or NaN.
Does the response include [H+]?
Yes. h_concentration is returned as Kw / [OH−] (equivalently 10^(−pH)) along with an acidic / neutral / basic label from the computed pH.