Free heart rate API
The calculators behind this site are available as a small JSON API for scripts and AI agents: heart rate zones, maximum heart rate estimates and resting heart rate percentiles. No key, no sign-up.
Endpoints
All endpoints are GET, return JSON, allow cross-origin requests and are limited to 60 requests per minute per IP address. The machine-readable description is /openapi.json; a plain summary for language models is at /llms.txt.
/api/zones
Five heart rate zones. Parameters: age (18–90, required), rest (resting bpm, optional: switches to the heart rate reserve method), max (measured maximum, optional), formula (tanaka default, fox, gellish, nes, gulati).
curl "https://whatsmypulse.com/api/zones?age=40&rest=60"
/api/max-heart-rate
Every maximum-heart-rate equation for one age. Parameter: age (18–90).
curl "https://whatsmypulse.com/api/max-heart-rate?age=55"
/api/resting
NHANES resting pulse percentiles for an age group and sex, and where a value falls. Parameters: age (0–120), sex (female or male), bpm (optional).
curl "https://whatsmypulse.com/api/resting?age=45&sex=female&bpm=68"
/api/health
Returns {"ok": true} when the service is up.
Errors
Bad input returns status 400 with {"error": "bad_request", "field": "...", "message": "..."}. Too many requests returns 429 with a retry-after header. Unknown paths return 404 with a list of endpoints.
Terms of use
Use it freely, including in commercial projects, within the rate limit. Every response carries its sources and a disclaimer; please keep the disclaimer next to any figures you show to people. Requests are not logged with their parameters, and nothing you send is stored. The API gives general wellness information, not medical advice.