F45 · Lionheart Monitor

Lionheart Dashboard

Upload your exported Lionheart session history to see your own heart-rate, calorie, and score trends — by date or by workout type. Nothing leaves your browser; the file is parsed locally.

How do I get my userid?
Just want to try the app first? Upload sample-lionheart-data.json (included in the repo alongside this app) — it's synthetic dummy data, no F45 account needed.

There's no public way to look up your user_id, but you can find your own one of two ways:

1. Check your phone's own logs (easiest)

Android: connect your phone via USB with adb installed, run adb logcat | grep externalId, then open the F45 app — look for a line like login(externalId: 12345678, jwtBearerToken: null). That number is your user_id.
iPhone: the same idea works by viewing your device's console logs in Xcode's Window → Devices and Simulators while opening the app, then searching the log for externalId.

2. Intercept your network traffic with a proxy (more involved)

Use a tool like mitmproxy or HTTP Toolkit to intercept your phone's network traffic while opening a class result in the F45 app, then read user_id out of the request URL to api.lionheart.f45.com.

Once you have it, use it with the “fetch directly” option below, or with the manual export script if you'd rather run something locally and upload the result.

Fetch your session data directly from Lionheart

This dashboard talks to a Cloudflare Worker that proxies F45's Lionheart API (which doesn't allow browsers to call it directly). If you were given an access token for it, enter that and your user_id (see “How do I get my userid?” above) below to fetch your history directly — no file to download or upload.

Want to run your own instead (e.g. you're forking this project)? The worker code and step-by-step setup are in the repo under cloudflare-worker/ — deploy it (free tier, a few minutes), then update the WORKER_URL constant near the top of this page's script to point at it.

Drop your lionheart-export.json here
or click to browse
Showing example data
Heart Ratebeats / min
Average Max
Calories Burnedkcal / session
Class ScoreLionheart points
Zone-Time Breakdown% of session

Heart Ratebeats / min, avg → max · axis zoomed, doesn’t start at 0
Average Max
Calories Burnedkcal / session, avg
Class ScoreLionheart points, avg

Workouts ranked by average calories burned. Bars average across every logged session of that workout.