API · /plumbing-api

Plumbing Code API

healthy 4,055 Subscribers

Plumbing-code sizing maths as an API, computed locally and deterministically — the fixture-unit and pipe-sizing numbers a plumber, designer or inspector runs from the code book. The dfu endpoint totals drainage fixture units for a set of fixtures (IPC Table 709.1): pass a list like toilet:2,lavatory:3,shower:1,kitchen_sink:1 and it weights each by its discharge — a toilet is 3, a lavatory 1, a tub or shower 2 — for a total of 13, with a grouped full bathroom counting as 6 rather than the sum of its parts. The pipe-size endpoint gives the minimum building-drain size for a DFU load at a slope (IPC Table 710.1(1)): the smallest pipe whose capacity meets the load, so 50 DFU at a quarter-inch-per-foot fall needs a 4-inch drain, with the reminder that any drain carrying a water closet is a 3-inch minimum. The supply-gpm endpoint reads probable peak water demand off the Hunter curve: diversity means 100 supply fixture units draws only about 54 GPM, not the sum of every fixture running at once — the number you size the water service against. Everything is computed locally and deterministically, so it is instant and private. Ideal for plumbing-design and estimating apps, code-check and permit tools, MEP-engineering calculators, and trade-school aids. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. Based on the IPC — verify against the code adopted in your jurisdiction.

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

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

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

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

API health

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

Pricing

Pick a tier — billed monthly, cancel anytime.

Free

Free

  • 400 calls / month
  • 2 requests / second
  • Hard cap (429 above quota, no overage)
  • 400 calls/month
  • 2 req/sec
  • DFU + pipe size + supply GPM
  • No credit card
Sign in to subscribe

Starter

€5.90 /month

  • 10,500 calls / month
  • 6 requests / second
  • Hard cap (429 above quota, no overage)
  • 10,500 calls/month
  • 6 req/sec
  • IPC tables & Hunter curve
  • Email support
Sign in to subscribe

Pro

€18.30 /month

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

Mega

€53.80 /month

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

Built by

Related APIs

Other APIs with overlapping tags.

Septic System API

Septic-system sizing as an API, computed locally and deterministically with the typical US onsite-wastewater rules of thumb. The flow endpoint estimates the design wastewater flow for a home from its number of bedrooms (assuming two people per bedroom) or an explicit occupancy, at a default 60 gallons per person per day, returning the daily flow in US gallons and litres. The tank endpoint recommends a septic tank size as the larger of a retention-based size (flow × retention days, default two days) and the typical bedroom-based code minimum (≤3 bedrooms 1,000, 4 bedrooms 1,200, 5 bedrooms 1,500, 6 bedrooms 2,000 US gallons), and tells you which one governs. The drainfield endpoint sizes the soil absorption (leach) field: it divides the daily flow by a soil loading rate — given directly or looked up from a percolation rate in minutes per inch — to get the absorption area, then divides by the trench width to get the trench length, in both imperial and metric. Everything is computed locally and deterministically, so it is instant and private. An estimating aid, not a code-stamped design — always confirm with your local health authority. Ideal for plumbing and septic-installer tools, rural real-estate and land apps, home-building and permitting calculators, and inspection software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is septic / onsite-wastewater sizing; for storage-tank volume and fill level use a tank API.

api.oanor.com/septic-api

Water Hardness API

Water-hardness maths as an API, computed locally and deterministically. The convert endpoint converts a hardness value between all the common units — parts per million / milligrams per litre as calcium carbonate, grains per US gallon, German degrees (°dH), French degrees (°f), English or Clark degrees, and millimoles per litre — passing everything through ppm (1 gpg = 17.118 ppm, 1 °dH = 17.848, 1 °f = 10, 1 °Clark = 14.254), and classifies the result. The classify endpoint labels a value as soft, moderately hard, hard or very hard on the USGS/WHO scale. The softener endpoint sizes a water softener: from the hardness and the household water use it works out the grains of hardness removed per day and the grain capacity needed between regenerations. Everything is computed locally and deterministically, so it is instant and private. Ideal for water-treatment and plumbing tools, aquarium and pool apps, appliance and softener sizing, and home and lab software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is water-hardness conversion; for general unit conversion use a unit-conversion API and for swimming-pool dosing use a pool API.

api.oanor.com/hardness-api

Open Channel Flow API

Open-channel flow maths as an API, computed locally and deterministically with the Manning equation. The flow endpoint computes the discharge and velocity of water in an open channel — rectangular, trapezoidal, triangular or circular (a part-full pipe) — from the flow depth, the channel dimensions, the channel slope and the Manning roughness coefficient n: it works out the flow area, the wetted perimeter and the hydraulic radius, then applies Q = (1/n)·A·R^(2/3)·S^(1/2) and V = Q/A, reporting the discharge in cubic metres per second and hour, litres per second, cubic feet per second and US gallons per minute. The normal-depth endpoint reverses it: given a target discharge it solves for the normal depth by bisection and returns the resulting area, velocity and a discharge check. The roughness endpoint is a reference of typical Manning n values, from smooth PVC (0.009) and concrete (0.013) through earth and gravel to rocky natural streams (0.05); pass a material name or an explicit n. Dimensions are metric (metres by default, or cm, mm, ft, in). Everything is computed locally and deterministically, so it is instant and private. Ideal for civil and drainage engineering tools, stormwater and culvert design, irrigation and hydrology apps, and environmental modelling. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is open-channel (Manning) hydraulics; for full-pipe flow rate from diameter and velocity use a pipe-flow API.

api.oanor.com/manning-api

Industrial Coatings API

Industrial and protective-coatings maths as an API, computed locally and deterministically — the film-build numbers a coatings inspector, painter or estimator works to, the ones simple paint estimating skips. The coverage endpoint gives theoretical and practical coverage from the coating's volume solids and the target dry film thickness: coverage = 1604 × the volume-solids fraction ÷ the DFT in mils, where 1604 is the square feet a gallon covers at one mil — so a 50 %-solids coating at 2 mils dry covers about 401 ft² per gallon, less a loss factor for overspray and surface profile. The film-thickness endpoint converts between wet and dry film thickness through the volume solids: WFT = DFT ÷ the solids fraction, because the solvent flashes off and the film shrinks, so a 50 %-solids coating laid 4 mils wet dries to 2 mils — the number you check with a wet-film comb as you spray. The transfer-efficiency endpoint gives the real material needed: theoretical gallons ÷ the transfer efficiency, since conventional spray lands only ~25 % on the part, HVLP ~65 %, electrostatic up to ~95 %. Everything is computed locally and deterministically, so it is instant and private. Ideal for coatings-estimating and inspection apps, industrial-painting and protective-coating tools, NACE/SSPC study aids, and spec calculators. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. For simple wall-paint area estimating use a paint API.

api.oanor.com/coating-api

Frequently asked questions

Quick answers about pricing, quotas, and integration.

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