API · /turnover-api

Water Turnover API

healthy 3,899 Subscribers

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
Get an API key Try in playground → Contact provider

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

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

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

API health

healthy
Uptime
100.00%
Server probes · 24h
Avg latency
84 ms
Server probes · 24h
Subscribers
3,899
active
Total calls
6
last 7 days
status Full status page → · 9 probes/24h

Pricing

Pick a tier — billed monthly, cancel anytime.

Free

Free

  • 5,350 calls / month
  • 2 requests / second
  • Hard cap (429 above quota, no overage)
  • 5,350 calls/month
  • 2 req/sec
  • Turnover time + aquarium filtration
  • No credit card
Sign in to subscribe

Starter

€4.25 /month

  • 53,500 calls / month
  • 6 requests / second
  • Hard cap (429 above quota, no overage)
  • 53,500 calls/month
  • 6 req/sec
  • Required flow, head loss, rated pump
  • Email support
Sign in to subscribe

Pro

€11.75 /month

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

Mega

€37.00 /month

  • 1,410,000 calls / month
  • 40 requests / second
  • Hard cap (429 above quota, no overage)
  • 1,410,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

Pool Chemistry API

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

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

Aquascape API

Planted-aquarium and aquascaping maths as an API, computed locally and deterministically — the dosing and water numbers a high-tech planted tank runs on, not the rolls of a dice. The co2 endpoint gives the dissolved CO2 concentration from pH and carbonate hardness using the classic relationship CO2 (ppm) ≈ 3 × KH (dKH) × 10^(7 − pH), and flags it against the 15–30 ppm window plants want — at pH 6.6 and KH 4 you are at about 30 ppm, the top of the safe zone, while pH 7.0 and KH 3 is a carbon-limited 9 ppm. The fertilizer endpoint turns a dry-salt dose into the nutrient ppm it adds, the heart of Estimative Index dosing: ppm = grams × the nutrient mass fraction × 1000 ÷ tank litres, so 1 g of KNO3 in 100 litres adds 6.1 ppm nitrate and 3.9 ppm potassium, and it knows KNO3, KH2PO4, K2SO4, MgSO4 (Epsom) and Ca(NO3)2. The substrate endpoint sizes the substrate from the footprint and target depth — a 60 × 30 cm tank at 6 cm deep needs 10.8 litres, two 9-litre aquasoil bags. Everything is computed locally and deterministically, so it is instant and private. Ideal for aquascaping and planted-tank apps, fertiliser-dosing calculators, CO2-rig tools, and aquarium-shop and hobby sites. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. For a tank water volume or fish stocking use an aquarium API; for pool chemistry use a pool API.

api.oanor.com/aquascape-api

Frequently asked questions

Quick answers about pricing, quotas, and integration.

How do I get an API key for Water Turnover API?
Sign up for free at oanor.com, generate an API key from the developer dashboard, and call Water Turnover API with the x-oanor-key header. No credit card needed for the free tier.
What's the rate limit for Water Turnover 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 Water Turnover API cost?
Water Turnover API has a free tier with 100 calls / month. Paid plans start at €4.25 / 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 Water Turnover API GDPR-compliant?
All requests to Water Turnover 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/turnover-api/SOME_PATH \
  -H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/turnover-api/SOME_PATH", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/turnover-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/turnover-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.