{"openapi":"3.1.0","info":{"title":"Reaction Stoichiometry API","version":"1.0.0","description":"Chemical reaction-stoichiometry maths as an API, computed locally and deterministically. The limiting-reagent endpoint takes two reactants with their amounts in moles and their balanced-equation coefficients and finds which one runs out first — the limiting reagent — by comparing the moles/coefficient ratio (the reaction extent), and returns how much of the excess reagent is left over. The yield endpoint computes the theoretical yield of a product, in moles and grams, from the limiting reagent and the product's stoichiometric coefficient and molar mass, n_product = n_limiting·(coeff_product/coeff_limiting), and — given the actual yield — the percent yield. The mole-mass endpoint converts between moles, mass and the number of particles for a given molar mass, using moles = mass / molar_mass and N = moles · Avogadro's number (6.02214076e23). Amounts are in moles, masses in grams and molar masses in g/mol. Everything is computed locally and deterministically, so it is instant and private. Ideal for chemistry-education, lab, pharmaceutical and chemical-engineering app developers, reaction-planning and yield tools, and STEM teaching. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is reaction stoichiometry; for a compound's molar mass from its formula use a molar-mass API and for solution concentrations a dilution API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/stoichiometry-api","description":"oanor gateway"}],"tags":[{"name":"Stoichiometry"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/limiting-reagent":{"get":{"operationId":"get_v1_limiting_reagent","tags":["Stoichiometry"],"summary":"Limiting reagent","description":"","parameters":[{"name":"moles_a","in":"query","required":true,"description":"Moles of reactant A","schema":{"type":"string"},"example":"4"},{"name":"coefficient_a","in":"query","required":false,"description":"Coefficient of A","schema":{"type":"string"},"example":"2"},{"name":"moles_b","in":"query","required":true,"description":"Moles of reactant B","schema":{"type":"string"},"example":"1"},{"name":"coefficient_b","in":"query","required":false,"description":"Coefficient of B","schema":{"type":"string"},"example":"1"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"The limiting reagent has the smallest moles/coefficient ratio (reaction extent). The reaction stops when it runs out; the other reagent is left in excess.","inputs":{"moles_a":4,"moles_b":1,"coefficient_a":2,"coefficient_b":1},"excess_reagent":"a","reaction_extent":1,"limiting_reagent":"b","excess_remaining_moles":2},"meta":{"timestamp":"2026-06-05T11:30:39.062Z","request_id":"2f6f1591-a075-4aa0-9d0d-8a6a92adbfa8"},"status":"ok","message":"Limiting reagent","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/mole-mass":{"get":{"operationId":"get_v1_mole_mass","tags":["Stoichiometry"],"summary":"Mole-mass-particle conversion","description":"","parameters":[{"name":"molar_mass","in":"query","required":true,"description":"Molar mass (g/mol)","schema":{"type":"string"},"example":"18.015"},{"name":"moles","in":"query","required":false,"description":"Moles","schema":{"type":"string"},"example":"2"},{"name":"mass","in":"query","required":false,"description":"Or mass (g)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"moles = mass / molar_mass; particles = moles · Nₐ (6.02214076e23). Give moles OR mass and the molar mass to get the rest.","moles":2,"inputs":{"moles":2,"molar_mass":18.015},"mass_g":36.03,"particles":1.204428152e+24,"avogadro_constant":6.02214076e+23},"meta":{"timestamp":"2026-06-05T11:30:39.164Z","request_id":"e9cb875d-49c4-40bc-abfa-18da518412f0"},"status":"ok","message":"Mole-mass conversion","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/yield":{"get":{"operationId":"get_v1_yield","tags":["Stoichiometry"],"summary":"Theoretical & percent yield","description":"","parameters":[{"name":"limiting_moles","in":"query","required":true,"description":"Moles of limiting reagent","schema":{"type":"string"},"example":"1"},{"name":"limiting_coefficient","in":"query","required":false,"description":"Coefficient of limiting reagent","schema":{"type":"string"},"example":"1"},{"name":"product_coefficient","in":"query","required":false,"description":"Coefficient of product","schema":{"type":"string"},"example":"2"},{"name":"product_molar_mass","in":"query","required":true,"description":"Product molar mass (g/mol)","schema":{"type":"string"},"example":"18.015"},{"name":"actual_yield","in":"query","required":false,"description":"Actual yield (g)","schema":{"type":"string"},"example":"30"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Theoretical yield: n_product = n_limiting · (coeff_product / coeff_limiting); mass = n · M. Percent yield = actual / theoretical · 100.","inputs":{"limiting_moles":1,"product_molar_mass":18.015,"product_coefficient":2,"limiting_coefficient":1},"percent_yield":83.2639,"actual_yield_g":30,"theoretical_moles":2,"theoretical_mass_g":36.03},"meta":{"timestamp":"2026-06-05T11:30:39.244Z","request_id":"c32c23fe-a96f-449d-9415-928c7acc412a"},"status":"ok","message":"Yield","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"notes":"Amounts in mol, masses in g, molar masses in g/mol. Coefficients are the balanced-equation stoichiometric numbers (default 1).","service":"stoichiometry-api","formulae":{"limiting":"extent_i = moles_i / coeff_i ; smallest limits","particles":"N = moles · Nₐ","percent_yield":"actual / theoretical · 100","theoretical_yield":"n_product = n_limiting · (coeff_product / coeff_limiting)"},"constants":{"avogadro_per_mol":6.02214076e+23},"endpoints":{"GET /v1/meta":"This document.","GET /v1/yield":"Theoretical yield (moles & mass) and percent yield from the limiting reagent.","GET /v1/mole-mass":"Convert between moles, mass and particle count for a given molar mass.","GET /v1/limiting-reagent":"Limiting reagent, reaction extent and excess remaining from two reactants and their coefficients."},"description":"Reaction stoichiometry calculator: limiting reagent and excess, theoretical and percent yield, and mole–mass–particle conversions via Avogadro's number."},"meta":{"timestamp":"2026-06-05T11:30:39.340Z","request_id":"50999c86-cc3f-46a0-bf87-c0219cec34b1"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":3500,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":600,"monthly_call_quota":42000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1600,"monthly_call_quota":240000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":4900,"monthly_call_quota":1400000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/stoichiometry-api"}