{"openapi":"3.1.0","info":{"title":"Archery & Arrow API","version":"1.0.0","description":"Archery and arrow maths as an API, computed locally and deterministically — the FOC, energy and arrow-weight numbers an archer or bowhunter tunes a setup with. The FOC endpoint finds the front-of-center balance, the share of an arrow’s weight that sits forward of the middle: FOC = ((balance point − length ÷ 2) ÷ length) × 100 measured from the throat of the nock, so a 28-inch arrow balancing at 16 inches is 7.1 % — and it bands the result, since target archers run about 7–12 % while hunters push 12–19 % for penetration and forgiveness. The energy endpoint turns arrow weight and speed into terminal performance: kinetic energy (ft-lb) = grains × fps² ÷ 450,240 and momentum (slug-fps) = grains × fps ÷ 225,218, so a 400-grain arrow at 280 fps carries about 69.7 ft-lb and 0.50 slug-fps, with a suggested game class — momentum, not KE, is the better penetration predictor for heavy arrows. The weight endpoint totals a finished arrow from its parts — shaft (grains-per-inch × length) plus point, insert, nock and fletching — and divides by draw weight for grains-per-pound, flagging the 5-GPP minimum that protects the bow. Everything is computed locally and deterministically, so it is instant and private. Ideal for archery, bowhunting, traditional-archery and outdoor-sports app developers, arrow-builder and bow-tuning tools, and pro-shop calculators. Pure local computation — no key, no third-party service, instant. Imperial archery units. Live, nothing stored. 3 compute endpoints. For sight marks or bow tuning use a different API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/archery-api","description":"oanor gateway"}],"tags":[{"name":"Archery"},{"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/energy":{"get":{"operationId":"get_v1_energy","tags":["Archery"],"summary":"Kinetic energy + momentum","description":"","parameters":[{"name":"arrow_grains","in":"query","required":true,"description":"Total arrow weight (grains)","schema":{"type":"string"},"example":"400"},{"name":"speed_fps","in":"query","required":true,"description":"Arrow speed (fps)","schema":{"type":"string"},"example":"280"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"KE (ft-lb) = grains × fps² ÷ 450,240. Momentum (slug-fps) = grains × fps ÷ 225,218. Momentum predicts penetration better than KE for heavy arrows. Common bowhunting guidance: 25+ ft-lb deer, 40+ elk.","inputs":{"speed_fps":280,"arrow_grains":400},"suggested_game":"tough/dangerous game","momentum_slug_fps":0.4973,"kinetic_energy_ftlb":69.65},"meta":{"timestamp":"2026-06-06T07:14:04.909Z","request_id":"6b1301ff-fd41-4743-a52e-2f3792db1ac5"},"status":"ok","message":"Kinetic energy","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/foc":{"get":{"operationId":"get_v1_foc","tags":["Archery"],"summary":"Front-of-center balance","description":"","parameters":[{"name":"arrow_length_in","in":"query","required":true,"description":"Overall arrow length (in)","schema":{"type":"string"},"example":"28"},{"name":"balance_point_in","in":"query","required":true,"description":"Balance point from nock throat (in)","schema":{"type":"string"},"example":"16"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"band":"normal (target / general 7–12 %)","note":"FOC = ((balance point − arrow length ÷ 2) ÷ arrow length) × 100, balance measured from the throat of the nock. Target archers run ~7–12 %, hunters 12–19 % for better penetration and forgiveness.","inputs":{"arrow_length_in":28,"balance_point_in":16},"center_in":14,"foc_percent":7.14},"meta":{"timestamp":"2026-06-06T07:14:05.009Z","request_id":"c45e8d23-4f27-4cc3-8453-7c0b050ac02d"},"status":"ok","message":"Arrow FOC","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/weight":{"get":{"operationId":"get_v1_weight","tags":["Archery"],"summary":"Total arrow weight + GPP","description":"","parameters":[{"name":"shaft_gpi","in":"query","required":true,"description":"Shaft grains per inch","schema":{"type":"string"},"example":"9.3"},{"name":"shaft_length_in","in":"query","required":true,"description":"Shaft length (in)","schema":{"type":"string"},"example":"28"},{"name":"point_grains","in":"query","required":false,"description":"Point weight (default 100)","schema":{"type":"string"},"example":"100"},{"name":"insert_grains","in":"query","required":false,"description":"Insert weight (default 20)","schema":{"type":"string"},"example":"20"},{"name":"nock_grains","in":"query","required":false,"description":"Nock weight (default 10)","schema":{"type":"string"},"example":"10"},{"name":"fletching_grains","in":"query","required":false,"description":"Total fletching weight (default 21)","schema":{"type":"string"},"example":"21"},{"name":"draw_weight_lb","in":"query","required":false,"description":"Bow draw weight (gives GPP)","schema":{"type":"string"},"example":"60"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Total = shaft (GPI × length) + point + insert + nock + fletching. Grains-per-pound (GPP) = total ÷ draw weight; keep GPP ≥ 5 to protect the bow, ~5–6.5 for hunting penetration.","safe":true,"inputs":{"shaft_gpi":9.3,"nock_grains":10,"point_grains":100,"insert_grains":20,"shaft_length_in":28,"fletching_grains":21},"shaft_grains":260.4,"draw_weight_lb":60,"grains_per_pound":6.86,"total_arrow_grains":411.4,"front_weight_percent":29.17},"meta":{"timestamp":"2026-06-06T07:14:05.121Z","request_id":"9996b6d1-9e0e-4e74-a194-0da29d0e6c3a"},"status":"ok","message":"Arrow 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":"Imperial archery units: inches, grains, fps. KE = grains × fps² ÷ 450,240; momentum = grains × fps ÷ 225,218; FOC from the AMO method. For bow tuning or sight marks use a different API.","service":"archery-api","endpoints":{"GET /v1/foc":"Front-of-center balance percentage from arrow length and balance point.","GET /v1/meta":"This document.","GET /v1/energy":"Kinetic energy and momentum from arrow weight and speed.","GET /v1/weight":"Total finished arrow weight from components, plus grains-per-pound."},"description":"Archery maths: arrow FOC balance, kinetic energy & momentum, and total arrow weight from components with grains-per-pound."},"meta":{"timestamp":"2026-06-06T07:14:05.224Z","request_id":"abac72c2-4a28-4529-9a90-17a0494ee97f"},"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":7050,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":430,"monthly_call_quota":55500,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1190,"monthly_call_quota":228500,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":3780,"monthly_call_quota":1325000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/archery-api"}