{"openapi":"3.1.0","info":{"title":"Sauna Heater API","version":"1.0.0","description":"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.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/saunaheater-api","description":"oanor gateway"}],"tags":[{"name":"Sauna"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/electrical":{"get":{"operationId":"get_v1_electrical","tags":["Sauna"],"summary":"Heater current","description":"","parameters":[{"name":"heater_kw","in":"query","required":true,"description":"Heater power (kW)","schema":{"type":"string"},"example":"8"},{"name":"voltage","in":"query","required":false,"description":"Voltage (V, default 400)","schema":{"type":"string"},"example":"400"},{"name":"phase","in":"query","required":false,"description":"Phase: 1 or 3 (default 3)","schema":{"type":"string"},"example":"3"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/heater-size":{"get":{"operationId":"get_v1_heater_size","tags":["Sauna"],"summary":"Required heater kW","description":"","parameters":[{"name":"room_volume_m3","in":"query","required":true,"description":"Room volume (m³)","schema":{"type":"string"},"example":"10"},{"name":"uninsulated_area_m2","in":"query","required":false,"description":"Bare/uninsulated wall area (m², default 0)","schema":{"type":"string"},"example":"0"},{"name":"glass_area_m2","in":"query","required":false,"description":"Glass area (m², default 0)","schema":{"type":"string"},"example":"2"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/stones":{"get":{"operationId":"get_v1_stones","tags":["Sauna"],"summary":"Recommended stone mass","description":"","parameters":[{"name":"heater_kw","in":"query","required":true,"description":"Heater power (kW)","schema":{"type":"string"},"example":"8"},{"name":"kg_per_kw","in":"query","required":false,"description":"Stones per kW (default 15)","schema":{"type":"string"},"example":"15"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":9600,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":660,"monthly_call_quota":93000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2480,"monthly_call_quota":378000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":7600,"monthly_call_quota":1720000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/saunaheater-api"}