# Powerlifting Score API
> Powerlifting strength-score maths as an API, computed locally and deterministically — the Wilks, DOTS and IPF GL numbers a meet, gym or training app uses to compare lifters across bodyweights and sexes. The wilks endpoint gives the classic Wilks coefficient (1996) and score: total × 500 ÷ a fifth-order polynomial in bodyweight, with separate male and female curves — long the federation standard for "best lifter", a 100 kg man totalling 600 kg scores about 365. The dots endpoint gives the modern DOTS score (2019), the same total × 500 ÷ polynomial idea but fitted to updated data with a fourth-order curve that is fairer across the weight classes and not skewed to the middleweights, now the default in most raw meet software. The ipf-gl endpoint gives the International Powerlifting Federation's current GL Points (2020): 100 × total ÷ (A − B·e^(−C·bodyweight)), with separate constants for sex and for raw (classic) versus equipped lifting, the official metric at IPF championships. Everything is computed locally and deterministically, so it is instant and private. Ideal for meet-management and scoring software, gym leaderboards and training-log apps, and strength-sport tools. Pure local computation — no key, no third-party service, instant. 3 compute endpoints. For one-rep-max estimation and plate loading use a strength-training 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/powerlifting-api/..."
```

## Pricing
- **Free** (Free) — 9,000 calls/Mo, 2 req/s
- **Starter** ($7/Mo) — 88,000 calls/Mo, 6 req/s
- **Pro** ($26/Mo) — 360,000 calls/Mo, 15 req/s
- **Mega** ($81/Mo) — 1,640,000 calls/Mo, 40 req/s

## Endpoints

### Score

#### `GET /v1/dots` — DOTS coefficient and score

**Parameters:**
- `sex` (query, required, string) — male or female Example: `male`
- `bodyweight_kg` (query, required, string) — Bodyweight (kg) Example: `100`
- `total_kg` (query, required, string) — Total lifted (kg) Example: `600`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/powerlifting-api/v1/dots?sex=male&bodyweight_kg=100&total_kg=600"
```

#### `GET /v1/ipf-gl` — IPF GL points

**Parameters:**
- `sex` (query, required, string) — male or female Example: `male`
- `bodyweight_kg` (query, required, string) — Bodyweight (kg) Example: `100`
- `total_kg` (query, required, string) — Total lifted (kg) Example: `600`
- `equipment` (query, optional, string) — raw (classic) or equipped (default raw) Example: `raw`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/powerlifting-api/v1/ipf-gl?sex=male&bodyweight_kg=100&total_kg=600&equipment=raw"
```

#### `GET /v1/wilks` — Wilks coefficient and score

**Parameters:**
- `sex` (query, required, string) — male or female Example: `male`
- `bodyweight_kg` (query, required, string) — Bodyweight (kg) Example: `100`
- `total_kg` (query, required, string) — Total lifted (kg) Example: `600`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/powerlifting-api/v1/wilks?sex=male&bodyweight_kg=100&total_kg=600"
```

### Meta

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

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


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