Dissolved CO2 from pH and KH
API · /aquascape-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 health
healthy- Uptime
- 100.00%
- Server probes · 24h
- Avg latency
- 114 ms
- Server probes · 24h
- Subscribers
- 4,068
- active
- Total calls
- 0
- last 7 days
Pricing
Pick a tier — billed monthly, cancel anytime.
Free
Free
- 300 calls / month
- 2 requests / second
- Hard cap (429 above quota, no overage)
- 300 calls/month
- 2 req/sec
- CO2 + fertilizer + substrate
- No credit card
Starter
€5.20 /month
- 9,000 calls / month
- 6 requests / second
- Hard cap (429 above quota, no overage)
- 9,000 calls/month
- 6 req/sec
- All salts, EI dosing
- Email support
Pro
€17.40 /month
- 60,000 calls / month
- 14 requests / second
- Hard cap (429 above quota, no overage)
- 60,000 calls/month
- 14 req/sec
- Dosing & shop pipelines
- Priority support
Mega
€51.80 /month
- 210,000 calls / month
- 34 requests / second
- Hard cap (429 above quota, no overage)
- 210,000 calls/month
- 34 req/sec
- Platform scale
- Dedicated SLA
Built by
Related APIs
Other APIs with overlapping tags.
Greenhouse Gas Emissions API
Independent greenhouse-gas emissions data as an API — powered by Climate TRACE, the coalition (backed by Al Gore) that monitors global emissions from satellites, sensors and AI rather than self-reported figures. Get any country's emissions for a given year — CO2, methane (CH4) and nitrous oxide (N2O) in tonnes, plus CO2-equivalent over 100- and 20-year horizons — together with the country's global emissions rank and its share of total world emissions; pass several countries at once to compare them side by side. List the full set of sectors, subsectors and gases that Climate TRACE tracks (power, transportation, manufacturing, agriculture, fossil-fuel operations, waste and more). From China and the United States to any nation on Earth, with data from 2015 onward, it is ideal for climate, ESG, sustainability, policy, journalism and research applications. An independent emissions-inventory data source — distinct from electricity-grid carbon intensity, activity footprint calculators and climate classification. Open data from Climate TRACE (CC BY 4.0).
api.oanor.com/climatetrace-api
Carbon Footprint API
Estimate CO2e emissions for everyday activities using the official DEFRA 2023 GHG conversion factors: road and rail travel (per kilometre by vehicle type, split across passengers), flights (by airport IATA pair with great-circle distance, or by distance, across cabin classes and round trips), grid electricity (by kilowatt-hour and country carbon intensity) and direct fuel combustion (by litres and fuel type). A factors endpoint exposes every emission factor, supported vehicle and fuel type, and the country grid-intensity table. Each result returns CO2e in kilograms, tonnes and grams. Every endpoint accepts input via the query string or the request body and returns lean JSON. Pure server-side compute (no third-party upstream), so responses are instant and always available. Ideal for travel and booking flows, sustainability dashboards, ESG and Scope-3 reporting, and carbon-aware product features.
api.oanor.com/carbonfootprint-api
Fertilizer Calculator API
Fertilizer maths as an API, computed locally and deterministically. The rate endpoint works out how much fertilizer product to apply to hit a target nitrogen rate over an area: from the N-P-K analysis (such as 10-10-10 or 20-5-10), a target pounds of nitrogen per 1000 ft² (or per 100 m²) and the area, it returns the product weight and the pounds of nitrogen, phosphate and potash applied. The nutrients endpoint reports the pounds of nitrogen, P₂O₅ and K₂O — and the elemental phosphorus and potassium — in a bag of a given weight and analysis. The coverage endpoint works out how much area a bag covers at a target nitrogen rate. N-P-K are percent by weight; phosphorus is reported as P₂O₅ and potassium as K₂O following the label convention, with the elemental amounts alongside (P₂O₅ × 0.4364, K₂O × 0.8301). Everything is computed locally and deterministically, so it is instant and private. Ideal for lawn-care and gardening apps, agriculture and turf tools, and landscaping and quoting software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is fertilizer rate maths; for mulch, gravel and topsoil quantities use a landscaping API.
api.oanor.com/fertilizer-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
Frequently asked questions
Quick answers about pricing, quotas, and integration.
How do I get an API key for Aquascape API?
What's the rate limit for Aquascape API?
How much does Aquascape API cost?
Can I cancel my subscription anytime?
Is Aquascape API GDPR-compliant?
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/aquascape-api/SOME_PATH \
-H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/aquascape-api/SOME_PATH", {
headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/aquascape-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/aquascape-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 inNew thread
·
-
Provider answer
🔒 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 inOpen new ticket
Describe what you need help with. The provider team gets an email and replies on the ticket page.
-
·
Urgent - No tickets yet for this API.