{"openapi":"3.1.0","info":{"title":"Pulley System API","version":"1.0.0","description":"Pulley and block-and-tackle mechanics as an API, computed locally and deterministically. The advantage endpoint computes the mechanical advantage of a pulley system — the ideal MA equals the number of rope parts supporting the load, which is also the velocity ratio — and returns the effort needed to hold or raise a load, effort = load/(n·efficiency), the length of rope that must be pulled (n times the lift height) and the work in and out. The friction endpoint models a real block and tackle where every sheave loses a little tension: the mechanical advantage becomes MA = e·(1−eⁿ)/(1−e) for a per-sheave efficiency e (≈0.96 for a plain bearing, ≈0.98 for a ball bearing), so it returns the true MA, the overall efficiency and the extra effort friction costs you. The solve endpoint takes any two of the load, the effort and the number of rope parts and returns the third — for example, how many parts you need so a given person can raise a given load, or the heaviest load a winch can lift. Everything is computed locally and deterministically, so it is instant and private. Ideal for rigging, lifting and hoist-design tools, sailing, climbing and theatre-rigging apps, crane and winch sizing, and physics education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is pulley and block-and-tackle mechanics; for lever and moment balance use a lever API and for rope-around-a-drum capstan friction use a capstan API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/pulley-api","description":"oanor gateway"}],"tags":[{"name":"Pulley"},{"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/advantage":{"get":{"operationId":"get_v1_advantage","tags":["Pulley"],"summary":"Mechanical advantage","description":"","parameters":[{"name":"segments","in":"query","required":true,"description":"Rope parts supporting the load","schema":{"type":"string"},"example":"4"},{"name":"load","in":"query","required":false,"description":"Load to raise (N)","schema":{"type":"string"},"example":"1000"},{"name":"efficiency","in":"query","required":false,"description":"Overall efficiency (0–1, default 1)","schema":{"type":"string"},"example":"1"},{"name":"distance","in":"query","required":false,"description":"Lift height (m) for rope travel & work","schema":{"type":"string"},"example":"2"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Ideal MA equals the number of rope parts supporting the load (= velocity ratio). Effort = load/(n·efficiency).","inputs":{"load":1000,"distance":2,"segments":4,"efficiency":1},"effort_n":250,"work_input_j":2000,"rope_pulled_m":8,"work_output_j":2000,"ideal_effort_n":250,"velocity_ratio":4,"overall_efficiency":1,"ideal_mechanical_advantage":4,"actual_mechanical_advantage":4},"meta":{"timestamp":"2026-06-04T18:38:28.315Z","request_id":"9559b30c-273b-4569-a07a-c4f5133be7f1"},"status":"ok","message":"Mechanical advantage","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/friction":{"get":{"operationId":"get_v1_friction","tags":["Pulley"],"summary":"Sheave-friction MA","description":"","parameters":[{"name":"segments","in":"query","required":true,"description":"Rope parts supporting the load","schema":{"type":"string"},"example":"4"},{"name":"sheave_efficiency","in":"query","required":false,"description":"Per-sheave efficiency e (default 0.96)","schema":{"type":"string"},"example":"0.95"},{"name":"load","in":"query","required":false,"description":"Load to raise (N)","schema":{"type":"string"},"example":"1000"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Each sheave loses a fraction of the tension; MA = e·(1−eⁿ)/(1−e). e≈0.96 plain bearing, ≈0.98 ball bearing.","inputs":{"load":1000,"segments":4,"sheave_efficiency":0.95},"effort_n":283.7377,"ideal_effort_n":250,"friction_penalty_n":33.7377,"overall_efficiency":0.881095,"mechanical_advantage":3.524381,"ideal_mechanical_advantage":4},"meta":{"timestamp":"2026-06-04T18:38:28.400Z","request_id":"15def3ee-1618-4a30-8a68-3ceb1c1ffd39"},"status":"ok","message":"Sheave-friction MA","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/solve":{"get":{"operationId":"get_v1_solve","tags":["Pulley"],"summary":"Solve load / effort / parts","description":"","parameters":[{"name":"load","in":"query","required":false,"description":"Load (N)","schema":{"type":"string"},"example":"1000"},{"name":"effort","in":"query","required":false,"description":"Available effort (N)","schema":{"type":"string"},"example":"300"},{"name":"segments","in":"query","required":false,"description":"Rope parts","schema":{"type":"string"}},{"name":"efficiency","in":"query","required":false,"description":"Overall efficiency (0–1, default 1)","schema":{"type":"string"},"example":"1"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"mode":"solve_segments","note":"Rope parts needed so the effort can raise the load. Rounded up to a whole number of parts.","inputs":{"load":1000,"effort":300,"efficiency":1},"segments_exact":3.3333,"segments_required":4},"meta":{"timestamp":"2026-06-04T18:38:28.494Z","request_id":"b17962af-a4f8-420b-bac2-7516b20bdacf"},"status":"ok","message":"Solve load/effort/segments","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":"Forces in newtons, distance in metres. 'segments' is the number of rope parts supporting the moving block. Sheave efficiency e ≈ 0.96 plain, 0.98 ball-bearing.","service":"pulley-api","formulae":{"effort":"effort = load/(n·efficiency)","ideal_ma":"MA = n (supporting rope parts) = velocity ratio","friction_ma":"MA = e·(1−eⁿ)/(1−e)"},"endpoints":{"GET /v1/meta":"This document.","GET /v1/solve":"Solve the missing one of load, effort or number of rope parts.","GET /v1/friction":"Block-and-tackle MA with per-sheave friction: MA = e·(1−eⁿ)/(1−e).","GET /v1/advantage":"Ideal mechanical advantage, effort, rope travel and work from the number of rope parts."},"description":"Pulley and block-and-tackle calculator: mechanical advantage, effort, velocity ratio and sheave-friction efficiency for rope-and-pulley lifting systems."},"meta":{"timestamp":"2026-06-04T18:38:28.591Z","request_id":"4c632db1-0179-494b-98eb-68e75264ed4e"},"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":800,"monthly_call_quota":25000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2200,"monthly_call_quota":150000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6900,"monthly_call_quota":750000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/pulley-api"}