{"openapi":"3.1.0","info":{"title":"Drone Build API","version":"1.0.0","description":"Multirotor (drone) flight maths as an API, computed locally and deterministically — the thrust, efficiency and hover numbers an FPV builder or UAV designer dials a quadcopter in with. The thrust-weight endpoint gives the thrust-to-weight ratio, total motor thrust ÷ all-up weight: aim for at least 2:1 so the craft has authority to hold position and fight wind, with freestyle wanting 3–5:1 and heavy-lift living near 1.5:1 — four 800-gram motors on a 1,200-gram quad is a punchy 2.67:1. The disk-loading endpoint gives the rotor disk loading, weight ÷ total prop disk area, where lower is more efficient: big slow props move more air for less power, which is why endurance and cinematic rigs run large props at low disk loading. The hover-throttle endpoint gives the hover throttle, all-up weight ÷ total thrust — a good build hovers near 40–50 % leaving headroom for manoeuvres, while hovering above ~60 % means it is overweight, sluggish and runs hot. Everything is computed locally and deterministically, so it is instant and private. Ideal for FPV and drone-build apps, UAV-design and motor-selection tools, hobbyist calculators, and maker sites. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. Estimates — bench-test motors at your voltage and prop. For battery runtime use a battery API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/drone-api","description":"oanor gateway"}],"tags":[{"name":"Drone"},{"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/disk-loading":{"get":{"operationId":"get_v1_disk_loading","tags":["Drone"],"summary":"Rotor disk loading","description":"","parameters":[{"name":"auw_g","in":"query","required":true,"description":"All-up weight in grams","schema":{"type":"string"},"example":"1200"},{"name":"motor_count","in":"query","required":true,"description":"Number of motors","schema":{"type":"string"},"example":"4"},{"name":"prop_diameter_in","in":"query","required":true,"description":"Prop diameter in inches","schema":{"type":"string"},"example":"5"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Disk loading = all-up weight ÷ total rotor disk area. Lower is more efficient — big slow props move more air for less power, giving longer flight and a smoother hover, which is why endurance and heavy-lift rigs run large props at low disk loading. Racers accept high disk loading for response.","inputs":{"auw_g":1200,"motor_count":4,"prop_diameter_in":5},"disk_loading_g_cm2":2.368,"disk_loading_lb_ft2":4.85,"total_disk_area_cm2":506.7},"meta":{"timestamp":"2026-06-06T23:53:56.581Z","request_id":"89cac87d-4bcd-41ea-9432-f2fa9f67bb58"},"status":"ok","message":"Disk loading","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/hover-throttle":{"get":{"operationId":"get_v1_hover_throttle","tags":["Drone"],"summary":"Hover throttle and headroom","description":"","parameters":[{"name":"motor_thrust_g","in":"query","required":true,"description":"Max thrust per motor in grams","schema":{"type":"string"},"example":"800"},{"name":"motor_count","in":"query","required":true,"description":"Number of motors","schema":{"type":"string"},"example":"4"},{"name":"auw_g","in":"query","required":true,"description":"All-up weight in grams","schema":{"type":"string"},"example":"1200"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Hover throttle ≈ all-up weight ÷ total max thrust. A good build hovers around 40–50 %, leaving plenty of headroom for manoeuvres and wind; hovering above ~60 % means the craft is overweight or underpowered and will feel sluggish and run hot. Lower hover throttle also means cooler motors and longer flights.","inputs":{"auw_g":1200,"motor_count":4,"motor_thrust_g":800},"headroom_pct":62.5,"hover_throttle_pct":37.5},"meta":{"timestamp":"2026-06-06T23:53:56.673Z","request_id":"c5393c34-673b-4b33-8a93-0508a8c96947"},"status":"ok","message":"Hover throttle","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/thrust-weight":{"get":{"operationId":"get_v1_thrust_weight","tags":["Drone"],"summary":"Thrust-to-weight ratio","description":"","parameters":[{"name":"motor_thrust_g","in":"query","required":true,"description":"Max thrust per motor in grams","schema":{"type":"string"},"example":"800"},{"name":"motor_count","in":"query","required":true,"description":"Number of motors","schema":{"type":"string"},"example":"4"},{"name":"auw_g","in":"query","required":true,"description":"All-up weight in grams","schema":{"type":"string"},"example":"1200"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Thrust-to-weight = total max motor thrust ÷ all-up weight. Aim for at least 2:1 so the craft has authority to hold position and recover; freestyle wants 3–5:1, heavy-lift/cinematic can live near 1.5:1. Below 2:1 it feels mushy and struggles in wind.","inputs":{"auw_g":1200,"motor_count":4,"motor_thrust_g":800},"flight_class":"agile / freestyle","total_thrust_g":3200,"thrust_to_weight":2.67},"meta":{"timestamp":"2026-06-06T23:53:56.763Z","request_id":"5856a586-5a5e-42a5-ba0d-7eef3bddf3d8"},"status":"ok","message":"Thrust-to-weight","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":"Grams & inches. TWR = total thrust ÷ AUW (aim ≥2:1); disk loading = AUW ÷ total disk area (lower = efficient); hover ≈ AUW ÷ total thrust (target 40–50 %). Estimates — bench-test motors at your voltage/prop. For battery runtime use a battery API.","service":"drone-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/disk-loading":"Rotor disk loading from weight, motor count and prop diameter.","GET /v1/thrust-weight":"Thrust-to-weight ratio from motor thrust, count and all-up weight.","GET /v1/hover-throttle":"Hover throttle % and headroom."},"description":"Multirotor (drone) flight maths: thrust-to-weight ratio, rotor disk loading, and hover throttle."},"meta":{"timestamp":"2026-06-06T23:53:56.817Z","request_id":"c103fa67-5f85-43d1-b68a-d351c570022d"},"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":750,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":445,"monthly_call_quota":18000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1530,"monthly_call_quota":105000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":4700,"monthly_call_quota":360000,"rps_limit":48,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/drone-api"}