{"openapi":"3.1.0","info":{"title":"Knife Sharpening API","version":"1.0.0","description":"Knife-sharpening maths as an API, computed locally and deterministically — the bevel and angle numbers a sharpener, cook or knifemaker sets a stone to. It uses the symmetric V-edge model: the bevel endpoint takes the blade thickness and a per-side (or inclusive) angle and returns the bevel face width = (thickness ÷ 2) ÷ sin(per-side angle), with the inclusive angle as twice the per-side — so a 2 mm blade ground at 15° per side has a 3.86 mm bevel and a 30° edge, and at a 40° inclusive (20° per side) a 2.92 mm bevel. The angle endpoint runs it in reverse for the marker (Sharpie) method: colour the edge, take one stroke, measure the shiny bevel, and per-side angle = asin((thickness ÷ 2) ÷ bevel width) tells you the angle you are actually holding. The recommend endpoint gives sensible inclusive-angle ranges by use — about 12–17° for razors, 20–30° for Japanese kitchen knives, 30–40° for Western chef’s and EDC, 40–50° for outdoor and hard use, 45–65° for axes — and converts any chosen inclusive angle to per-side and back. Everything is computed locally and deterministically, so it is instant and private. Ideal for knife, kitchen, EDC, bushcraft, woodworking and sharpening app developers, sharpening-jig and edge-geometry tools, and maker software. Pure local computation — no key, no third-party service, instant. Symmetric V-edge model, mm and degrees. Live, nothing stored. 3 compute endpoints.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/knifesharp-api","description":"oanor gateway"}],"tags":[{"name":"Sharpening"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/angle":{"get":{"operationId":"get_v1_angle","tags":["Sharpening"],"summary":"Angle from a measured bevel","description":"","parameters":[{"name":"thickness_mm","in":"query","required":true,"description":"Blade thickness (mm)","schema":{"type":"string"},"example":"2"},{"name":"bevel_width_mm","in":"query","required":true,"description":"Measured bevel face width (mm)","schema":{"type":"string"},"example":"3.864"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Inverse of the bevel geometry: per-side angle = asin((thickness ÷ 2) ÷ bevel width). Measure the shiny bevel with the marker (Sharpie) method — colour the edge, take a stroke, see where it removed ink — then read your real angle here.","inputs":{"thickness_mm":2,"bevel_width_mm":3.864},"per_side_deg":15,"inclusive_deg":30},"meta":{"timestamp":"2026-06-06T07:14:00.429Z","request_id":"2e88a53e-3626-4685-a7f1-d754d28cfbf9"},"status":"ok","message":"Angle from bevel","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/bevel":{"get":{"operationId":"get_v1_bevel","tags":["Sharpening"],"summary":"Bevel geometry","description":"","parameters":[{"name":"thickness_mm","in":"query","required":true,"description":"Blade thickness at the shoulder (mm)","schema":{"type":"string"},"example":"2"},{"name":"per_side_deg","in":"query","required":false,"description":"Per-side angle (deg)","schema":{"type":"string"},"example":"15"},{"name":"inclusive_deg","in":"query","required":false,"description":"Inclusive angle (deg) — alternative","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Symmetric V-edge: each bevel face width = (thickness ÷ 2) ÷ sin(per-side angle); the inclusive angle is twice the per-side. A lower angle is sharper but weaker. Add a tiny micro-bevel a few degrees higher for durability.","inputs":{"per_side_deg":15,"thickness_mm":2},"per_side_deg":15,"inclusive_deg":30,"bevel_width_mm":3.864},"meta":{"timestamp":"2026-06-06T07:14:00.516Z","request_id":"8935ce4b-3415-4f46-b34c-f78c33cf5b18"},"status":"ok","message":"Bevel geometry","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/recommend":{"get":{"operationId":"get_v1_recommend","tags":["Sharpening"],"summary":"Recommended angle by use","description":"","parameters":[{"name":"use","in":"query","required":false,"description":"razor, kitchen_japanese, kitchen_western, edc, outdoor, cleaver, axe, chisel","schema":{"type":"string"},"example":"kitchen_western"},{"name":"inclusive_deg","in":"query","required":false,"description":"Convert this inclusive angle","schema":{"type":"string"}},{"name":"per_side_deg","in":"query","required":false,"description":"Convert this per-side angle","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Inclusive edge angles by use. Lower = keener but chips/rolls sooner; higher = tougher but less keen. Pass inclusive_deg or per_side_deg to also convert a specific angle.","inputs":{"use":"kitchen_western"},"typical_for":"Western chef's knives, general kitchen","per_side_deg_range":"15-20°","inclusive_deg_range":"30-40°"},"meta":{"timestamp":"2026-06-06T07:14:00.582Z","request_id":"556a0336-feb6-4e0b-8c11-580c0b2a2261"},"status":"ok","message":"Recommended angle","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"notes":"Symmetric V-edge model; thickness in mm, angles in degrees. Bevel width = (thickness/2)/sin(per-side); per-side = asin((thickness/2)/width). Inclusive = 2 × per-side. Use the marker method to measure your real angle.","service":"knifesharp-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/angle":"Per-side and inclusive angle from a measured bevel width and thickness.","GET /v1/bevel":"Bevel face width from blade thickness and per-side (or inclusive) angle.","GET /v1/recommend":"Recommended inclusive angle range by use, with inclusive ↔ per-side conversion."},"description":"Knife-sharpening maths: bevel geometry from thickness and angle, the inverse angle from a measured bevel, and recommended angles by use."},"meta":{"timestamp":"2026-06-06T07:14:00.630Z","request_id":"0d22235a-9eb4-4d0f-8ae7-1d63e8074fee"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":6850,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":432,"monthly_call_quota":55200,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1185,"monthly_call_quota":227000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":3690,"monthly_call_quota":1328000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/knifesharp-api"}