# Mobile Crane Lift API
> Mobile-crane lift-planning maths as an API, computed locally and deterministically — the load-moment, tipping-capacity and outrigger-pad numbers a crane operator, lift planner or rigging engineer checks a pick with. The load-moment endpoint gives the load × its working radius (the horizontal distance from the slew centre to the hook), the single figure a crane's rated-capacity limiter watches: a 5-tonne load at 8 m is a 40 tonne-metre moment, the same as 10 tonnes at 4 m, which is why chart capacity falls steeply as the boom luffs out — moment, not weight, tips the crane. The capacity endpoint gives a simplified tipping balance about the fulcrum: the load that just tips = counterweight × its radius ÷ the load radius, and the rated safe load is a stability fraction of that (~75 % on outriggers, ~66 % on crawlers per the standards) — a teaching/sanity figure that ignores the boom and superstructure, never a substitute for the load chart. The outrigger-pad endpoint sizes the float: required pad area = the outrigger leg load ÷ the soil's allowable bearing pressure (and the side of a square mat), since overloading weak ground is a leading cause of overturns — a 30-tonne leg on 200 kPa wants about a 1.2 m square mat. Everything is computed locally and deterministically, so it is instant and private. Ideal for lift-planning and rigging tools, construction and crane-operations apps, and site-safety utilities. Pure local computation — no key, no third-party service, instant. Simplified — always use the manufacturer load chart. 3 compute endpoints. For sling and WLL loads use a rigging 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/crane-api/..."
```

## Pricing
- **Free** (Free) — 4,550 calls/Mo, 2 req/s
- **Starter** ($13/Mo) — 47,500 calls/Mo, 6 req/s
- **Pro** ($42/Mo) — 203,000 calls/Mo, 15 req/s
- **Mega** ($128/Mo) — 1,095,000 calls/Mo, 40 req/s

## Endpoints

### Crane

#### `GET /v1/capacity` — Tipping-limited safe load

**Parameters:**
- `counterweight_tonnes` (query, required, string) — Counterweight (tonnes) Example: `20`
- `counterweight_radius_m` (query, required, string) — Counterweight radius (m) Example: `3`
- `load_radius_m` (query, required, string) — Load radius (m) Example: `8`
- `stability_factor` (query, optional, string) — Stability factor (default 0.75) Example: `0.75`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/crane-api/v1/capacity?counterweight_tonnes=20&counterweight_radius_m=3&load_radius_m=8&stability_factor=0.75"
```

**Response:**
```json
{
    "data": {
        "note": "A simplified tipping balance about the fulcrum (the tipping line): the load that just tips the crane = counterweight × its radius ÷ the load radius, and the rated safe load is a stability fraction of that — about 75 % for mobile cranes on outriggers, 66 % on crawlers/tyres per the standards. This ignores the boom and superstructure weight (the real chart accounts for them), so treat it as a teaching/sanity figure, never a substitute for the load chart.",
        "inputs": {
            "load_radius_m": 8,
            "stability_factor": 0.75,
            "counterweight_tonnes": 20,
            "counterweight_radius_m": 3
        },
        "safe_load_tonnes": 5.63,
        "tipping_load_tonnes": 7.5
    },
    "meta": {
        "timestamp": "2026-06-07T08:17:57.342Z",
        "request_id": "05a0ef3e-f0b8-4de3-87bd-2cbb501d9d9e"
    },
    "status": "ok",
    "message": "Capacity",
    "success": true
}
```

#### `GET /v1/load-moment` — Load moment from load and radius

**Parameters:**
- `load_tonnes` (query, required, string) — Load (tonnes) Example: `5`
- `radius_m` (query, required, string) — Working radius (m) Example: `8`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/crane-api/v1/load-moment?load_tonnes=5&radius_m=8"
```

**Response:**
```json
{
    "data": {
        "note": "The load moment = the load × its working radius (the horizontal distance from the slew centre to the hook), the single number a crane's rated-capacity limiter watches. A 5-tonne load at 8 m is a 40 tonne-metre moment; the same 40 t·m is reached by 10 tonnes at 4 m. That is why a crane's chart capacity falls steeply as the boom is luffed out — moment, not weight, is what tips it.",
        "inputs": {
            "radius_m": 8,
            "load_tonnes": 5
        },
        "load_moment_kn_m": 392.3,
        "load_moment_tonne_m": 40
    },
    "meta": {
        "timestamp": "2026-06-07T08:17:57.430Z",
        "request_id": "60151e37-c32e-470d-9058-9c34a7071cae"
    },
    "status": "ok",
    "message": "Load moment",
    "success": true
}
```

#### `GET /v1/outrigger-pad` — Outrigger pad area from bearing

**Parameters:**
- `outrigger_load_tonnes` (query, required, string) — Outrigger leg load (tonnes) Example: `30`
- `allowable_bearing_kpa` (query, required, string) — Allowable ground bearing (kPa) Example: `200`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/crane-api/v1/outrigger-pad?outrigger_load_tonnes=30&allowable_bearing_kpa=200"
```

**Response:**
```json
{
    "data": {
        "note": "The outrigger float spreads the leg load over the ground: required pad area = the outrigger load ÷ the soil's allowable bearing pressure, and a square pad needs that area's square root per side. A 30-tonne leg load on 200 kPa ground wants about 1.5 m² — roughly a 1.2 m square mat. Weak or made ground needs far bigger mats or cribbing; overloading the soil is a leading cause of crane overturns.",
        "inputs": {
            "allowable_bearing_kpa": 200,
            "outrigger_load_tonnes": 30
        },
        "square_pad_side_m": 1.213,
        "ground_pressure_kpa": 200,
        "required_pad_area_m2": 1.471
    },
    "meta": {
        "timestamp": "2026-06-07T08:17:57.532Z",
        "request_id": "3e450c19-33c0-438c-b089-73d139e6f9b7"
    },
    "status": "ok",
    "message": "Outrigger pad",
    "success": true
}
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "notes": "Metric (t, m, kN·m, kPa, m²). moment = load·radius; tipping load = CW·CW-radius/load-radius, safe = ×stability (~0.75 outriggers); pad area = load·g ÷ bearing. Simplified — always use the manufacturer load chart. For sling/WLL loads use a rigging API.",
        "service": "crane-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/capacity": "Tipping-limited safe load from the counterweight balance.",
            "GET /v1/load-moment": "Load moment from load and working radius.",
            "GET /v1/outrigger-pad": "Outrigger pad area from the ground-bearing pressure."
        },
        "description": "Mobile-crane lift maths: load moment, tipping-limited safe capacity, and outrigger pad size."
    },
    "meta": {
        "timestamp": "2026-06-07T08:17:57.607Z",
        "request_id": "68f4ee05-6706-473f-a750-7880a1da2611"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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