{"openapi":"3.1.0","info":{"title":"Capstan & Belt Friction API","version":"1.0.0","description":"Capstan and belt-friction maths (the Euler-Eytelwein equation) as an API, computed locally and deterministically. The capstan endpoint applies T1/T2 = e^(μ·β) — the ratio of the tight-side to the slack-side tension of a rope or belt wrapped around a drum depends only on the friction coefficient and the wrap angle, not the drum diameter — and solves for whichever of the two tensions, the friction or the wrap angle you leave out, with the wrap angle given in degrees, radians or whole turns. The holding endpoint shows the capstan effect: how a small force holds or moves a large load, holding force = Load·e^(−μβ) and pulling force = Load·e^(+μβ) — a few turns of rope around a bollard lets one person hold a ship. The belt endpoint sizes a belt drive: from the maximum tight-side tension, the friction and the wrap angle it gives the slack-side tension, the effective (net) tension T1 − T2 that drives the load and, with the belt speed, the maximum power transmittable before the belt slips. Everything is computed locally and deterministically, so it is instant and private. Ideal for mechanical and marine-engineering tools, belt-drive, winch, hoist and band-brake design, climbing and rigging apps, and physics education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is belt and rope friction; for belt length, wrap angle and speed ratio use a belt-drive API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/capstan-api","description":"oanor gateway"}],"tags":[{"name":"Capstan"},{"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/belt":{"get":{"operationId":"get_v1_belt","tags":["Capstan"],"summary":"Belt-drive tension & power","description":"","parameters":[{"name":"friction","in":"query","required":true,"description":"Coefficient of friction μ","schema":{"type":"string"},"example":"0.3"},{"name":"wrap_angle","in":"query","required":false,"description":"Wrap angle (degrees)","schema":{"type":"string"},"example":"180"},{"name":"turns","in":"query","required":false,"description":"Or number of turns","schema":{"type":"string"}},{"name":"max_tension","in":"query","required":true,"description":"Maximum tight-side tension T1 (N)","schema":{"type":"string"},"example":"1000"},{"name":"belt_speed","in":"query","required":false,"description":"Belt speed (m/s) for max power","schema":{"type":"string"},"example":"10"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"turns":0.5,"formula":"T2 = T1/e^(μβ); effective tension = T1 − T2; power = (T1−T2)·v.","max_power_w":6103.388626,"max_power_kw":6.10338863,"belt_speed_ms":10,"tension_ratio":2.5663324,"wrap_angle_deg":180,"wrap_angle_rad":3.14159265,"slack_tension_n":389.661137,"tight_tension_n":1000,"effective_tension_n":610.338863,"friction_coefficient":0.3},"meta":{"timestamp":"2026-06-04T10:18:39.820Z","request_id":"e8da05f4-b0e0-4d35-a669-37bf3971314b"},"status":"ok","message":"Belt-drive tension & power","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/capstan":{"get":{"operationId":"get_v1_capstan","tags":["Capstan"],"summary":"Euler-Eytelwein tension ratio","description":"","parameters":[{"name":"tight_tension","in":"query","required":false,"description":"Tight-side tension T1 (N)","schema":{"type":"string"}},{"name":"slack_tension","in":"query","required":false,"description":"Slack-side tension T2 (N)","schema":{"type":"string"},"example":"100"},{"name":"friction","in":"query","required":false,"description":"Coefficient of friction μ","schema":{"type":"string"},"example":"0.3"},{"name":"wrap_angle","in":"query","required":false,"description":"Wrap angle (degrees)","schema":{"type":"string"},"example":"180"},{"name":"turns","in":"query","required":false,"description":"Or number of turns","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"turns":0.5,"formula":"T1/T2 = e^(μ·β) (Euler-Eytelwein); β = wrap angle in radians.","tension_ratio":2.5663324,"wrap_angle_deg":180,"wrap_angle_rad":3.14159265,"slack_tension_n":100,"tight_tension_n":256.63324,"friction_coefficient":0.3},"meta":{"timestamp":"2026-06-04T10:18:39.925Z","request_id":"2190e791-71eb-47e1-bd23-ae4fad5ee1a1"},"status":"ok","message":"Euler-Eytelwein tension ratio","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/holding":{"get":{"operationId":"get_v1_holding","tags":["Capstan"],"summary":"Capstan holding & pulling force","description":"","parameters":[{"name":"load","in":"query","required":true,"description":"Load to hold/move (N)","schema":{"type":"string"},"example":"1000"},{"name":"friction","in":"query","required":true,"description":"Coefficient of friction μ","schema":{"type":"string"},"example":"0.2"},{"name":"wrap_angle","in":"query","required":false,"description":"Wrap angle (degrees)","schema":{"type":"string"}},{"name":"turns","in":"query","required":false,"description":"Or number of turns","schema":{"type":"string"},"example":"3"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"turns":3,"load_n":1000,"formula":"hold = Load·e^(−μβ); pull = Load·e^(+μβ).","tension_ratio":43.37621218,"wrap_angle_deg":1080,"wrap_angle_rad":18.84955592,"holding_force_n":23.054111,"pulling_force_n":43376.212176,"friction_coefficient":0.2,"mechanical_advantage":43.376212},"meta":{"timestamp":"2026-06-04T10:18:40.020Z","request_id":"446af093-7862-4197-9a88-761e9c511298"},"status":"ok","message":"Capstan holding & pulling force","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":{"api":"capstan","note":"Capstan / belt friction (Euler-Eytelwein) — computed locally and deterministically, no key, no third-party service.","endpoints":["/v1/capstan","/v1/holding","/v1/belt","/v1/meta"]},"meta":{"timestamp":"2026-06-04T10:18:40.121Z","request_id":"c8583dc8-b952-40b9-a6c0-a711b2155084"},"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":2000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":900,"monthly_call_quota":25000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2400,"monthly_call_quota":150000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":7500,"monthly_call_quota":1035000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/capstan-api"}