# Sauna Heater API
> 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.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/saunaheater-api/..."
```

## Pricing
- **Free** (Free) — 9,600 calls/Mo, 2 req/s
- **Starter** ($7/Mo) — 93,000 calls/Mo, 6 req/s
- **Pro** ($25/Mo) — 378,000 calls/Mo, 15 req/s
- **Mega** ($76/Mo) — 1,720,000 calls/Mo, 40 req/s

## Endpoints

### Sauna

#### `GET /v1/electrical` — Heater current

**Parameters:**
- `heater_kw` (query, required, string) — Heater power (kW) Example: `8`
- `voltage` (query, optional, string) — Voltage (V, default 400) Example: `400`
- `phase` (query, optional, string) — Phase: 1 or 3 (default 3) Example: `3`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/saunaheater-api/v1/electrical?heater_kw=8&voltage=400&phase=3"
```

#### `GET /v1/heater-size` — Required heater kW

**Parameters:**
- `room_volume_m3` (query, required, string) — Room volume (m³) Example: `10`
- `uninsulated_area_m2` (query, optional, string) — Bare/uninsulated wall area (m², default 0) Example: `0`
- `glass_area_m2` (query, optional, string) — Glass area (m², default 0) Example: `2`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/saunaheater-api/v1/heater-size?room_volume_m3=10&uninsulated_area_m2=0&glass_area_m2=2"
```

#### `GET /v1/stones` — Recommended stone mass

**Parameters:**
- `heater_kw` (query, required, string) — Heater power (kW) Example: `8`
- `kg_per_kw` (query, optional, string) — Stones per kW (default 15) Example: `15`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/saunaheater-api/v1/stones?heater_kw=8&kg_per_kw=15"
```

### Meta

#### `GET /v1/meta` — Spec

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/saunaheater-api/v1/meta"
```


---
Marketplace page: https://www.oanor.com/api/saunaheater-api
OpenAPI spec: https://www.oanor.com/api/saunaheater-api/openapi.json
