API · /poolchem-api

Pool Chemistry API

healthy 4,962 Subscribers

Swimming-pool water-chemistry maths as an API, computed locally and deterministically — the dosing and water-balance numbers a pool service tech or owner runs at every visit. The chlorine endpoint works out how much of a product to add to raise free chlorine from the current to a target ppm in a given volume: dose (g) = Δppm × litres / 1000 ÷ the product's available-chlorine fraction, with built-in strengths for liquid chlorine (12.5 %), household bleach (6 %), cal-hypo (65 %), dichlor (56 %) and trichlor (90 %), or your own — raising 50,000 litres by 2 ppm needs 800 g of liquid chlorine or 154 g of cal-hypo. The lsi endpoint computes the Langelier Saturation Index, LSI = pH + temperature factor + calcium factor + alkalinity factor − 12.1, the standard measure of whether water is corrosive (below −0.3, eating plaster and metal), balanced (−0.3 to +0.3) or scaling (above +0.3), with a cyanuric-acid correction to the carbonate alkalinity. Everything is computed locally and deterministically, so it is instant and private. Ideal for pool-service, spa, water-treatment and home-maintenance app developers, dosing and water-balance tools, and pool-care education. Pure local computation — no key, no third-party service, instant. Metric: litres, ppm (mg/L), °C. Live, nothing stored. 2 compute endpoints. Always confirm with a test kit — this is an aid, not a substitute. For pool water volume use a pool-geometry API.

api.oanor.com/poolchem-api
Get an API key Try in playground → Contact provider

Machine-readable spec so AI agents can integrate this API.

/api/poolchem-api/openapi.json
/api/poolchem-api/llms.txt

Discovery: GET /api/index.json lists every API.

API health

healthy
Uptime
100.00%
Server probes · 24h
Avg latency
96 ms
Server probes · 24h
Subscribers
4,962
active
Total calls
24
last 7 days
status Full status page → · 27 probes/24h

Pricing

Pick a tier — billed monthly, cancel anytime.

Free

Free

  • 5,450 calls / month
  • 2 requests / second
  • Hard cap (429 above quota, no overage)
  • 5,450 calls/month
  • 2 req/sec
  • Chlorine dosing + Langelier index
  • No credit card
Sign in to subscribe

Starter

€4.15 /month

  • 51,000 calls / month
  • 6 requests / second
  • Hard cap (429 above quota, no overage)
  • 51,000 calls/month
  • 6 req/sec
  • 5 chlorine products, CYA correction
  • Email support
Sign in to subscribe

Pro

€11.50 /month

  • 209,000 calls / month
  • 15 requests / second
  • Hard cap (429 above quota, no overage)
  • 209,000 calls/month
  • 15 req/sec
  • Pool-service & dosing pipelines
  • Priority support
Sign in to subscribe

Mega

€36.00 /month

  • 1,320,000 calls / month
  • 40 requests / second
  • Hard cap (429 above quota, no overage)
  • 1,320,000 calls/month
  • 40 req/sec
  • Platform scale
  • Dedicated SLA
Sign in to subscribe

Built by

Related APIs

Other APIs with overlapping tags.

Pool Heating API

Swimming-pool and spa heating maths as an API, computed locally and deterministically — the thermodynamics a pool owner, builder or service tech sizes a heater and budgets a heat-up with. The heat-time endpoint gives the hours to warm a body of water: energy = gallons × 8.34 lb/gal × the temperature rise in °F (that many BTU), divided by the heater's BTU/hr output — raising 20,000 gallons by 10 °F is 1,668,000 BTU, about 4.2 hours on a 400,000 BTU/hr gas heater before surface losses. The heater-size endpoint inverts it: the output you need to hit a temperature rise within a target time, so the same job in 24 hours wants only about 69,500 BTU/hr. The heat-pump endpoint gives a heat pump's electricity and cost — kWh = thermal BTU ÷ 3412 ÷ the COP (5–6 for pool units in mild weather) — so that 1,668,000 BTU costs about 89 kWh at a COP of 5.5, a fraction of resistance heat. Pass the temperature rise directly, or a current and target temperature. Everything is computed locally and deterministically, so it is instant and private. Ideal for pool-builder and service apps, heater-sizing and quote tools, spa and hot-tub calculators, and energy-comparison sites. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. Ideal figures — add for surface and wind losses. For pool chemistry use a pool-chemistry API.

api.oanor.com/poolheat-api

Water Turnover API

