API · /bmi-api

BMI & Body Composition API

healthy 3,780 Subscribers

Body-composition maths as an API, computed locally and deterministically. The bmi endpoint computes the body mass index, BMI = weight/height², classifies it on the WHO scale (underweight, normal, overweight, obese) and returns the healthy weight range for the person's height. The idealweight endpoint computes the ideal body weight by the four classic formulas — Devine, Robinson, Miller and Hamwi — each a base weight plus an increment for every inch of height above five feet, and their average. The bodyfat endpoint estimates body-fat percentage by the US Navy circumference method from the neck and waist (and hip for women) and the height, classifies it from essential to high, and — given a weight — splits it into fat mass and lean mass. Everything is computed locally and deterministically, so it is instant and private. Ideal for fitness, health and wellness app developers, body-tracking and coaching tools, gym and clinic dashboards, and self-assessment apps. Pure local computation — no key, no third-party service, instant. Live, nothing stored. Estimates only, not medical advice. 3 endpoints. This is body composition; for basal metabolic rate and calories use a BMR API.

api.oanor.com/bmi-api
Get an API key Try in playground → Contact provider

Machine-readable spec so AI agents can integrate this API.

/api/bmi-api/openapi.json
/api/bmi-api/llms.txt

Discovery: GET /api/index.json lists every API.

BMI & Body Composition API — live data on the oanor API marketplace

API health

healthy
Uptime
100.00%
Server probes · 24h
Avg latency
78 ms
Server probes · 24h
Subscribers
3,780
active
Total calls
76
last 7 days
status Full status page → · 12 probes/24h

Pricing

Pick a tier — billed monthly, cancel anytime.

Free

Free

  • 3,000 calls / month
  • 2 requests / second
  • Hard cap (429 above quota, no overage)
  • 3,000 BMI calculations/month
  • WHO BMI classification bands
  • Metric & imperial units
  • Community support
Sign in to subscribe

Starter

€4.00 /month

  • 40,000 calls / month
  • 5 requests / second
  • Hard cap (429 above quota, no overage)
  • 40,000 calls/month
  • BMI + ideal-weight endpoints
  • Body-fat % estimation
  • Email support
Sign in to subscribe

Pro

€12.00 /month

  • 250,000 calls / month
  • 15 requests / second
  • Hard cap (429 above quota, no overage)
  • 250,000 calls/month
  • Full body-composition suite (BMI, body-fat, ideal weight)
  • Age & sex-adjusted classification
  • Priority email support
Sign in to subscribe

Mega

€39.00 /month

  • 1,500,000 calls / month
  • 40 requests / second
  • Hard cap (429 above quota, no overage)
  • 1,500,000 calls/month
  • All composition endpoints, deterministic results
  • Bulk-friendly high RPS for fitness apps
  • 99.9% uptime SLA & priority support
Sign in to subscribe

Built by

Related APIs

Other APIs with overlapping tags.

Health Calculator API — oanor API marketplace

Health Calculator API

A complete health & fitness calculator suite in one API: Body Mass Index with category and healthy-weight range, Basal Metabolic Rate (Mifflin-St Jeor and Harris-Benedict), Total Daily Energy Expenditure with weight-loss/gain calorie targets, macronutrient splits (balanced, low-carb, high-protein, keto, endurance) with fibre, U.S. Navy body-fat percentage, ideal body weight across four classic formulas (Devine, Robinson, Miller, Hamwi), and daily water intake. Every endpoint accepts GET query parameters or a JSON POST body and works in both metric and imperial units. All computation is done locally with established public-domain equations, so responses are instant and the service is always available. Ideal for fitness trackers, nutrition apps, telehealth and wellness dashboards.

api.oanor.com/healthcalc-api

Body Fat API — oanor API marketplace

Body Fat API

Body-fat-percentage and body-composition maths as an API, computed locally and deterministically. The navy endpoint applies the US Navy circumference method — for men %BF = 495/(1.0324 − 0.19077·log10(waist − neck) + 0.15456·log10(height)) − 450, and for women a formula that adds the hip measurement — to estimate body fat from a tape measure alone, returning the percentage and the fitness category (essential, athletes, fitness, acceptable or obese); a man of 178 cm with a 40 cm neck and 90 cm waist reads about 18.7 %. The deurenberg endpoint gives the BMI-based estimate %BF = 1.20·BMI + 0.23·age − 10.8·(1 if male) − 5.4 from BMI or weight and height plus age. The composition endpoint splits a total weight into fat mass and lean (fat-free) mass from a body-fat percentage. Circumferences and height are in centimetres and weight in kilograms. Everything is computed locally and deterministically, so it is instant and private. Ideal for fitness, wellness, gym, nutrition, body-tracking and health-education app developers, body-composition and progress-tracking tools, and coaching software. These are estimation formulas, not a substitute for DEXA or professional assessment. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is body-fat percentage; for body-mass index use a BMI API and for basal metabolic rate a BMR API.

api.oanor.com/bodyfat-api

