API · /saunaheater-api

Sauna Heater API

healthy 4,237 Subscribers

Sauna-heater sizing maths as an API, computed locally and deterministically — the heater-power, stone-mass and electrical numbers a sauna builder, installer or wellness retailer sizes a cabin with. The heater-size endpoint gives the power: about 1 kW per 1.3 m³ of well-insulated cabin (room volume ÷ 1.3), with cold surfaces the heater must also warm — a glass door or wall, bare stone, tile or uninsulated timber — adding roughly 1.2 m³ of equivalent volume per square metre, so a 10 m³ room with a 2 m² glass door wants about a 10 kW heater, rounded up to the next standard size. The stones endpoint gives the recommended sauna-stone mass, roughly 10–20 kg per kW (more stones for a softer, steamier löyly, fewer for a faster warm-up), with a note to use proper peridotite/olivine stones stacked loosely. The electrical endpoint gives the current the resistive heater draws — power ÷ voltage for single-phase or ÷ (√3 × voltage) for three-phase, since most heaters above ~4 kW are wired three-phase to keep the per-leg current and cable size down — to size the breaker and the dedicated RCD-protected circuit. Everything is computed locally and deterministically, so it is instant and private. Ideal for sauna and wellness retailers, home-improvement and DIY tools, and HVAC/electrical estimating apps. Pure local computation — no key, no third-party service, instant. Estimates — follow the heater maker's chart and local wiring code. 3 compute endpoints. For steam-boiler maths use a boiler API; for room heat loss a U-value API.

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

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

/api/saunaheater-api/openapi.json
/api/saunaheater-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,237
active
Total calls
0
last 7 days
status Full status page → · 4 probes/24h

Pricing

Pick a tier — billed monthly, cancel anytime.

Free

Free

  • 9,600 calls / month
  • 2 requests / second
  • Hard cap (429 above quota, no overage)
  • 9,600 calls/month
  • 2 req/sec
  • Heater size + stones + electrical
  • No credit card
Sign in to subscribe

Starter

€6.60 /month

  • 93,000 calls / month
  • 6 requests / second
  • Hard cap (429 above quota, no overage)
  • 93,000 calls/month
  • 6 req/sec
  • Cold-surface allowances & phases
  • Email support
Sign in to subscribe

Pro

€24.80 /month

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

Mega

€76.00 /month

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

Built by

Related APIs

Other APIs with overlapping tags.

Body Fat API

Body-fat-percentage and body-composition maths as an API, computed locally and deterministically. The navy endpoint applies the US Navy circumference method — for men %BF = 495/(1.0324 − 0.19077·log10(waist − neck) + 0.15456·log10(height)) − 450, and for women a formula that adds the hip measurement — to estimate body fat from a tape measure alone, returning the percentage and the fitness category (essential, athletes, fitness, acceptable or obese); a man of 178 cm with a 40 cm neck and 90 cm waist reads about 18.7 %. The deurenberg endpoint gives the BMI-based estimate %BF = 1.20·BMI + 0.23·age − 10.8·(1 if male) − 5.4 from BMI or weight and height plus age. The composition endpoint splits a total weight into fat mass and lean (fat-free) mass from a body-fat percentage. Circumferences and height are in centimetres and weight in kilograms. Everything is computed locally and deterministically, so it is instant and private. Ideal for fitness, wellness, gym, nutrition, body-tracking and health-education app developers, body-composition and progress-tracking tools, and coaching software. These are estimation formulas, not a substitute for DEXA or professional assessment. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is body-fat percentage; for body-mass index use a BMI API and for basal metabolic rate a BMR API.

api.oanor.com/bodyfat-api

Deck Builder API

Deck-building maths as an API, computed locally and deterministically — the board, joist and fastener counts a homeowner or contractor needs to material out a rectangular deck. The boards endpoint turns the deck size into a real shopping list: rows = deck width ÷ (board width + gap), rounded up, so a 16 ft × 12 ft deck with a 5.5-inch board face (a 5/4×6) and a 1/8-inch gap needs 26 rows; boards run the length, each row takes one 16 ft board, and a 10 % waste allowance brings it to 29 boards plus the linear footage and the deck area. The joists endpoint frames it: joists are spaced along the length, so count = ⌊length ÷ spacing⌋ + 1 — thirteen joists at 16-inch on-center (seventeen at 12-inch for stronger or diagonal decking), each spanning the width, plus two rim joists and a ledger as total framing linear feet. The fasteners endpoint counts the screws: every decking row crosses every joist once and is fastened with two face screws there, so a 16×12 deck takes 26 × 13 × 2 = 676 screws, about 744 with waste — or one hidden clip per intersection. Everything is computed locally and deterministically, so it is instant and private. Ideal for construction, contractor, home-improvement, building-materials and renovation app developers, deck-estimator and takeoff tools, and lumber-yard calculators. Pure local computation — no key, no third-party service, instant. US units (feet/inches). Live, nothing stored. 3 compute endpoints. Rectangular decks; for indoor floor area use a flooring API.

api.oanor.com/deck-api

Flooring & Tile API

Flooring and tiling material-estimation maths as an API, computed locally and deterministically. The tile endpoint computes how many tiles a floor needs — the floor area (given directly or as length × width) divided by the tile area, with a waste allowance for cuts and breakage (10 % by default) — and, given the tiles per box, how many boxes to buy. The packs endpoint sizes laminate, vinyl or carpet from the coverage printed on each pack: packs = ceil(area·(1+waste) / coverage per pack), with the total coverage supplied. The grout endpoint estimates the grout in kilograms for a tiled area from the tile size, the joint width and the tile thickness, ((A+B)/(A·B))·joint·thickness·density per square metre. Everything is computed locally and deterministically, so it is instant and private. Ideal for home-improvement, renovation and trade app developers, DIY and material-ordering tools, and builder and retailer calculators. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is floor-covering estimation; for wall paint use a paint API, for roofing use a roofing API and for concrete use a concrete API.

api.oanor.com/flooring-api

Cable Tray Fill API

Cable-tray fill engineering maths as an API, computed locally and deterministically from NEC Article 392 — the allowable-fill, single-layer and tray-width numbers an electrician, estimator or designer runs for a tray run. The fill endpoint applies NEC 392.22(A)(1) Column 1 for multiconductor power and lighting cables no larger than 4/0 in a ladder or ventilated-bottom tray: the total cable cross-sectional area is capped at the tray width × 7/6, so a 12-inch tray allows 14 in² — sum every cable's csa, get the percentage fill and whether it is within code, with the spare area left. The large-cable endpoint covers cables 4/0 and larger, which must lie in a single layer with the sum of their diameters not exceeding the tray width — no stacking — so it returns the spare width and the code check. The min-width endpoint inverts the rule to size the tray: minimum width = cable area × 6/7, rounded up to a standard 6/9/12/18/24/30/36-inch width, leaving room for spare capacity and future cables. Everything is computed locally and deterministically, so it is instant and private. Ideal for electrical-design and estimating tools, industrial and OSP utilities, and code-check calculators. Pure local computation — no key, no third-party service, instant. Ladder/ventilated trays; solid-bottom and mixed fills use the other NEC columns, and ampacity must be derated for fill. 3 compute endpoints. For conduit and box fill use a conduit API.

api.oanor.com/cabletray-api

Frequently asked questions

Quick answers about pricing, quotas, and integration.

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