iPhones can't read a heart-rate sensor through the browser — so PulseVault uses a small bridge instead. Your Apple Watch feeds Apple Health, an iPhone Shortcut reads it, and sends it to PulseVault every minute. Here's the whole setup, start to finish.
Your Watch already sends heart rate to Apple Health. A Shortcut grabs the latest value and posts it to your PulseVault stream code. PulseVault shows it live and lets you save the workout as a session.
On your iPhone, open PulseVault and go to Devices → Live HR. Scroll to the 📲 Phone & Watch bridge card and tap ▶ Start live bridge.
You'll get a short 6-character code — something like 2NZXD5. Keep this screen open; it's now waiting for readings and will draw them live as they arrive.
Open the Shortcuts app on your iPhone. Tap the + in the top-right to create a new shortcut, then tap Add Action.
Search for Health and choose Find Health Samples (or “Get Latest Heart Rate Sample” if your iOS shows it). Configure it to read:
Make sure your Apple Watch is on your wrist so Health has a fresh reading to hand over.
The inline JSON editor makes it hard to drop a variable into a Number field. So instead, build the body in a Text action first — Text fields let you insert variables with no fuss.
To insert the variable: type up to "bpm":, then tap the variable bar just above the keyboard and pick Heart Rate, then type the closing }.
Search for Get Contents of URL and add it after the Text action. Tap to expand its options and set:
Name the shortcut something like “PulseVault HR” and save. Tap it once to run it. The first time, iOS will ask permission to read Health data and to send to pulsevault.net — allow both.
Flip back to the PulseVault Live HR screen: within a couple of seconds your heart rate should appear and the live trace should start drawing. 🎉
To keep readings flowing without tapping each time, set up a repeating automation:
When you're done, go back to PulseVault and tap ✕ Stop on the bridge card. You'll see a summary (readings, average, max) and a 💾 Save as session button. Saving turns your live readings into a normal PulseVault session — ready for AI reports, trends, and comparisons.
Two reasons, both Apple's design: iPhone browsers don't support Web Bluetooth at all, and the Apple Watch keeps its heart-rate sensor inside Apple Health rather than broadcasting it like a chest strap. The Shortcut bridge is the supported way to get that data out to a web app.
No. Live readings are held only in memory while the bridge is running and are never written to disk server-side. Nothing is saved until you tap “Save as session” — and that session lives in your own encrypted account, like all your other data.
Three hours, then it expires automatically. Just start a new bridge to get a fresh code for your next session.
Yes. Any phone heart-rate app or a second device that can POST {"code", "bpm"} to the same URL works. And if you have a Bluetooth chest strap (Polar H9/H10, Garmin, Wahoo), you can connect it directly in the browser on a laptop or Android phone for a continuous live trace — no Shortcut needed.
Make sure the Watch is on your wrist and Health has a recent reading, that the code in your Shortcut exactly matches the one on screen, and that you allowed the Health and network permissions when prompted. A reading older than 15 seconds is treated as stale, so the live number clears until the next push arrives.
This is the most common snag. The variable picker only shows when a field is empty and focused, and on a Number field it hides in the grey bar just above the keyboard — easy to miss. The reliable fix is Step 4: build the body in a Text action (where variables insert normally) and send that Text as the request body (set Request Body to File). That avoids the inline Number field entirely.
Already have an account? Open Devices → Live HR in the app to start a bridge.