Water turnover and circulation maths as an API, computed locally and deterministically — the flow-rate numbers a pool tech or aquarist sizes a pump to. The turnover endpoint relates a body of water's volume to its flow: turnover time = volume ÷ flow rate, and turnovers per day = 24 ÷ turnover time, so a 50,000-litre pool circulated at 10,000 L/h turns over in 5 hours, almost 5 times a day (pools usually target an 8–12 hour turnover, 2–4 a day); give a target turnover time instead and it returns the flow rate to size the pump to. The aquarium endpoint accounts for the real-world head loss that robs a pump of flow: effective flow = rated flow × (1 − head loss), so a 1,500 L/h pump at 40 % loss really moves 900 L/h, about 4.5× a 200-litre tank an hour; give a target turnovers-per-hour (freshwater 4–6×, planted 5–10×, reef 10×+) and it returns the rated pump to buy so losses still leave enough flow. Everything is computed locally and deterministically, so it is instant and private. Ideal for pool-service, aquarium, hydroponics, water-feature and pond app developers, pump-sizing and circulation tools, and equipment education. Pure local computation — no key, no third-party service, instant. Use consistent volume and flow units. Live, nothing stored. 2 compute endpoints. For pump power and head use a pump API; for pool chemistry a pool-chemistry API.

api.oanor.com/turnover-api

Swimming Pool Calculator API

Swimming-pool maths as an API, computed locally and deterministically. The volume endpoint computes the water volume of a rectangular, round or oval pool — in litres, US gallons and cubic metres — from the dimensions and either an average depth or separate shallow and deep depths (it averages them), in feet or metres. The dose endpoint computes how much of a chemical to add to raise a level by a target ppm: give the pool volume and the desired increase, and either the product strength percent or a preset (cal-hypo, dichlor, trichlor, liquid chlorine, bleach), and it returns the amount in grams, kilograms, ounces and pounds. The salt endpoint computes the salt needed to reach a target salinity in a saltwater pool from the current and target ppm, in kilograms and pounds (and 40 lb bags). Everything is computed locally and deterministically, so it is instant and private. Dosing depends on the actual product strength and your test readings — always follow the product label, add in stages and re-test before adding more. Ideal for pool-service and maintenance apps, pool-builder and retailer tools, and smart-pool and home-automation systems. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is pool maths; for general volume or unit conversion use a unit-conversion API.

api.oanor.com/pool-api

Air Compressor API

Compressed-air maths as an API, computed locally and deterministically — the receiver, pump-up and SCFM numbers a pneumatics tech or shop owner sizes a system with. The receiver-size endpoint gives the tank you need to ride out a demand burst: volume = demand (free-air CFM) × minutes × 14.7 ÷ the usable pressure window (max − min) — pulling 20 CFM for a minute over a 175-to-100 psi window wants about a 30-gallon receiver, the buffer that lets the pump catch up. The pumpup endpoint gives the time to raise a receiver from one pressure to another: volume × pressure rise ÷ (14.7 × compressor CFM), so a 60-gallon tank from 100 to 175 psi on a 15 CFM compressor takes about 2.7 minutes. The scfm endpoint corrects actual CFM to standard CFM for the inlet conditions — SCFM = ACFM × (inlet pressure ÷ 14.696) × (528 ÷ inlet temperature in Rankine) — so a compressor at 5,000 feet delivers about 17 % fewer SCFM than at sea level, the reason you size tools on SCFM, not the nameplate. Everything is computed locally and deterministically, so it is instant and private. Ideal for pneumatics and shop-air apps, compressor-sizing and tool-demand tools, industrial-air calculators, and trade aids. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. Estimates — duty cycle and the pump curve shift real numbers.

api.oanor.com/compressor-api

Frequently asked questions

Quick answers about pricing, quotas, and integration.

How do I get an API key for Pool Chemistry API?
Sign up for free at oanor.com, generate an API key from the developer dashboard, and call Pool Chemistry API with the x-oanor-key header. No credit card needed for the free tier.
What's the rate limit for Pool Chemistry API?
Free tier allows 1 request per second. Paid plans scale up to 50 requests per second on the Mega tier. Hard limits return HTTP 429 above the quota — no surprise overage charges.
How much does Pool Chemistry API cost?
Pool Chemistry API has a free tier with 100 calls / month. Paid plans start at €4.15 / month with higher quotas and faster rate limits.
Can I cancel my subscription anytime?
Yes. Plans are billed monthly and you can cancel anytime from your billing dashboard. No long-term contracts and no cancellation fee.
Is Pool Chemistry API GDPR-compliant?
All requests to Pool Chemistry API go through our EU-based gateway. Your upstream API key never leaves our server and no personal data is shared with the upstream provider beyond the request you send.

Pick an endpoint from the list on the left to see its details and try it.

Code snippets

Sign up to get an API key, then call any path under your slug.

curl https://api.oanor.com/poolchem-api/SOME_PATH \
  -H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/poolchem-api/SOME_PATH", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/poolchem-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
    "https://api.oanor.com/poolchem-api/SOME_PATH",
    headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())

Ratings

Sign in to rate.

No reviews yet.

Discussion

Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.

Sign in to start a thread or reply.

Sign in

New thread

/ 4000

📌 Pinned 🔒 Locked

·

· ·

/ 4000

🔒 This thread is locked — no new replies.

  • No threads yet — start the discussion.

Support

Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.

Sign in to open a support ticket.

Sign in

Open new ticket

Describe what you need help with. The provider team gets an email and replies on the ticket page.

  • No tickets yet for this API.

Subscription active — calls can start immediately.

Send your first request —

Subscription active — copy a snippet and fire off your first call.