{"openapi":"3.1.0","info":{"title":"VO2 Max API","version":"1.0.0","description":"Aerobic-capacity (VO2 max) estimation as an API, computed locally and deterministically. The cooper endpoint estimates VO2 max from the Cooper 12-minute run test, VO2max = (distance − 504.9)/44.73, from the distance covered in twelve minutes. The resting endpoint uses the resting heart-rate (Uth-Sørensen) method, VO2max = 15.3 × (HRmax/HRrest), with the maximum heart rate taken directly or as 220 − age — a lower resting pulse signals better fitness. The rockport endpoint applies the Rockport one-mile walk test, a multiple-regression formula on age, weight, sex, walk time and the heart rate at the finish, the most accessible sub-maximal field test. Each result comes with a broad fitness rating from poor to superior and the value in mL/kg/min. Everything is computed locally and deterministically, so it is instant and private. Ideal for fitness, running and endurance-training app developers, coaching and assessment tools, sports-science and wellness dashboards. Pure local computation — no key, no third-party service, instant. Live, nothing stored. Estimates only, not medical advice. 3 endpoints. This is aerobic-capacity estimation; for heart-rate zones use a heart-rate API and for basal metabolism use a BMR API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/vo2max-api","description":"oanor gateway"}],"tags":[{"name":"VO2 Max"},{"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/cooper":{"get":{"operationId":"get_v1_cooper","tags":["VO2 Max"],"summary":"Cooper 12-minute test","description":"","parameters":[{"name":"distance","in":"query","required":true,"description":"Distance run in 12 minutes (m)","schema":{"type":"string"},"example":"2400"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Cooper 12-minute test: VO2max = (distance − 504.9)/44.73, distance in metres run in 12 minutes.","inputs":{"distance_m":2400},"rating":"good","vo2max_ml_kg_min":42.3675},"meta":{"timestamp":"2026-06-04T18:38:21.150Z","request_id":"f48bae17-d128-440a-a5f9-29dfae672594"},"status":"ok","message":"Cooper test","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/resting":{"get":{"operationId":"get_v1_resting","tags":["VO2 Max"],"summary":"Resting heart-rate method","description":"","parameters":[{"name":"resting_heart_rate","in":"query","required":true,"description":"Resting heart rate (bpm)","schema":{"type":"string"},"example":"60"},{"name":"max_heart_rate","in":"query","required":false,"description":"Max heart rate (bpm)","schema":{"type":"string"}},{"name":"age","in":"query","required":false,"description":"Or age (for 220 − age)","schema":{"type":"string"},"example":"30"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"VO2max = 15.3 × (HRmax/HRrest). HRmax from input or 220 − age. A lower resting HR raises the estimate.","inputs":{"max_heart_rate":190,"resting_heart_rate":60},"rating":"good","vo2max_ml_kg_min":48.45},"meta":{"timestamp":"2026-06-04T18:38:21.257Z","request_id":"b76a1e12-3f47-4286-9d5a-4951e04e89a2"},"status":"ok","message":"Resting HR method","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/rockport":{"get":{"operationId":"get_v1_rockport","tags":["VO2 Max"],"summary":"Rockport 1-mile walk test","description":"","parameters":[{"name":"sex","in":"query","required":true,"description":"male | female","schema":{"type":"string"},"example":"male"},{"name":"age","in":"query","required":true,"description":"Age (years)","schema":{"type":"string"},"example":"30"},{"name":"weight","in":"query","required":true,"description":"Weight (kg)","schema":{"type":"string"},"example":"80"},{"name":"walk_time","in":"query","required":true,"description":"Time to walk 1 mile (minutes)","schema":{"type":"string"},"example":"13"},{"name":"heart_rate","in":"query","required":true,"description":"Heart rate at finish (bpm)","schema":{"type":"string"},"example":"140"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Rockport 1-mile walk: VO2max = 132.853 − 0.0769·lb − 0.3877·age + 6.315·sex − 3.2649·time − 0.1565·HR (sex: male 1, female 0).","inputs":{"age":30,"sex":"male","weight_kg":80,"heart_rate":140,"walk_time_min":13},"rating":"good","vo2max_ml_kg_min":49.6205},"meta":{"timestamp":"2026-06-04T18:38:21.345Z","request_id":"dd12fe89-959d-4cf0-bd37-eeac894fd6f9"},"status":"ok","message":"Rockport walk test","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":"VO2max in mL/kg/min. Distances in metres, weight in kg, time in minutes, heart rate in bpm. Ratings are broad bands — true fitness norms depend on age and sex. Estimates only, not medical advice.","service":"vo2max-api","formulae":{"cooper":"VO2 = (distance − 504.9)/44.73","resting":"VO2 = 15.3 × HRmax/HRrest","rockport":"VO2 = 132.853 − 0.0769·lb − 0.3877·age + 6.315·sex − 3.2649·time − 0.1565·HR"},"endpoints":{"GET /v1/meta":"This document.","GET /v1/cooper":"VO2max from the Cooper 12-minute run distance.","GET /v1/resting":"VO2max from the ratio of max to resting heart rate.","GET /v1/rockport":"VO2max from the Rockport 1-mile walk test (age, weight, sex, time, HR)."},"description":"VO2 max (aerobic capacity) estimator: Cooper 12-minute run, resting heart-rate method and Rockport 1-mile walk test."},"meta":{"timestamp":"2026-06-04T18:38:21.444Z","request_id":"870773b8-bd4c-4993-b330-d8d22b3ba843"},"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":3000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":400,"monthly_call_quota":40000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1200,"monthly_call_quota":250000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":3900,"monthly_call_quota":1528000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/vo2max-api"}