Standard temperature and pressure calculator
One mole of gas at 1 atm and 0 °C fills 22.414 L, a little more than the rounded 22.4. Pick volume, moles or pressure as the unknown, give the other two, and the ideal gas law is solved at 273.15 K. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Calculate
- Volume
- Moles
- 1
- Pressure
- 1
- Volume
- 22.4139695446 L
- Unknown
- 22.4139695446
- Unknown name
- volume
- Temperature stp
- 273.15
This standard temperature and pressure calculator rearranges the ideal gas law with temperature locked at classic chemistry STP of 273.15 kelvin (zero degrees Celsius). Supply any two of gas volume in litres, amount in moles, and pressure in atmospheres, then choose the unknown; the tool returns that quantity using PV equals nRT and the CODATA gas constant 8.314462618 joules per mole per kelvin. Use it to find how many litres one mole occupies near 22.4 L at one atmosphere, how many moles sit in a flask at STP temperature, or what pressure a known amount produces in a known volume when T is 0 °C.
What STP means and how PV = nRT is rearranged
Standard temperature and pressure, abbreviated STP, is the fixed reference state chemists use so gas volumes can be compared without restating every thermometer and barometer reading on the problem sheet. In the classical definition taught in most general-chemistry courses, temperature is zero degrees Celsius, which is two hundred seventy-three point one five kelvin, and the reference pressure is one atmosphere (one hundred one thousand three hundred twenty-five pascals).
This calculator locks temperature at that STP value and then solves the ideal gas law PV equals nRT for whichever of volume, moles, or pressure you mark as unknown. Volume is accepted and returned in litres, amount in moles, and pressure in atmospheres, matching the units on typical worksheets; internally the engine converts atmospheres to pascals and litres to cubic metres so it can use the CODATA molar gas constant 8.314462618 joules per mole per kelvin.
When you solve for volume the rearrange is V equals nRT over P; when you solve for moles it is n equals PV over RT; when you solve for pressure it is P equals nRT over V. One mole at one atmosphere therefore occupies about 22.414 litres, the exact R T over P molar volume rather than the rounded textbook 22.4 litres per mole, so answer keys that demand extra significant figures stay consistent with SI constants.
Real gases approach this model at moderate pressure well above the boiling range; the tool does not apply van der Waals corrections, compressibility factors, or mixture rules. There is also no Celsius input field, because the whole point of an STP landing is that temperature is already the standard value.
Where an STP volume-moles-pressure solver earns its keep
Classrooms and tutoring platforms use a standard temperature and pressure calculator so learners can check litres from moles at one atmosphere, moles from a collected gas volume, or the pressure that a known amount would exert in a known flask when the bath is ice water, without flipping unit-conversion errors by hand. Exam-prep generators need a deterministic oracle that marks negative inputs as invalid instead of silently returning a negative litre count a buggy grader might treat as success.
Laboratory instructors prepare theoretical yields for reactions whose protocols report gas at STP, then ask what volume two and a half moles occupy or how many moles sit in forty-four litres at one atmosphere. Engineering notebooks sometimes reduce a storage-cylinder check to n and V at 0 °C and want P in atmospheres without standing up a computer-algebra system. Keep requests small, pin the rounded unknown in tests, and you get reproducible STP state variables for homework, LMS plugins, and edge workers.
Prefer sibling tools when you need density from molar mass, the rounded 22.4 L shortcut alone, or a four-variable PV equals nRT solve at arbitrary kelvin; this page is the STP landing that returns whichever of volume, moles, or pressure you left blank.
What you can do with it
Homework checks at classic STP
Students enter moles and pressure to recover litres at 0 °C, or volume and pressure to recover moles, and compare the unknown against a handwritten PV = nRT rearrange before submitting.
Lab yield and flask-fill estimates
Instructors convert stoichiometric mole amounts into litres at STP, or check what pressure a known amount would produce in a known flask held at ice-bath temperature.
FAQ
What is standard temperature and pressure in this calculator?
Classic chemistry STP: temperature is locked at 273.15 K (0 °C). One mole at 1 atm occupies about 22.414 L.
How do I solve for volume, moles, or pressure at STP?
The engine uses V = nRT/P, n = PV/RT, or P = nRT/V with T fixed at 273.15 K and returns the unknown.
What happens if volume, moles, or pressure is negative?
A physical ideal-gas sample cannot have negative volume, amount, or pressure at STP, so those requests are not billed.
Why is the molar volume not exactly 22.4 L/mol?
The engine uses exact R·T/P with CODATA R, which is about 22.414 L/mol at 1 atm. Textbook 22.4 L/mol is a rounded shortcut; this page keeps extra figures for reproducible goldens.
Can I change the temperature in this STP calculator?
No. The temperature is fixed at 273.15 K, which is 0 °C, and there is no temperature box at all. For a gas at any other temperature, use a general ideal gas law calculator instead.
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/standard-temperature-and-pressure \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"solve_for":"volume","moles":1,"pressure":1}'const res = await fetch("https://api.kit.forhosting.com/chem/standard-temperature-and-pressure", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"solve_for": "volume",
"moles": 1,
"pressure": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/chem/standard-temperature-and-pressure",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"solve_for": "volume",
"moles": 1,
"pressure": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/chem/standard-temperature-and-pressure", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"solve_for":"volume","moles":1,"pressure":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"solve_for":"volume","moles":1,"pressure":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/chem/standard-temperature-and-pressure", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"solve_for": "volume",
"moles": 1,
"pressure": 1
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "chem.standard_temperature_and_pressure",
"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
Negative volume, moles, or pressure is rejected with invalid_input because those values are not physical for an ideal-gas sample. Successful API calls cost $0.002; validation failures are not billed.
Input contract, units, negatives, and the JSON you get back
Any negative volume, moles, or pressure is rejected with a message that those quantities cannot be negative at standard temperature and pressure, matching the product rule that a physical gas sample does not occupy a negative flask. Zero moles is allowed and yields zero volume or zero pressure when the divisor is nonzero; zero pressure while solving for volume, or zero volume while solving for pressure, is rejected because the rearrange would divide by zero. Failed validation is never billed. POST a JSON body with solve_for set to volume, moles, or pressure (aliases unknown, find, and target) plus the two companion fields. Volume (aliases V, v, vol) is in litres and is required when the unknown is moles or pressure. Moles (aliases n, mol, amount) is required when the unknown is volume or pressure. Pressure (aliases P, p, press, atm) is in atmospheres and is required when the unknown is volume or moles. Each numeric field may arrive as a JSON number or as a strict finite numeric string; missing fields, empty strings, NaN, Infinity, and values whose magnitude exceeds one trillion fail with invalid_input naming the field. On success the body echoes the three state values after the solve, repeats the unknown as unknown and unknown_name, sets unit to L, mol, or atm, and includes temperature_stp 273.15, gas_constant 8.314462618, formula, method standard_temperature_and_pressure, and a stp_definition string you can show next to the answer. Numeric fields are rounded with twelve significant figures so goldens compare byte-for-byte across the Worker and the browser. Successful API requests cost the published $0.002 base price with unit item.
Integration use cases
Deterministic fixtures for chemistry software
Generate known-good V, n, and P triples plus deliberate negative-input rejections for unit tests, tutoring oracles, and contest answer keys that must not drift with a 22.4 rounding shortcut.
Technical questions
What does the STP calculator cost?
The browser tool is free. API requests use prepaid balance at $0.002 per successful call; invalid input is not billed.