# Caulk Coverage API
> Caulk and sealant coverage maths as an API, computed locally and deterministically — the linear-feet-per-tube and how-many-tubes numbers a builder, glazier or DIYer buys sealant by. A bead of caulk is essentially a thin cylinder, so the coverage endpoint works out the feet a cartridge lays from the bead width: volume per foot ≈ (π/4 × width²) × 12 inches, and a standard 10.1 fl oz cartridge (18.2 in³) lays about 30 feet of a quarter-inch bead, 13 feet of a fat three-eighths or 55 of a fine three-sixteenths — pass cartridge_oz for sausage packs or 28-oz tubes, and a tube count to total it. The tubes endpoint runs it backwards: cartridges needed = (joint length × a waste factor) ÷ feet per cartridge, rounded up, so a 100-foot run of quarter-inch bead with 10 % waste takes four tubes. Everything is computed locally and deterministically, so it is instant and private. Ideal for construction, glazing, weatherproofing and home-improvement app developers, material-estimator and shopping-list tools, and contractor software. Pure local computation — no key, no third-party service, instant. Inches and feet; estimates — tooling and waste vary. Live, nothing stored. 2 compute endpoints.

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

## Pricing
- **Free** (Free) — 6,360 calls/Mo, 2 req/s
- **Starter** ($5/Mo) — 52,000 calls/Mo, 6 req/s
- **Pro** ($12/Mo) — 216,500 calls/Mo, 15 req/s
- **Mega** ($40/Mo) — 1,275,000 calls/Mo, 40 req/s

## Endpoints

### Caulk

#### `GET /v1/coverage` — Linear feet per cartridge

**Parameters:**
- `bead_width_in` (query, required, string) — Bead width (in) Example: `0.25`
- `cartridge_oz` (query, optional, string) — Cartridge volume (fl oz, default 10.1) Example: `10.1`
- `cartridges` (query, optional, string) — Number of cartridges (default 1) Example: `1`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/caulk-api/v1/coverage?bead_width_in=0.25&cartridge_oz=10.1&cartridges=1"
```

**Response:**
```json
{
    "data": {
        "note": "A standard 10.1 fl oz cartridge lays about 30 ft of a 1/4\" bead, 13 ft of 3/8\" or 56 ft of a fine 3/16\". Bead volume per foot ≈ (π/4 × width²) × 12 in. Real coverage drops a bit with tooling and waste — buy ~10 % extra.",
        "inputs": {
            "cartridges": 1,
            "cartridge_oz": 10.1,
            "bead_width_in": 0.25
        },
        "linear_feet_total": 30.9,
        "linear_meters_total": 9.43,
        "linear_feet_per_cartridge": 30.9
    },
    "meta": {
        "timestamp": "2026-06-06T15:30:49.414Z",
        "request_id": "b73166cf-ba56-4e39-81a7-17cdb33eb5bb"
    },
    "status": "ok",
    "message": "Caulk coverage",
    "success": true
}
```

#### `GET /v1/tubes` — Cartridges for a length

**Parameters:**
- `length_ft` (query, required, string) — Joint length (ft) Example: `100`
- `bead_width_in` (query, required, string) — Bead width (in) Example: `0.25`
- `cartridge_oz` (query, optional, string) — Cartridge volume (default 10.1) Example: `10.1`
- `waste_percent` (query, optional, string) — Waste % (default 10) Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/caulk-api/v1/tubes?length_ft=100&bead_width_in=0.25&cartridge_oz=10.1&waste_percent=10"
```

**Response:**
```json
{
    "data": {
        "note": "Cartridges = (length × waste factor) ÷ feet per cartridge, rounded up. A wider bead, a deeper joint or backer rod all use more. Tooling the bead and a stop-start job waste a little, so the 10 % allowance is sensible.",
        "inputs": {
            "length_ft": 100,
            "cartridge_oz": 10.1,
            "bead_width_in": 0.25,
            "waste_percent": 10
        },
        "cartridges_needed": 4,
        "linear_feet_per_cartridge": 30.9
    },
    "meta": {
        "timestamp": "2026-06-06T15:30:49.514Z",
        "request_id": "c719f1f0-8652-45c7-946a-c81983a21927"
    },
    "status": "ok",
    "message": "Cartridges needed",
    "success": true
}
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "notes": "Standard cartridge ≈ 10.1 fl oz (set cartridge_oz for sausage packs or 28 oz). Bead width in inches; coverage = cartridge volume ÷ (π/4 × width² × 12). Estimates — tooling and waste vary. For grout volume use a tile/flooring API.",
        "service": "caulk-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/tubes": "Cartridges needed for a joint length at a bead width, with waste.",
            "GET /v1/coverage": "Linear feet (and metres) one or more cartridges yield at a bead width."
        },
        "description": "Caulk / sealant coverage maths: linear feet a cartridge yields at a bead width, and cartridges needed for a joint length."
    },
    "meta": {
        "timestamp": "2026-06-06T15:30:49.619Z",
        "request_id": "94063381-0c94-4c56-93d2-99bace10ce29"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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