# Pottery & Ceramics API
> Pottery and ceramics maths as an API, computed locally and deterministically — the shrinkage, glaze-batch and firing numbers a potter works out at the wheel and the kiln. The shrinkage endpoint handles the fact that clay shrinks from wet to bone-dry to fired: with a typical 12 % linear shrinkage a 100 mm rim fires down to 88 mm, and run in reverse it tells you to throw a piece larger to land on a target size — make it 100 mm wet to finish at 88 mm — and reports the volume shrinkage, which is the cube of the linear factor (about 32 %). The glaze endpoint scales a percentage recipe to a real batch: pass the ingredients as a name:percent list and a dry batch weight and it returns the grams of each, dividing by the recipe’s own percent sum so recipes that total over 100 % (a base 100 plus colorant and opacifier additions) still scale correctly, plus the water to add for dipping. The cone endpoint gives the approximate firing temperature for an Orton self-supporting cone at the standard 108 °F/hour ramp — cone 06 is about 1828 °F (998 °C) for bisque, cone 6 about 2232 °F (1222 °C) and cone 10 about 2345 °F (1285 °C) for stoneware — and reminds you that a cone measures heat-work, not just temperature. Everything is computed locally and deterministically, so it is instant and private. Ideal for ceramics, pottery-studio, maker and craft app developers, kiln-log and glaze-calculator tools, and studio-management software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. For kiln-element power use a different 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/pottery-api/..."
```

## Pricing
- **Free** (Free) — 7,250 calls/Mo, 2 req/s
- **Starter** ($4/Mo) — 57,500 calls/Mo, 6 req/s
- **Pro** ($11/Mo) — 235,500 calls/Mo, 15 req/s
- **Mega** ($36/Mo) — 1,355,000 calls/Mo, 40 req/s

## Endpoints

### Pottery

#### `GET /v1/cone` — Cone firing temperature

**Parameters:**
- `cone` (query, required, string) — Orton cone number, e.g. '06', '6', '10' Example: `6`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/pottery-api/v1/cone?cone=6"
```

**Response:**
```json
{
    "data": {
        "note": "Orton self-supporting large-cone temperatures at the standard 108 °F/hr final ramp. Cone is a measure of heat-work (time × temperature), not just temperature — a slower ramp matures at a lower reading. Bisque is often 06–04; stoneware glaze 6 or 10.",
        "ramp": "108 °F/hr (self-supporting large cone)",
        "range": "mid-to-high fire",
        "inputs": {
            "cone": "6"
        },
        "temperature_c": 1222,
        "temperature_f": 2232
    },
    "meta": {
        "timestamp": "2026-06-06T07:14:05.358Z",
        "request_id": "5022107e-60dd-4ce2-b841-8bf8780279c4"
    },
    "status": "ok",
    "message": "Cone temperature",
    "success": true
}
```

#### `GET /v1/glaze` — Glaze batch

**Parameters:**
- `recipe` (query, required, string) — Comma list of 'name:percent' Example: `Custer Feldspar:40,Silica:25,Whiting:20,Kaolin:15`
- `batch_grams` (query, optional, string) — Dry batch weight (default 1000) Example: `1000`
- `water_percent` (query, optional, string) — Water as % of dry weight Example: `85`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/pottery-api/v1/glaze?recipe=Custer+Feldspar%3A40%2CSilica%3A25%2CWhiting%3A20%2CKaolin%3A15&batch_grams=1000&water_percent=85"
```

**Response:**
```json
{
    "data": {
        "note": "Each ingredient's grams = (its percent ÷ the recipe's percent sum) × batch weight, so recipes that total over 100 % (base 100 + colorant/opacifier additions) still scale correctly. Add water to taste for dipping (often ~80–90 % of dry weight, ~1.4–1.5 specific gravity).",
        "inputs": {
            "batch_grams": 1000,
            "water_percent": 85,
            "recipe_percent_sum": 100
        },
        "ingredients": [
            {
                "name": "Custer Feldspar",
                "grams": 400,
                "percent": 40
            },
            {
                "name": "Silica",
                "grams": 250,
                "percent": 25
            },
            {
                "name": "Whiting",
                "grams": 200,
                "percent": 20
            },
            {
                "name": "Kaolin",
                "grams": 150,
                "percent": 15
            }
        ],
        "water_grams": 850,
        "dry_total_grams": 1000
    },
    "meta": {
        "timestamp": "2026-06-06T07:14:05.459Z",
        "request_id": "0104d60f-3ad2-47d9-bdb0-251ba1973b49"
    },
    "status": "ok",
    "message": "Glaze batch",
    "success": true
}
```

#### `GET /v1/shrinkage` — Clay shrinkage

**Parameters:**
- `size` (query, required, string) — Size to convert Example: `100`
- `shrinkage_percent` (query, optional, string) — Linear shrinkage % (default 12) Example: `12`
- `direction` (query, optional, string) — forward (wet→fired) or reverse Example: `forward`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/pottery-api/v1/shrinkage?size=100&shrinkage_percent=12&direction=forward"
```

**Response:**
```json
{
    "data": {
        "note": "Linear shrinkage applies wet → bone-dry → fired: fired = wet × (1 − shrinkage). To end at a target size, throw it larger: wet = target ÷ (1 − shrinkage). Most clay bodies shrink 10–13 % linear; volume shrinks by the cube of that.",
        "inputs": {
            "size": 100,
            "direction": "forward",
            "shrinkage_percent": 12
        },
        "wet_size": 100,
        "fired_size": 88,
        "linear_shrink_factor": 0.88,
        "total_volume_shrink_percent": 31.85
    },
    "meta": {
        "timestamp": "2026-06-06T07:14:05.549Z",
        "request_id": "42d12d6c-5b7c-44d0-9e30-b2c8845643f3"
    },
    "status": "ok",
    "message": "Clay shrinkage",
    "success": true
}
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "notes": "Shrinkage is linear (volume = the cube). Glaze ingredients pass as 'name:percent' comma list and scale by the recipe's own percent sum. Cone temps are Orton self-supporting large cones at 108 °F/hr. For kiln-element power use a different API.",
        "service": "pottery-api",
        "endpoints": {
            "GET /v1/cone": "Approximate firing temperature for an Orton cone number.",
            "GET /v1/meta": "This document.",
            "GET /v1/glaze": "Scale a percentage glaze recipe to a dry batch weight, plus water.",
            "GET /v1/shrinkage": "Wet ↔ fired size for a clay shrinkage percentage (forward or reverse)."
        },
        "description": "Pottery / ceramics maths: clay shrinkage (wet ↔ fired), glaze batch scaling from a percentage recipe, and Orton cone firing temperatures."
    },
    "meta": {
        "timestamp": "2026-06-06T07:14:05.633Z",
        "request_id": "5991499c-4341-4b56-b502-958b7ef9276e"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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