# Steam Boiler API
> Steam-boiler engineering maths as an API, computed locally and deterministically — the three numbers a boiler operator, plant engineer or steam-system designer actually works with. The boiler-hp endpoint converts a required heat output into boiler horsepower (heat ÷ 33,475 BTU/hr, the standard definition), the equivalent steam output in pounds per hour "from and at" 212 °F (34.5 lb/hr per BHP) and the output in kilowatts — a 1,000,000 BTU/hr load is about 29.9 BHP or 1,031 lb/hr of steam. The factor-of-evaporation endpoint gives the real capacity for your feedwater: the factor = (the total heat of the steam − the feedwater heat) ÷ 970.3, always greater than one because the boiler must add the sensible heat to bring water up to boiling, so a boiler rated "from and at" 212 °F actually makes less with 60 °F feedwater — which is exactly why preheating feedwater with an economiser raises capacity and saves fuel. The blowdown endpoint gives the continuous blowdown rate to hold the boiler water within its dissolved-solids limit: blowdown = steam × feedwater TDS ÷ (boiler limit − feedwater TDS), with the cycles of concentration and the blowdown as a percentage of feedwater — better feedwater means more cycles, less blowdown and less wasted hot water. Everything is computed locally and deterministically, so it is instant and private. Ideal for boiler operators, steam-plant and HVAC engineers, energy auditors, water-treatment specialists and process-engineering tools. Pure local computation — no key, no third-party service, instant. Engineering estimates — verify against the manufacturer data and local code. 3 compute endpoints. For moist-air properties use a psychrometric API; for compressed air use a compressor 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/boiler-api/..."
```

## Pricing
- **Free** (Free) — 4,800 calls/Mo, 2 req/s
- **Starter** ($15/Mo) — 52,000 calls/Mo, 6 req/s
- **Pro** ($43/Mo) — 221,000 calls/Mo, 15 req/s
- **Mega** ($135/Mo) — 1,180,000 calls/Mo, 40 req/s

## Endpoints

### Boiler

#### `GET /v1/blowdown` — Continuous blowdown rate

**Parameters:**
- `steam_lb_hr` (query, required, string) — Steam rate (lb/hr) Example: `1000`
- `feedwater_tds_ppm` (query, required, string) — Feedwater TDS (ppm) Example: `100`
- `max_boiler_tds_ppm` (query, required, string) — Boiler water TDS limit (ppm) Example: `3000`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/boiler-api/v1/blowdown?steam_lb_hr=1000&feedwater_tds_ppm=100&max_boiler_tds_ppm=3000"
```

**Response:**
```json
{
    "data": {
        "note": "Steam leaves the dissolved solids behind, so they concentrate until blowdown removes them. At steady state blowdown = steam × feedwater TDS ÷ (boiler TDS limit − feedwater TDS); the cycles of concentration = boiler limit ÷ feedwater TDS. Too little blowdown scales and carries over; too much wastes hot water and treatment, so better feedwater (more cycles) cuts blowdown and fuel.",
        "inputs": {
            "steam_lb_hr": 1000,
            "feedwater_tds_ppm": 100,
            "max_boiler_tds_ppm": 3000
        },
        "blowdown_lb_hr": 34.5,
        "feedwater_lb_hr": 1034.5,
        "cycles_of_concentration": 30,
        "blowdown_pct_of_feedwater": 3.33
    },
    "meta": {
        "timestamp": "2026-06-06T23:53:55.838Z",
        "request_id": "fd9c8108-d129-4774-8c07-da6a86f087e6"
    },
    "status": "ok",
    "message": "Blowdown rate",
    "success": true
}
```

#### `GET /v1/boiler-hp` — Boiler horsepower, steam output and kW

**Parameters:**
- `heat_btu_hr` (query, required, string) — Required heat output (BTU/hr) Example: `1000000`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/boiler-api/v1/boiler-hp?heat_btu_hr=1000000"
```

**Response:**
```json
{
    "data": {
        "note": "Boiler horsepower = heat output ÷ 33,475 BTU/hr, the standard definition. One BHP also equals 34.5 lb/hr of steam evaporated 'from and at' 212 °F — a convenient rating point. The steam figure here assumes that reference; with cooler feedwater the real output is lower (see /v1/factor-of-evaporation). Size for the connected load plus a margin for warm-up and losses.",
        "inputs": {
            "heat_btu_hr": 1000000
        },
        "boiler_hp": 29.87,
        "output_kw": 293.07,
        "steam_lb_hr_from_and_at_212": 1030.6
    },
    "meta": {
        "timestamp": "2026-06-06T23:53:55.916Z",
        "request_id": "6b175f49-5c57-4ef4-b6df-37efabd1acf0"
    },
    "status": "ok",
    "message": "Boiler horsepower",
    "success": true
}
```

#### `GET /v1/factor-of-evaporation` — Factor of evaporation and real capacity

**Parameters:**
- `feedwater_temp_f` (query, required, string) — Feedwater temperature (°F) Example: `60`
- `from_and_at_lb_hr` (query, optional, string) — Rating "from and at" 212 °F (lb/hr) Example: `1000`
- `steam_total_heat_btu_lb` (query, optional, string) — Steam total heat (BTU/lb, default 1150.4) Example: `1150.4`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/boiler-api/v1/factor-of-evaporation?feedwater_temp_f=60&from_and_at_lb_hr=1000&steam_total_heat_btu_lb=1150.4"
```

**Response:**
```json
{
    "data": {
        "note": "The factor of evaporation = (total heat of the steam − the feedwater heat) ÷ 970.3. It is always ≥ 1 because real feedwater is below 212 °F, so the boiler must add the sensible heat too. Divide a 'from and at 212 °F' rating by this factor to get the real output at your feedwater temperature — which is why preheating feedwater (e.g. with an economiser) raises capacity and saves fuel.",
        "inputs": {
            "feedwater_temp_f": 60,
            "from_and_at_lb_hr": 1000,
            "steam_total_heat_btu_lb": 1150.4
        },
        "actual_output_lb_hr": 864.5,
        "factor_of_evaporation": 1.1568
    },
    "meta": {
        "timestamp": "2026-06-06T23:53:55.985Z",
        "request_id": "c8faedc3-813c-4ad6-a3af-97d58c8bf992"
    },
    "status": "ok",
    "message": "Factor of evaporation",
    "success": true
}
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "notes": "US units. BHP = BTU/hr ÷ 33,475 (≙ 34.5 lb/hr from&at 212 °F); FE = (steam total heat − feedwater heat) ÷ 970.3; blowdown = steam × FW_TDS ÷ (boiler_TDS − FW_TDS). Estimates — for moist-air properties use a psychrometric API; for compressed air a compressor API.",
        "service": "boiler-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/blowdown": "Continuous blowdown rate to hold the boiler water TDS.",
            "GET /v1/boiler-hp": "Boiler horsepower, steam output and kW from a required heat output.",
            "GET /v1/factor-of-evaporation": "Evaporation factor for the feedwater temperature, and the real capacity."
        },
        "description": "Steam-boiler maths: boiler horsepower, the factor of evaporation, and the blowdown rate to hold water quality."
    },
    "meta": {
        "timestamp": "2026-06-06T23:53:56.072Z",
        "request_id": "1ef7ecaf-7588-43a2-a91e-f3af440cb893"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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