Working weight from a 1RM
API · /barbell-api
Barbell & Lifting API
Barbell and weight-training maths as an API, computed locally and deterministically — the plate-loading and percentage numbers a lifter, coach or gym app works out at the rack. The plates endpoint solves the everyday gym puzzle of which plates go on each side for a target weight: 100 kg on a standard 20 kg bar means 40 kg a side, loaded heaviest first as a 25 and a 15; 102.5 kg adds the 1.25 micro-plate; and if a target is not reachable with the plates on hand it loads the closest it can and tells you the shortfall, so you never guess. It works in kilograms or pounds (225 lb on a 45 lb bar is two 45s a side), with a custom bar weight and a custom plate set. The percent endpoint turns a one-rep-max into the working weight you actually load: 80 % of a 100 kg max is 80 kg, and asking for a five-rep weight returns about 85.7 kg via the Epley formula (1RM = weight × (1 + reps ÷ 30)) — five reps sits near 86 % of max, ten reps near 75 %. The warmup endpoint builds a ramp from the empty bar to the working set at roughly 40, 55, 70 and 85 %, each rounded to a loadable increment, with the rep count dropping as the bar gets heavy. Everything is computed locally and deterministically, so it is instant and private. Ideal for gym, strength-training, powerlifting and fitness app developers, workout-logger and coaching tools, and smart-rack and plate-calculator builders. Pure local computation — no key, no third-party service, instant. Exact maths, no simulation. Live, nothing stored. 3 compute endpoints. For one-rep-max estimation from a set use a strength API.
API health
healthy- Uptime
- 100.00%
- Server probes · 24h
- Avg latency
- 84 ms
- Server probes · 24h
- Subscribers
- 4,560
- active
- Total calls
- 76
- last 7 days
Pricing
Pick a tier — billed monthly, cancel anytime.
Free
Free
- 7,100 calls / month
- 2 requests / second
- Hard cap (429 above quota, no overage)
- 7,100 calls/month
- 2 req/sec
- Plate loading + %1RM + warmup
- No credit card
Starter
€4.20 /month
- 56,500 calls / month
- 6 requests / second
- Hard cap (429 above quota, no overage)
- 56,500 calls/month
- 6 req/sec
- kg & lb, custom bar & plates, Epley
- Email support
Pro
€11.70 /month
- 232,000 calls / month
- 15 requests / second
- Hard cap (429 above quota, no overage)
- 232,000 calls/month
- 15 req/sec
- Workout-logger & coaching pipelines
- Priority support
Mega
€37.00 /month
- 1,340,000 calls / month
- 40 requests / second
- Hard cap (429 above quota, no overage)
- 1,340,000 calls/month
- 40 req/sec
- Platform scale
- Dedicated SLA
Built by
Related APIs
Other APIs with overlapping tags.
Exercises API
A complete exercise and workout database covering 870+ exercises: search and filter by target muscle, required equipment, category, difficulty level, force type and mechanic, fetch a single exercise with step-by-step instructions, primary and secondary muscles and demonstration images, pull a random exercise matching any filter, and read all available facet values to build filter UIs. Every endpoint accepts input via the query string or the request body and returns lean, predictable JSON. Pure server-side data (no third-party upstream), so responses are instant and always available. Ideal for fitness and gym apps, workout planners, personal-trainer tools and health platforms.
api.oanor.com/exercises-api
Powerlifting Score API
Powerlifting strength-score maths as an API, computed locally and deterministically — the Wilks, DOTS and IPF GL numbers a meet, gym or training app uses to compare lifters across bodyweights and sexes. The wilks endpoint gives the classic Wilks coefficient (1996) and score: total × 500 ÷ a fifth-order polynomial in bodyweight, with separate male and female curves — long the federation standard for "best lifter", a 100 kg man totalling 600 kg scores about 365. The dots endpoint gives the modern DOTS score (2019), the same total × 500 ÷ polynomial idea but fitted to updated data with a fourth-order curve that is fairer across the weight classes and not skewed to the middleweights, now the default in most raw meet software. The ipf-gl endpoint gives the International Powerlifting Federation's current GL Points (2020): 100 × total ÷ (A − B·e^(−C·bodyweight)), with separate constants for sex and for raw (classic) versus equipped lifting, the official metric at IPF championships. Everything is computed locally and deterministically, so it is instant and private. Ideal for meet-management and scoring software, gym leaderboards and training-log apps, and strength-sport tools. Pure local computation — no key, no third-party service, instant. 3 compute endpoints. For one-rep-max estimation and plate loading use a strength-training API.
api.oanor.com/powerlifting-api
Strength Training API
Strength-training maths as an API. The one-rep-max endpoint estimates your one-rep max from a set of a given weight and reps using five established formulas — Epley, Brzycki, Lander, Lombardi and O'Conner — with their average, and returns a rep-max table showing the estimated weight (and percentage of 1RM) for 1 to 12 reps. The plates endpoint works out exactly which plates to load on each side of a barbell for a target weight, given the bar weight and the plate denominations you have, and tells you whether the target is achievable exactly. The wilks endpoint computes the Wilks (classic) and DOTS relative-strength scores from bodyweight and total lifted, so lifters of different sizes can be compared fairly. Everything is computed locally and deterministically, so it is instant and private. Ideal for gym and lifting apps, powerlifting and strength coaching, workout planners and progression trackers, and fitness wearables. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 4 endpoints. This is strength maths; for BMI, BMR and calories use a health-calculator API and for heart-rate training zones use a heart-rate API.
api.oanor.com/strength-api
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
Frequently asked questions
Quick answers about pricing, quotas, and integration.
How do I get an API key for Barbell & Lifting API?
What's the rate limit for Barbell & Lifting API?
How much does Barbell & Lifting API cost?
Can I cancel my subscription anytime?
Is Barbell & Lifting API GDPR-compliant?
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/barbell-api/SOME_PATH \
-H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/barbell-api/SOME_PATH", {
headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/barbell-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/barbell-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 inNew thread
·
-
Provider answer
🔒 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 inOpen new ticket
Describe what you need help with. The provider team gets an email and replies on the ticket page.
-
·
Urgent - No tickets yet for this API.