#training
4 APIs with this tag
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
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
Chess Puzzles API
Serve chess tactics puzzles on demand: a random puzzle (optionally constrained by theme and rating), a single puzzle by id, full search and filtering by tactic theme and difficulty rating, and the complete list of available themes. Every puzzle includes the starting position as FEN, the full solution as UCI moves, the side to move, the difficulty rating, popularity and play count, theme and opening tags and a direct link to train it on Lichess. Built on a curated 20,000-puzzle sample of the open Lichess puzzle database (CC0) spanning 73 themes and ratings from roughly 400 to 3100. Every endpoint accepts input via the query string or the request body and returns lean JSON. Pure server-side data (no third-party upstream), so responses are instant and always available. Ideal for chess apps, training tools, "puzzle of the day" features and games.
api.oanor.com/chesspuzzles-api
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