Swimming API — oanor API marketplace

Swimming API

Swimming maths as an API, computed locally and deterministically — the SWOLF, threshold-pace and per-100 m numbers a swimmer, coach or training app works a set out with. The swolf endpoint scores stroke efficiency for one length: SWOLF (swim + golf) = the strokes taken plus the seconds taken, and like golf lower is better — gliding further per stroke or swimming faster both cut it, so a 25 m length in 18 strokes and 30 s is a SWOLF of 48. Because it is pool-length and stroke dependent, the score is normalized to 25 m so lengths in different pools compare. The css endpoint computes Critical Swim Speed, the swimmer's threshold pace, from two all-out time trials: CSS = (distance1 − distance2) ÷ (time1 − time2) — the classic 400 m and 200 m test, where 6:00 and 2:50 give about 1.05 m/s, a 1:35 / 100 m threshold; training paces are then set as offsets from CSS, the swimmer's equivalent of a runner's threshold or an erg's 2 k pace. The pace endpoint gives speed and the per-100 m pace swimmers actually quote (time ÷ distance × 100), so 100 m in 1:30 is a 1:30 / 100 m pace at 1.11 m/s. Everything is computed locally and deterministically, so it is instant and private. Ideal for swim-training and coaching tools, lap-tracker and triathlon apps, and fitness calculators. Pure local computation — no key, no third-party service, instant. 3 compute endpoints. For running pace use a pace API; for indoor rowing a rowing API.

api.oanor.com/swimming-api

Indoor Rowing API — oanor API marketplace

Indoor Rowing API

Indoor-rowing (Concept2 erg) maths as an API, computed locally and deterministically — the watts, split and calorie numbers a rower, coach or fitness app works a piece out with, using the published Concept2 relations. The split-to-watts endpoint turns a 500 m split into power: on an erg the power is fixed by the pace, not the stroke rate, so watts = 2.80 ÷ pace³ where the pace is the seconds per metre (the split ÷ 500) — a 2:00 split is about 202 W. Because power goes as the inverse cube of pace, small split gains cost a lot of watts: pulling 1:50 instead of 2:00 is roughly 270 W, not 220. The watts-to-split endpoint inverts it — pace = (2.80 ÷ watts)^(1/3), split = pace × 500 — so a target wattage maps to the split on the monitor and a rower's power compares directly with a cyclist's or any other watts figure. The calories endpoint applies the Concept2 calorie formula, Cal/hr = (watts × 4 × 0.8604) + 300, where the +300 is a fixed resting-metabolism term that makes the erg's count run higher than pure mechanical work; 200 W is about 988 Cal/hr, roughly 494 calories over 30 minutes. Everything is computed locally and deterministically, so it is instant and private. Ideal for rowing and erg training tools, coaching and leaderboard apps, and fitness calculators. Pure local computation — no key, no third-party service, instant. Concept2 model — a machine estimate, not lab calorimetry. 3 compute endpoints. For running pace use a pace API; for cycling a cycling API.

api.oanor.com/rowing-api

Frequently asked questions

Quick answers about pricing, quotas, and integration.

How do I get an API key for BMI & Body Composition API?
Sign up for free at oanor.com, generate an API key from the developer dashboard, and call BMI & Body Composition API with the x-oanor-key header. No credit card needed for the free tier.
What's the rate limit for BMI & Body Composition API?
Free tier allows 1 request per second. Paid plans scale up to 50 requests per second on the Mega tier. Hard limits return HTTP 429 above the quota — no surprise overage charges.
How much does BMI & Body Composition API cost?
BMI & Body Composition API has a free tier with 100 calls / month. Paid plans start at €4.00 / month with higher quotas and faster rate limits.
Can I cancel my subscription anytime?
Yes. Plans are billed monthly and you can cancel anytime from your billing dashboard. No long-term contracts and no cancellation fee.
Is BMI & Body Composition API GDPR-compliant?
All requests to BMI & Body Composition API go through our EU-based gateway. Your upstream API key never leaves our server and no personal data is shared with the upstream provider beyond the request you send.

Pick an endpoint from the list on the left to see its details and try it.

Code snippets

Sign up to get an API key, then call any path under your slug.

curl https://api.oanor.com/bmi-api/SOME_PATH \
  -H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/bmi-api/SOME_PATH", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/bmi-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
    "https://api.oanor.com/bmi-api/SOME_PATH",
    headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())

Ratings

Sign in to rate.

No reviews yet.

Discussion

Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.

Sign in to start a thread or reply.

Sign in

New thread

/ 4000

📌 Pinned 🔒 Locked

·

· ·

/ 4000

🔒 This thread is locked — no new replies.

  • No threads yet — start the discussion.

Support

Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.

Sign in to open a support ticket.

Sign in

Open new ticket

Describe what you need help with. The provider team gets an email and replies on the ticket page.

  • No tickets yet for this API.

Subscription active — calls can start immediately.

Send your first request —

Subscription active — copy a snippet and fire off your first call.