# Radiant Floor API
> Radiant-floor and hydronic heating maths as an API, computed locally and deterministically — the output, tubing and flow numbers an installer or DIYer designs a warm floor with. The output endpoint gives the heat a warm floor puts out: about 2 BTU/hr per square foot for every °F the floor surface is above the room, so an 85 °F floor in a 70 °F room delivers roughly 30 BTU/hr/ft² — about 9,000 BTU/hr over 300 ft², the comfort ceiling since the floor is held at ~85 °F. The tubing endpoint gives the tube and loops for an area at a spacing: field tubing = area × 12 ÷ spacing, so 300 ft² at 9-inch spacing needs 400 feet of tube, split into loops kept under ~300 feet (two 200-foot loops) so the pump can push them. The flow endpoint gives the loop flow rate for a heat load, GPM = load ÷ (500 × ΔT) where 500 is water's constant and ΔT is the supply-to-return drop — 9,000 BTU/hr at a 20 °F ΔT wants 0.9 GPM. Everything is computed locally and deterministically, so it is instant and private. Ideal for radiant-heating and plumbing apps, hydronic-design and PEX-layout tools, HVAC contractor calculators, and DIY-build sites. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. Estimates — verify with a full heat-loss calc. For building load use an HVAC API; for pipe velocity use a flow-rate 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/radiant-api/..."
```

## Pricing
- **Free** (Free) — 470 calls/Mo, 2 req/s
- **Starter** ($6/Mo) — 12,700 calls/Mo, 6 req/s
- **Pro** ($17/Mo) — 80,500 calls/Mo, 15 req/s
- **Mega** ($52/Mo) — 262,000 calls/Mo, 36 req/s

## Endpoints

### Radiant

#### `GET /v1/flow` — Loop flow rate

**Parameters:**
- `heat_load_btu_hr` (query, required, string) — Heat load in BTU/hr Example: `9000`
- `delta_t_f` (query, optional, string) — Supply−return ΔT in °F (default 20) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/radiant-api/v1/flow?heat_load_btu_hr=9000&delta_t_f=20"
```

#### `GET /v1/output` — Floor heat output

**Parameters:**
- `floor_temp_f` (query, required, string) — Floor surface temperature °F Example: `85`
- `room_temp_f` (query, required, string) — Room temperature °F Example: `70`
- `area_sqft` (query, optional, string) — Floor area in ft² (default 1) Example: `300`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/radiant-api/v1/output?floor_temp_f=85&room_temp_f=70&area_sqft=300"
```

#### `GET /v1/tubing` — Tubing and loops

**Parameters:**
- `area_sqft` (query, required, string) — Floor area in ft² Example: `300`
- `spacing_in` (query, required, string) — Tube spacing in inches Example: `9`
- `leader_ft` (query, optional, string) — Leader run per loop in feet (default 0) Example: `0`
- `max_loop_ft` (query, optional, string) — Max loop length in feet (default 300) Example: `300`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/radiant-api/v1/tubing?area_sqft=300&spacing_in=9&leader_ft=0&max_loop_ft=300"
```

### Meta

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

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


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