{"openapi":"3.1.0","info":{"title":"Elevator Traction API","version":"1.0.0","description":"Traction-elevator engineering maths as an API, computed locally and deterministically — the counterweight, hoist-motor and rope-traction numbers a lift engineer or building-services designer sizes a passenger elevator with. The counterweight endpoint gives the balancing mass = the empty car plus a fraction of the rated load (the overbalance, typically 40–50 %, 45 % common), so a 1,000 kg car rated for 1,000 kg uses a 1,450 kg counterweight — the car and weight balance near half load and the machine is sized for the worst-case imbalance, not the full load. The motor-power endpoint uses that: because the counterweight cancels most of the car, the motor only lifts the out-of-balance load = rated load × (1 − overbalance), so power = that × g × speed ÷ efficiency (~65–75 % geared) — a 1,000 kg lift at 1.5 m/s needs only about 11–12 kW, half what a counterweight-less hoist would draw. The traction-ratio endpoint checks the friction grip: a traction elevator moves the ropes by friction over the sheave, so the available traction (e^(μθ), the capstan equation) must beat the T1/T2 tension ratio at both worst cases — a full car at the bottom and an empty car at the top — and it returns the governing ratio. Everything is computed locally and deterministically, so it is instant and private. Ideal for lift-design and building-services tools, vertical-transport and MEP utilities, and engineering calculators. Pure local computation — no key, no third-party service, instant. Sizing estimates — follow the lift code and maker data. 3 compute endpoints. For block-and-tackle use a pulley API; for capstan friction a capstan API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/elevator-api","description":"oanor gateway"}],"tags":[{"name":"Elevator"},{"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/counterweight":{"get":{"operationId":"get_v1_counterweight","tags":["Elevator"],"summary":"Counterweight from car and load","description":"","parameters":[{"name":"car_weight_kg","in":"query","required":true,"description":"Empty car weight (kg)","schema":{"type":"string"},"example":"1000"},{"name":"rated_load_kg","in":"query","required":true,"description":"Rated load (kg)","schema":{"type":"string"},"example":"1000"},{"name":"balance_pct","in":"query","required":false,"description":"Overbalance % (default 45)","schema":{"type":"string"},"example":"45"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"The counterweight is set to the empty car plus a fraction of the rated load — the overbalance, typically 40–50 % (45 % is common). At that load the car and counterweight balance and the motor barely works; lighter or heavier loads tip the balance one way and the motor makes up the difference. So a 1,000 kg car rated for 1,000 kg at 45 % overbalance uses a 1,450 kg counterweight, and the machine is sized for the worst-case imbalance, not the full load.","inputs":{"balance_pct":45,"car_weight_kg":1000,"rated_load_kg":1000},"overbalance_pct":45,"counterweight_kg":1450},"meta":{"timestamp":"2026-06-07T08:17:57.726Z","request_id":"e26e6358-9715-4f6d-a38d-c795b253e640"},"status":"ok","message":"Counterweight","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/motor-power":{"get":{"operationId":"get_v1_motor_power","tags":["Elevator"],"summary":"Hoist-motor power at full load","description":"","parameters":[{"name":"rated_load_kg","in":"query","required":true,"description":"Rated load (kg)","schema":{"type":"string"},"example":"1000"},{"name":"speed_mps","in":"query","required":true,"description":"Car speed (m/s)","schema":{"type":"string"},"example":"1.5"},{"name":"balance_pct","in":"query","required":false,"description":"Overbalance % (default 45)","schema":{"type":"string"},"example":"45"},{"name":"efficiency_pct","in":"query","required":false,"description":"Drive efficiency % (default 70)","schema":{"type":"string"},"example":"70"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Because the counterweight cancels most of the car, the hoist motor only lifts the out-of-balance load = rated load × (1 − overbalance). Power = that mass × g × speed ÷ efficiency (~65–75 % for a geared machine, higher gearless). A 1,000 kg lift at 45 % overbalance and 1.5 m/s needs the motor to lift ~550 kg, about 11–12 kW — far less than the ~21 kW a hoist without a counterweight would need.","inputs":{"speed_mps":1.5,"balance_pct":45,"rated_load_kg":1000,"efficiency_pct":70},"motor_power_hp":15.5,"motor_power_kw":11.56,"out_of_balance_load_kg":550},"meta":{"timestamp":"2026-06-07T08:17:57.839Z","request_id":"c000e185-ef64-460c-bcfe-724e78f09aad"},"status":"ok","message":"Motor 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/traction-ratio":{"get":{"operationId":"get_v1_traction_ratio","tags":["Elevator"],"summary":"Rope-traction T1/T2 ratio","description":"","parameters":[{"name":"car_weight_kg","in":"query","required":true,"description":"Empty car weight (kg)","schema":{"type":"string"},"example":"1000"},{"name":"counterweight_kg","in":"query","required":true,"description":"Counterweight (kg)","schema":{"type":"string"},"example":"1450"},{"name":"rated_load_kg","in":"query","required":true,"description":"Rated load (kg)","schema":{"type":"string"},"example":"1000"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Traction elevators move the ropes by friction over the sheave, so the heavier side cannot out-pull the grip: the available traction (e^(μθ), the capstan equation) must exceed the T1/T2 tension ratio in both worst cases — a full car at the bottom (car side heaviest) and an empty car at the top (counterweight side heaviest). The governing ratio is the larger; keep the sheave groove friction and wrap angle above it, or the ropes slip.","inputs":{"car_weight_kg":1000,"rated_load_kg":1000,"counterweight_kg":1450},"governing_ratio":1.45,"ratio_empty_car":1.45,"ratio_full_load":1.379},"meta":{"timestamp":"2026-06-07T08:17:57.919Z","request_id":"1e9d4fc5-b7ad-4b33-854e-e65102acbc0c"},"status":"ok","message":"Traction 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/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"notes":"SI (kg, m/s, kW). counterweight = car + overbalance·load; motor power = load·(1−overbalance)·g·speed/eff; traction ratio = heavier side / lighter side (compare to e^(μθ)). For block-and-tackle use a pulley API; for capstan friction a capstan API.","service":"elevator-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/motor-power":"Hoist-motor power at full load.","GET /v1/counterweight":"Counterweight mass from car, rated load and overbalance.","GET /v1/traction-ratio":"T1/T2 ratio at the two worst cases."},"description":"Traction-elevator maths: counterweight from car and load, hoist-motor power, and rope-traction T1/T2 ratio."},"meta":{"timestamp":"2026-06-07T08:17:58.005Z","request_id":"8a0897bf-31d9-405f-8cf1-4a29b9102895"},"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":4650,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1310,"monthly_call_quota":48500,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":4120,"monthly_call_quota":207000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":12650,"monthly_call_quota":1105000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/elevator-api"}