{"openapi":"3.1.0","info":{"title":"Chemical equations","version":"0.1.0","description":"Chemical-reaction maths — balance equations into whole-number coefficients (exact rational null-space), run mole/mass stoichiometry from one known species to another, and find the limiting reagent with theoretical yields.","x-guidance":"Chemical-reaction maths — balance equations into whole-number coefficients (exact rational null-space), run mole/mass stoichiometry from one known species to another, and find the limiting reagent with theoretical yields. Each operation is an HTTP POST to its /v1/<operation> path with a JSON request body (see each operation's requestBody schema) and returns a JSON response. Endpoints are paid per successful call via x402 or MPP (USDC on Base); an unpaid request returns 402 with payment metadata in the WWW-Authenticate header.","contact":{"email":"hello@openverbs.com"}},"x-discovery":{"ownershipProofs":["0xb1401a71756f51464a9962db12f1eb3e9522490cd20010b06d00cf7b7770acfd5f79721f9dfdf2643f8cecd29af3bde9ec133941a386042b32d9886053a70de61b","0xc1c1f11793e18a00fcb7072421f26e89fb75b6aa517fa84370564991f4b10efa024f6f57e4e67eefd20cf46cc01fc5a62d793fa8fbcda04f26c946a3433d73f91b","0x676b474af0ef9ed4809b5d12d2e789b36e52d56215b21f601d71f76620e36ec630347116a7b2b349a3c3681e5db0fbfa76c4169a676b6d6f27864d0e5017284a1c","0xc2ab96522515ed9e9bc4f1a241b774bd48df42e951ddbf7f6aa8fc76f5a96a20421703e1ec402ce7eb1e4eabea3b6e4e4129cf39d56ea91cf4fcf38561fc94fc1c"]},"servers":[{"url":"https://chemeq.openverbs.com"}],"paths":{"/health":{"get":{"summary":"Health check","security":[],"responses":{"200":{"description":"Healthy","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"service":{"type":"string"},"version":{"type":"string"}}}}}}}}},"/v1/balance":{"post":{"summary":"Balance a chemical equation","description":"Balance an equation such as \"H2 + O2 -> H2O\" into the smallest whole-number coefficients using exact rational linear algebra. Equations that cannot be balanced with positive coefficients are clean 400s. Paid endpoint (x402 + MPP). Price: $0.004000 USDC per successful payment.","tags":["balance chemical equation","chemical equation balancer","stoichiometric coefficients","reaction balancing api","balance chemistry reaction","equation to coefficients"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"equation":{"type":"string","minLength":1,"description":"Unbalanced equation, e.g. \"C3H8 + O2 -> CO2 + H2O\". Arrow may be \"->\" or \"=\"."}},"required":["equation"],"additionalProperties":false},"example":{"equation":"H2 + O2 -> H2O"}}}},"responses":{"200":{"description":"`{ balanced, reactants: [{ formula, coefficient }], products: [...] }`.","content":{"application/json":{"schema":{"type":"object","description":"`{ balanced, reactants: [{ formula, coefficient }], products: [...] }`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Balance an equation such as \"H2 + O2 -> H2O\" into the smallest whole-number coefficients using exact rational linear algebra. Equations that cannot be balanced with positive coefficients are clean 400s.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.004000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Balance an equation such as \"H2 + O2 -> H2O\" into the smallest whole-number coefficients using exact rational linear algebra. Equations that cannot be balanced with positive coefficients are clean 400s.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Balance an equation such as \"H2 + O2 -> H2O\" into the smallest whole-number coefficients using exact rational linear algebra. Equations that cannot be balanced with positive coefficients are clean 400s.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/stoichiometry":{"post":{"summary":"Reaction stoichiometry","description":"Given a reaction and a known amount (moles or grams) of one species, compute the amount of a target species. The equation is balanced automatically. Paid endpoint (x402 + MPP). Price: $0.004000 USDC per successful payment.","tags":["reaction stoichiometry calculator","moles to grams chemistry","compute target species","chemical yield from amount","stoichiometry api","mole mass conversion"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"equation":{"type":"string","minLength":1,"description":"Reaction, e.g. \"H2 + O2 -> H2O\"."},"given":{"type":"object","properties":{"species":{"type":"string","minLength":1,"description":"A species appearing in the equation."},"amount":{"type":"number","description":"Known amount of the given species."},"unit":{"type":"string","enum":["mol","g"],"description":"Unit of `amount`. Default \"mol\"."}},"required":["species","amount"],"additionalProperties":false},"target":{"type":"string","minLength":1,"description":"The species to solve for."},"targetUnit":{"type":"string","enum":["mol","g"],"description":"Unit for the target result. Default \"mol\"."}},"required":["equation","given","target"],"additionalProperties":false},"example":{"equation":"H2 + O2 -> H2O","given":{"species":"H2","amount":2,"unit":"mol"},"target":"H2O","targetUnit":"mol"}}}},"responses":{"200":{"description":"`{ balanced, given: { species, moles, grams }, target: { species, moles, grams } }`.","content":{"application/json":{"schema":{"type":"object","description":"`{ balanced, given: { species, moles, grams }, target: { species, moles, grams } }`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Given a reaction and a known amount (moles or grams) of one species, compute the amount of a target species. The equation is balanced automatically.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.004000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Given a reaction and a known amount (moles or grams) of one species, compute the amount of a target species. The equation is balanced automatically.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Given a reaction and a known amount (moles or grams) of one species, compute the amount of a target species. The equation is balanced automatically.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/limiting":{"post":{"summary":"Limiting reagent & theoretical yield","description":"Given a reaction and the supplied amount of every reactant, identify the limiting reagent and compute leftover reactant and theoretical product yields. Paid endpoint (x402 + MPP). Price: $0.004000 USDC per successful payment.","tags":["limiting reagent calculator","theoretical yield api","find limiting reactant","leftover reactant calculation","reaction yield calculator","chemistry limiting reagent"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"equation":{"type":"string","minLength":1,"description":"Reaction, e.g. \"N2 + H2 -> NH3\"."},"amounts":{"type":"array","minItems":1,"description":"Supplied amount of every reactant.","items":{"type":"object","properties":{"species":{"type":"string","minLength":1},"amount":{"type":"number"},"unit":{"type":"string","enum":["mol","g"],"description":"Default \"mol\"."}},"required":["species","amount"],"additionalProperties":false}}},"required":["equation","amounts"],"additionalProperties":false},"example":{"equation":"N2 + H2 -> NH3","amounts":[{"species":"N2","amount":1,"unit":"mol"},{"species":"H2","amount":2,"unit":"mol"}]}}}},"responses":{"200":{"description":"`{ balanced, limitingReagent, reactants: [{ species, moles, consumedMoles, leftoverMoles }], products: [{ species, moles, grams }] }`.","content":{"application/json":{"schema":{"type":"object","description":"`{ balanced, limitingReagent, reactants: [{ species, moles, consumedMoles, leftoverMoles }], products: [{ species, moles, grams }] }`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Given a reaction and the supplied amount of every reactant, identify the limiting reagent and compute leftover reactant and theoretical product yields.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.004000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Given a reaction and the supplied amount of every reactant, identify the limiting reagent and compute leftover reactant and theoretical product yields.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Given a reaction and the supplied amount of every reactant, identify the limiting reagent and compute leftover reactant and theoretical product yields.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}}},"x-service-info":{"categories":["science"],"docs":{"homepage":"https://chemeq.openverbs.com","apiReference":"https://chemeq.openverbs.com/openapi.json"}}}