# 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"
```

**Response:**
```json
{
    "data": {
        "note": "A sauna heater is a resistive load (power factor 1), so the current = power ÷ voltage for single-phase, or ÷ (√3 × voltage) for three-phase. Most heaters above ~4 kW are wired three-phase to keep the per-leg current and wire size down. Size the breaker and cable for this current with the usual margin, and a sauna circuit normally needs its own RCD-protected supply.",
        "inputs": {
            "phase": 3,
            "voltage": 400,
            "heater_kw": 8
        },
        "current_a": 11.55
    },
    "meta": {
        "timestamp": "2026-06-07T08:18:00.896Z",
        "request_id": "2dcf1d63-ba77-4b50-b2a9-c6440001ee48"
    },
    "status": "ok",
    "message": "Electrical",
    "success": true
}
```

#### `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"
```

**Response:**
```json
{
    "data": {
        "note": "Sauna-heater power ≈ the room volume ÷ 1.3 (about 1 kW per 1.3 m³ of well-insulated cabin). Cold surfaces that the heater must also warm — a glass door or wall, bare stone, tile or uninsulated timber — add roughly 1.2 m³ of equivalent volume per square metre, so add them in before sizing. Round up to the next standard heater (they come in ~0.5 kW steps); too small a heater never reaches temperature.",
        "inputs": {
            "glass_area_m2": 2,
            "room_volume_m3": 10,
            "uninsulated_area_m2": 0
        },
        "required_kw": 9.54,
        "effective_volume_m3": 12.4,
        "recommended_heater_kw": 10
    },
    "meta": {
        "timestamp": "2026-06-07T08:18:00.987Z",
        "request_id": "7ce9c580-1407-4b44-9b84-5804adf6b6ab"
    },
    "status": "ok",
    "message": "Heater size",
    "success": true
}
```

#### `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"
```

**Response:**
```json
{
    "data": {
        "note": "Sauna stones store and release the heat that makes the löyly (the burst of steam when you ladle water): figure roughly 10–20 kg of stones per kW of heater, more for a softer, steamier heat and fewer for a faster warm-up. Use only proper sauna stones (peridotite/olivine), stack them loosely so air flows through, and re-stack them yearly as they crack — a tightly packed or dusty load chokes the heater.",
        "inputs": {
            "heater_kw": 8,
            "kg_per_kw": 15
        },
        "range_kg": "80–160",
        "recommended_stone_mass_kg": 120
    },
    "meta": {
        "timestamp": "2026-06-07T08:18:01.081Z",
        "request_id": "b6e40f5e-37c9-4b72-8529-8c30afe69112"
    },
    "status": "ok",
    "message": "Stones",
    "success": true
}
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "notes": "Metric (m³, m², kW, kg) + amps. kW ≈ volume/1.3; glass/bare wall ≈ +1.2 m³ per m²; stones ≈ 10–20 kg/kW; current = kW·1000/(√3·V) [3φ] or /V [1φ]. Estimates — follow the heater maker's chart. For steam-boiler maths use a boiler API.",
        "service": "saunaheater-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/stones": "Recommended stone mass for a heater.",
            "GET /v1/electrical": "Heater current (1φ or 3φ).",
            "GET /v1/heater-size": "Required heater kW from room volume and cold surfaces."
        },
        "description": "Sauna-heater sizing maths: heater power for a room, recommended stone mass, and electrical current."
    },
    "meta": {
        "timestamp": "2026-06-07T08:18:01.136Z",
        "request_id": "64127f73-1d4a-4f3f-869e-debac4668030"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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