Balusters for a code-safe gap
API · /handrail-api
Handrail & Baluster API
Railing and baluster layout maths as an API, computed locally and deterministically — the baluster-count, spacing and post numbers a deck builder, fabricator or balustrade designer sets a guardrail out with. The baluster-count endpoint gives the smallest number of balusters that keeps every gap within the safety limit: between two posts n balusters leave n+1 gaps, so the count = ceil((rail length − max gap) ÷ (baluster width + max gap)). The usual guardrail limit is a 100 mm (4-inch) sphere — a child-safety rule — so a 2000 mm rail with 40 mm balusters needs 14 of them at even 96 mm gaps; round up, because one fewer opens the gaps past the limit. The layout endpoint sets out a known count evenly: the gap = (rail length − total baluster width) ÷ (count + 1), the centre-to-centre pitch = baluster width + gap, and the first baluster's centre sits one gap plus half a baluster from the post face, so you mark the first centre and step off the pitch with the last gap landing equal to the first. The post-count endpoint sizes the frame: a run needs one more post than spans, spans = ceil(run ÷ max post spacing), posts = spans + 1, even spacing = run ÷ spans — a 6 m run at a 1.8 m max takes 4 spans and 5 posts at a tidy 1.5 m. Everything is computed locally and deterministically, so it is instant and private. Ideal for deck and balustrade design tools, fabrication and estimating apps, and building calculators. Pure local computation — no key, no third-party service, instant. Uses the common 100 mm infill rule — confirm your local code. 3 compute endpoints. For stair rise and run use a stair API; for fence pickets a fence API.
API health
healthy- Uptime
- 100.00%
- Server probes · 24h
- Avg latency
- 88 ms
- Server probes · 24h
- Subscribers
- 4,589
- active
- Total calls
- 4
- last 7 days
Pricing
Pick a tier — billed monthly, cancel anytime.
Free
Free
- 7,250 calls / month
- 2 requests / second
- Hard cap (429 above quota, no overage)
- 7,250 calls/month
- 2 req/sec
- Baluster count + layout + posts
- No credit card
Starter
€7.05 /month
- 58,500 calls / month
- 6 requests / second
- Hard cap (429 above quota, no overage)
- 58,500 calls/month
- 6 req/sec
- Code-gap & even set-out
- Email support
Pro
€24.10 /month
- 251,000 calls / month
- 15 requests / second
- Hard cap (429 above quota, no overage)
- 251,000 calls/month
- 15 req/sec
- Design & estimating pipelines
- Priority support
Mega
€74.80 /month
- 1,165,000 calls / month
- 40 requests / second
- Hard cap (429 above quota, no overage)
- 1,165,000 calls/month
- 40 req/sec
- Platform & fabricator scale
- Dedicated SLA
Built by
Related APIs
Other APIs with overlapping tags.
Arch Geometry API
Circular-segment arch geometry as an API, computed locally and deterministically — the radius, arc-length and set-out numbers a mason, joiner, stonemason or CAD user lays a segmental arch out with. A segmental arch is an arc of a circle struck through the two springings and the crown: the from-span-rise endpoint takes the span and the rise (the height of the crown above the springing line) and returns the radius = (span²/4 + rise²) ÷ (2·rise), the central angle it subtends, the arc length along the curve, and the segment area of the void below it — flatter arches with a small rise have surprisingly huge radii. The from-radius-angle endpoint inverts it, returning the chord (span), the rise (sagitta), the arc length and the area from a known radius and central angle, the way a curve struck with a trammel or a router on a pivot is described. The setout-ordinates endpoint gives the practical numbers to mark a template: the rise of the arc above a straight base line at equally spaced stations across the span (y = √(R² − x²) − (R − rise)), so you can plot the heights, connect them and cut a plywood former or bend a batten without a giant compass — the ends come out zero at the springings and the middle equals the rise at the crown. Everything is computed locally and deterministically, so it is instant and private. Ideal for masonry and joinery layout tools, stair and window-head design, and CAD and woodworking calculators. Pure local computation — no key, no third-party service, instant. Segmental (up to a semicircle) arcs. 3 compute endpoints. For road curves use a horizontal- or vertical-curve API; for plain shape areas a geometry API.
api.oanor.com/arch-api
Mobile Crane Lift API
Mobile-crane lift-planning maths as an API, computed locally and deterministically — the load-moment, tipping-capacity and outrigger-pad numbers a crane operator, lift planner or rigging engineer checks a pick with. The load-moment endpoint gives the load × its working radius (the horizontal distance from the slew centre to the hook), the single figure a crane's rated-capacity limiter watches: a 5-tonne load at 8 m is a 40 tonne-metre moment, the same as 10 tonnes at 4 m, which is why chart capacity falls steeply as the boom luffs out — moment, not weight, tips the crane. The capacity endpoint gives a simplified tipping balance about the fulcrum: the load that just tips = counterweight × its radius ÷ the load radius, and the rated safe load is a stability fraction of that (~75 % on outriggers, ~66 % on crawlers per the standards) — a teaching/sanity figure that ignores the boom and superstructure, never a substitute for the load chart. The outrigger-pad endpoint sizes the float: required pad area = the outrigger leg load ÷ the soil's allowable bearing pressure (and the side of a square mat), since overloading weak ground is a leading cause of overturns — a 30-tonne leg on 200 kPa wants about a 1.2 m square mat. Everything is computed locally and deterministically, so it is instant and private. Ideal for lift-planning and rigging tools, construction and crane-operations apps, and site-safety utilities. Pure local computation — no key, no third-party service, instant. Simplified — always use the manufacturer load chart. 3 compute endpoints. For sling and WLL loads use a rigging API.
api.oanor.com/crane-api
Ladder Safety API
Ladder-safety maths as an API, computed locally and deterministically — the angle, reach and load numbers that keep a ladder from sliding out or buckling. The angle endpoint applies the 4:1 rule: the base goes out one foot for every four feet of working length, which lands the ladder at about 75.5° — a 24-foot ladder sits 6 feet from the wall and reaches roughly 23 feet up, steep enough not to tip back and shallow enough not to slide. The extension endpoint gives the usable length and reach of a two-section extension ladder, which loses the overlap the sections share (3 feet up to 36, 4 to 48, 5 beyond), and the working height at the safe angle — remembering the ladder must extend 3 feet above a roof edge you step onto. The duty-rating endpoint turns a total load — your weight plus tools and materials, not just bodyweight — into the right duty class, from Type III household (200 lb) through I industrial (250) to IAA professional (375). Everything is computed locally and deterministically, so it is instant and private. Ideal for construction-safety and trades apps, jobsite and rental tools, OSHA training aids, and home-improvement sites. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. Educational — always follow the manufacturer's labels and OSHA/ANSI rules.
api.oanor.com/ladder-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 Handrail & Baluster API?
What's the rate limit for Handrail & Baluster API?
How much does Handrail & Baluster API cost?
Can I cancel my subscription anytime?
Is Handrail & Baluster 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/handrail-api/SOME_PATH \
-H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/handrail-api/SOME_PATH", {
headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/handrail-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/handrail-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.