{"openapi":"3.1.0","info":{"title":"Boat Propeller API","version":"1.0.0","description":"Boat-propeller maths as an API, computed locally and deterministically — the slip, RPM and pitch numbers that decide whether a boat hits its numbers or labours. The slip endpoint gives propeller slip from the pitch, the prop RPM and the actual boat speed: theoretical speed = pitch × prop RPM ÷ 1215, and slip = (theoretical − actual) ÷ theoretical — a 19-inch prop at 2000 RPM should make 31 knots in theory, so a real 26.6 knots is about 15 % slip, normal for a clean planing boat. The prop-rpm endpoint gives the propeller RPM from the engine RPM and the gear (reduction) ratio — a 2:1 gearbox spins the prop at half engine speed — and, with a pitch, the theoretical no-slip speed at that RPM. The pitch endpoint gives the pitch needed to reach a target speed at a prop RPM and expected slip, pitch = target × 1215 ÷ (prop RPM × (1 − slip)), so you can prop the boat to let the engine reach the top of its wide-open-throttle range instead of lugging. Everything is computed locally and deterministically, so it is instant and private. Ideal for boating and marine apps, repower and prop-shop tools, performance calculators, and seamanship study aids. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. Estimates — hull, load and bottom condition shift real slip.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/propeller-api","description":"oanor gateway"}],"tags":[{"name":"Propeller"},{"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/pitch":{"get":{"operationId":"get_v1_pitch","tags":["Propeller"],"summary":"Pitch for a target speed","description":"","parameters":[{"name":"target_speed_knots","in":"query","required":true,"description":"Target speed in knots","schema":{"type":"string"},"example":"30"},{"name":"prop_rpm","in":"query","required":true,"description":"Propeller RPM","schema":{"type":"string"},"example":"2000"},{"name":"slip_pct","in":"query","required":false,"description":"Expected slip % (default 12)","schema":{"type":"string"},"example":"12"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Required pitch = target speed × 1215 ÷ (prop RPM × (1 − slip)). More pitch is more speed per rev but loads the engine like a higher gear — too much and the engine can't reach its rated RPM. Tune pitch so the engine hits the top of its wide-open-throttle range; a 1-inch change shifts WOT RPM by roughly 150–200.","inputs":{"prop_rpm":2000,"slip_pct":12,"target_speed_knots":30},"required_pitch_in":20.7},"meta":{"timestamp":"2026-06-06T23:54:01.490Z","request_id":"6d53b3e3-0dcc-4688-b315-f4cfb4daa73d"},"status":"ok","message":"Required pitch","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/prop-rpm":{"get":{"operationId":"get_v1_prop_rpm","tags":["Propeller"],"summary":"Prop RPM from engine RPM","description":"","parameters":[{"name":"engine_rpm","in":"query","required":true,"description":"Engine RPM","schema":{"type":"string"},"example":"4000"},{"name":"gear_ratio","in":"query","required":true,"description":"Gear (reduction) ratio","schema":{"type":"string"},"example":"2"},{"name":"pitch_in","in":"query","required":false,"description":"Pitch in inches (for theoretical speed)","schema":{"type":"string"},"example":"19"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Prop RPM = engine RPM ÷ the gear (reduction) ratio — a 2:1 gearbox turns the prop at half engine speed, letting a big slow prop convert torque to thrust. Pass a pitch to also get the theoretical (no-slip) speed at that RPM.","inputs":{"engine_rpm":4000,"gear_ratio":2},"prop_rpm":2000,"theoretical_speed_knots":31.27},"meta":{"timestamp":"2026-06-06T23:54:01.569Z","request_id":"6a761c0a-4a2f-488c-aa2f-608d86abcd50"},"status":"ok","message":"Prop RPM","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/slip":{"get":{"operationId":"get_v1_slip","tags":["Propeller"],"summary":"Propeller slip","description":"","parameters":[{"name":"pitch_in","in":"query","required":true,"description":"Propeller pitch in inches","schema":{"type":"string"},"example":"19"},{"name":"prop_rpm","in":"query","required":true,"description":"Propeller RPM","schema":{"type":"string"},"example":"2000"},{"name":"actual_speed_knots","in":"query","required":true,"description":"Actual boat speed in knots","schema":{"type":"string"},"example":"26.6"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Slip = (theoretical − actual speed) ÷ theoretical, where theoretical speed = pitch × prop RPM ÷ 1215. Slip is not loss — a prop must slip to make thrust. A clean planing boat runs ~10–15 %, a heavy displacement hull or a tug far more. Way more slip than that means an over-pitched prop, a fouled bottom or a slipping clutch.","inputs":{"pitch_in":19,"prop_rpm":2000,"actual_speed_knots":26.6},"slip_pct":14.9,"theoretical_speed_knots":31.27},"meta":{"timestamp":"2026-06-06T23:54:01.635Z","request_id":"924926c6-3230-4a30-ba79-20ab78a3673d"},"status":"ok","message":"Propeller slip","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":"US units (inches, RPM, knots). Theoretical speed = pitch × prop RPM ÷ 1215; slip = (theo − actual)/theo; prop RPM = engine RPM ÷ gear ratio. Estimates — hull, load and bottom condition all shift real slip.","service":"propeller-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/slip":"Propeller slip from pitch, prop RPM and actual speed.","GET /v1/pitch":"Pitch needed to reach a target speed at a prop RPM and slip.","GET /v1/prop-rpm":"Prop RPM from engine RPM and gear ratio (and theoretical speed)."},"description":"Boat-propeller maths: propeller slip, prop RPM from engine RPM and gear ratio, and the pitch needed for a target speed."},"meta":{"timestamp":"2026-06-06T23:54:01.712Z","request_id":"fe01951a-fd28-4fc6-af00-7b0d38a0e7ed"},"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":540,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":525,"monthly_call_quota":14200,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1690,"monthly_call_quota":88000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5040,"monthly_call_quota":275000,"rps_limit":36,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/propeller-api"}