# Air Compressor API
> Compressed-air maths as an API, computed locally and deterministically — the receiver, pump-up and SCFM numbers a pneumatics tech or shop owner sizes a system with. The receiver-size endpoint gives the tank you need to ride out a demand burst: volume = demand (free-air CFM) × minutes × 14.7 ÷ the usable pressure window (max − min) — pulling 20 CFM for a minute over a 175-to-100 psi window wants about a 30-gallon receiver, the buffer that lets the pump catch up. The pumpup endpoint gives the time to raise a receiver from one pressure to another: volume × pressure rise ÷ (14.7 × compressor CFM), so a 60-gallon tank from 100 to 175 psi on a 15 CFM compressor takes about 2.7 minutes. The scfm endpoint corrects actual CFM to standard CFM for the inlet conditions — SCFM = ACFM × (inlet pressure ÷ 14.696) × (528 ÷ inlet temperature in Rankine) — so a compressor at 5,000 feet delivers about 17 % fewer SCFM than at sea level, the reason you size tools on SCFM, not the nameplate. Everything is computed locally and deterministically, so it is instant and private. Ideal for pneumatics and shop-air apps, compressor-sizing and tool-demand tools, industrial-air calculators, and trade aids. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. Estimates — duty cycle and the pump curve shift real numbers.

## 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/compressor-api/..."
```

## Pricing
- **Free** (Free) — 460 calls/Mo, 2 req/s
- **Starter** ($6/Mo) — 12,400 calls/Mo, 6 req/s
- **Pro** ($18/Mo) — 79,000 calls/Mo, 15 req/s
- **Mega** ($54/Mo) — 256,000 calls/Mo, 36 req/s

## Endpoints

### Compressor

#### `GET /v1/pumpup` — Pump-up time

**Parameters:**
- `receiver_gallons` (query, required, string) — Receiver size in gallons Example: `60`
- `start_pressure_psi` (query, required, string) — Start pressure psi Example: `100`
- `end_pressure_psi` (query, required, string) — End pressure psi Example: `175`
- `compressor_cfm` (query, required, string) — Compressor free-air CFM Example: `15`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/compressor-api/v1/pumpup?receiver_gallons=60&start_pressure_psi=100&end_pressure_psi=175&compressor_cfm=15"
```

#### `GET /v1/receiver-size` — Receiver size for a demand burst

**Parameters:**
- `demand_cfm` (query, required, string) — Demand in free-air CFM Example: `20`
- `supply_minutes` (query, required, string) — Minutes to supply Example: `1`
- `max_pressure_psi` (query, required, string) — Max (cut-out) pressure psi Example: `175`
- `min_pressure_psi` (query, required, string) — Min (usable) pressure psi Example: `100`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/compressor-api/v1/receiver-size?demand_cfm=20&supply_minutes=1&max_pressure_psi=175&min_pressure_psi=100"
```

#### `GET /v1/scfm` — ACFM to SCFM correction

**Parameters:**
- `acfm` (query, required, string) — Actual CFM at the inlet Example: `100`
- `inlet_pressure_psia` (query, optional, string) — Inlet pressure psia (default 14.696) Example: `12.2`
- `inlet_temp_f` (query, optional, string) — Inlet temperature °F (default 68) Example: `68`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/compressor-api/v1/scfm?acfm=100&inlet_pressure_psia=12.2&inlet_temp_f=68"
```

### Meta

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

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


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