# Machining Speed API
> Machining cutting-speed and feed maths as an API, computed locally and deterministically. The speed endpoint converts between cutting (surface) speed and spindle rpm for a given tool or workpiece diameter, in both directions and in either unit system: metric uses N = Vc·1000/(π·D) with Vc in metres per minute and D in millimetres, and imperial uses RPM = SFM·12/(π·D) with the surface speed in feet per minute and the diameter in inches. The feed endpoint computes the table feed rate from the feed per tooth (chip load), the number of teeth or flutes and the spindle rpm for milling (feed = fz·z·N), or from the feed per revolution for turning and drilling, and reports it in millimetres or inches per minute. The materials endpoint lists typical carbide cutting speeds by material, from aluminium and brass through mild and stainless steel to titanium, with a note to use about a third for HSS tooling. Everything is computed locally and deterministically, so it is instant and private. An indicative aid — always confirm with the tool maker's data and adjust for depth of cut, coolant and rigidity. Ideal for CNC and machine-shop tools, CAM and feeds-and-speeds apps, maker and hobby machining, and manufacturing calculators. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is machining feeds and speeds; for screw-thread pitch and tap drill use a thread API and for bolt-circle layouts use a bolt-circle 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/machining-api/..."
```

## Pricing
- **Free** (Free) — 2,000 calls/Mo, 2 req/s
- **Starter** ($9/Mo) — 20,000 calls/Mo, 5 req/s
- **Pro** ($24/Mo) — 120,000 calls/Mo, 15 req/s
- **Mega** ($74/Mo) — 631,000 calls/Mo, 40 req/s

## Endpoints

### Machining

#### `GET /v1/feed` — Feed rate from chip load

**Parameters:**
- `rpm` (query, required, string) — Spindle rpm Example: `636.62`
- `feed_per_tooth` (query, optional, string) — Chip load fz (with teeth) Example: `0.1`
- `teeth` (query, optional, string) — Number of teeth/flutes Example: `4`
- `feed_per_rev` (query, optional, string) — Or feed per rev (turning/drilling)
- `unit_system` (query, optional, string) — metric|imperial Example: `metric`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/machining-api/v1/feed?rpm=636.62&feed_per_tooth=0.1&teeth=4&unit_system=metric"
```

**Response:**
```json
{
    "data": {
        "rpm": 636.62,
        "note": "Feed rate = feed per tooth × teeth × rpm (milling), or feed per rev × rpm (turning/drilling).",
        "basis": "feed_per_tooth",
        "teeth": 4,
        "feed_rate": 254.648,
        "unit_system": "metric",
        "feed_per_rev": 0.4,
        "feed_per_tooth": 0.1,
        "feed_rate_unit": "mm/min"
    },
    "meta": {
        "timestamp": "2026-06-04T01:59:05.732Z",
        "request_id": "6921029d-9461-4039-b7bc-9f094002054c"
    },
    "status": "ok",
    "message": "Feed rate from chip load",
    "success": true
}
```

#### `GET /v1/materials` — Cutting speed reference

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

**Response:**
```json
{
    "data": {
        "note": "Indicative carbide cutting speeds (Vc, m/min). For HSS tooling use roughly one third. Always confirm with the tool maker's data and adjust for depth of cut, coolant and rigidity.",
        "cutting_speed_m_min_carbide": {
            "wood": 400,
            "brass": 200,
            "bronze": 120,
            "copper": 150,
            "acrylic": 200,
            "plastic": 250,
            "aluminum": 300,
            "titanium": 30,
            "aluminium": 300,
            "cast_iron": 80,
            "mild_steel": 100,
            "tool_steel": 50,
            "alloy_steel": 70,
            "carbon_steel": 90,
            "hardened_steel": 40,
            "stainless_steel": 60
        }
    },
    "meta": {
        "timestamp": "2026-06-04T01:59:05.824Z",
        "request_id": "1725504d-a049-477a-b5be-83a38b1b3e7c"
    },
    "status": "ok",
    "message": "Cutting speed reference",
    "success": true
}
```

#### `GET /v1/speed` — Cutting speed ↔ spindle rpm

**Parameters:**
- `diameter` (query, required, string) — Tool/work diameter (mm or in) Example: `50`
- `cutting_speed` (query, optional, string) — Vc m/min (or SFM if imperial) Example: `100`
- `rpm` (query, optional, string) — Or spindle rpm
- `unit_system` (query, optional, string) — metric|imperial (default metric) Example: `metric`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/machining-api/v1/speed?diameter=50&cutting_speed=100&unit_system=metric"
```

**Response:**
```json
{
    "data": {
        "formula": "N = Vc·1000 / (π·D)  [Vc m/min, D mm].",
        "diameter_mm": 50,
        "spindle_rpm": 636.62,
        "unit_system": "metric",
        "cutting_speed_m_min": 100
    },
    "meta": {
        "timestamp": "2026-06-04T01:59:05.919Z",
        "request_id": "fa53aa91-bb8f-4891-af45-8676d4705a6b"
    },
    "status": "ok",
    "message": "Cutting speed <-> spindle rpm",
    "success": true
}
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "api": "machining",
        "note": "Machining cutting-speed & feed maths — computed locally and deterministically, no key, no third-party service.",
        "endpoints": [
            "/v1/speed",
            "/v1/feed",
            "/v1/materials",
            "/v1/meta"
        ],
        "materials": [
            "aluminium",
            "aluminum",
            "brass",
            "bronze",
            "copper",
            "mild_steel",
            "carbon_steel",
            "alloy_steel",
            "stainless_steel",
            "cast_iron",
            "tool_steel",
            "hardened_steel",
            "titanium",
            "plastic",
            "acrylic",
            "wood"
        ],
        "unit_systems": [
            "metric",
            "imperial"
        ]
    },
    "meta": {
        "timestamp": "2026-06-04T01:59:06.006Z",
        "request_id": "f7f8b87b-06b9-4d94-ac54-e969ef520c9e"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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