# Elevator Traction API
> Traction-elevator engineering maths as an API, computed locally and deterministically — the counterweight, hoist-motor and rope-traction numbers a lift engineer or building-services designer sizes a passenger elevator with. The counterweight endpoint gives the balancing mass = the empty car plus a fraction of the rated load (the overbalance, typically 40–50 %, 45 % common), so a 1,000 kg car rated for 1,000 kg uses a 1,450 kg counterweight — the car and weight balance near half load and the machine is sized for the worst-case imbalance, not the full load. The motor-power endpoint uses that: because the counterweight cancels most of the car, the motor only lifts the out-of-balance load = rated load × (1 − overbalance), so power = that × g × speed ÷ efficiency (~65–75 % geared) — a 1,000 kg lift at 1.5 m/s needs only about 11–12 kW, half what a counterweight-less hoist would draw. The traction-ratio endpoint checks the friction grip: a traction elevator moves the ropes by friction over the sheave, so the available traction (e^(μθ), the capstan equation) must beat the T1/T2 tension ratio at both worst cases — a full car at the bottom and an empty car at the top — and it returns the governing ratio. Everything is computed locally and deterministically, so it is instant and private. Ideal for lift-design and building-services tools, vertical-transport and MEP utilities, and engineering calculators. Pure local computation — no key, no third-party service, instant. Sizing estimates — follow the lift code and maker data. 3 compute endpoints. For block-and-tackle use a pulley API; for capstan friction a capstan 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/elevator-api/..."
```

## Pricing
- **Free** (Free) — 4,650 calls/Mo, 2 req/s
- **Starter** ($13/Mo) — 48,500 calls/Mo, 6 req/s
- **Pro** ($41/Mo) — 207,000 calls/Mo, 15 req/s
- **Mega** ($127/Mo) — 1,105,000 calls/Mo, 40 req/s

## Endpoints

### Elevator

#### `GET /v1/counterweight` — Counterweight from car and load

**Parameters:**
- `car_weight_kg` (query, required, string) — Empty car weight (kg) Example: `1000`
- `rated_load_kg` (query, required, string) — Rated load (kg) Example: `1000`
- `balance_pct` (query, optional, string) — Overbalance % (default 45) Example: `45`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/elevator-api/v1/counterweight?car_weight_kg=1000&rated_load_kg=1000&balance_pct=45"
```

#### `GET /v1/motor-power` — Hoist-motor power at full load

**Parameters:**
- `rated_load_kg` (query, required, string) — Rated load (kg) Example: `1000`
- `speed_mps` (query, required, string) — Car speed (m/s) Example: `1.5`
- `balance_pct` (query, optional, string) — Overbalance % (default 45) Example: `45`
- `efficiency_pct` (query, optional, string) — Drive efficiency % (default 70) Example: `70`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/elevator-api/v1/motor-power?rated_load_kg=1000&speed_mps=1.5&balance_pct=45&efficiency_pct=70"
```

#### `GET /v1/traction-ratio` — Rope-traction T1/T2 ratio

**Parameters:**
- `car_weight_kg` (query, required, string) — Empty car weight (kg) Example: `1000`
- `counterweight_kg` (query, required, string) — Counterweight (kg) Example: `1450`
- `rated_load_kg` (query, required, string) — Rated load (kg) Example: `1000`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/elevator-api/v1/traction-ratio?car_weight_kg=1000&counterweight_kg=1450&rated_load_kg=1000"
```

### Meta

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

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


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