Expose step count in the Developer API and the data export

Summary: WHOOP counts my steps and shows them to me in the app, but there is no way to get them out — not through the OAuth Developer API, and not in the CSV data export. That gap means the one metric I most want to analyse is the one I have to retype by hand from screenshots.

What I’m asking for

  1. A steps field on the cycle response in the Developer API (GET /v2/cycle, GET /v2/cycle/{cycleId}), alongside strain and kilojoule. A per-workout step count on /v2/activity/workout would be a bonus; the daily cycle total is what matters.
  2. A Steps column in the data export, in physiological_cycles.csv next to Day Strain and Energy burned.

Either one solves my problem. Both would be ideal, since they serve different needs — the API for a daily automated sync, the export for history.

Why this matters to me

I’m a WHOOP subscriber and it’s the only tracker I wear 24 hours a day. That consistency is exactly why I want it to be my source of truth for steps — a wrist-worn device I never take off records my movement better than a phone I sometimes leave on a desk.

What I have to do instead, and why the workarounds fail

I’ve tried every available route:

  • The Developer API has no step field on any endpoint. I checked the full v2 surface.
  • The data export doesn’t include steps. I pulled a fresh export and searched all four CSVs — physiological_cycles, sleeps, workouts, journal_entries — for any step data. There is none, in any column or any cell.
  • Apple Health as an intermediary loses the data. This is the part I’d most like you to look at. My nutrition app pulls steps from Apple Health, which receives them from WHOOP. Over a measured 35-day window, WHOOP’s app showed 245,205 steps. What arrived downstream was 158,241 — a 36% loss, about 2,500 steps a day, and not a single one of those 35 days matched. So even the indirect path through Apple Health does not carry WHOOP’s own figures faithfully.

That leaves screenshots. I photograph the weekly Trend View, transcribe seven numbers at a time, and verify each week against the average WHOOP displays above the bars. It works — the displayed average is a genuine checksum — but I’m hand-copying data out of an app that already has it, from a device I’m paying a subscription for.

Ask

The data exists. My device counted it, your app displays it. Please let me have it — an API field, an export column, or both. And if the Apple Health figure is meant to match what the app shows, something in that sync is dropping about a third of my steps, which seems worth investigating regardless of whether you ship the API change.

Happy to provide the specific dates and figures from my own account if that’s useful for reproducing the Apple Health discrepancy.

This feature would be so helpful.

Thanks for sharing this feedback! We have an update that directly addresses your request for step count access through the WHOOP Developer API. :raising_hands:

As of September 23, 2026, cycles returned through the WHOOP Developer API now include a step_count field. Step count is available through both GET /v2/cycle/{cycleId} and GET /v2/cycle.

It’s covered by the existing read:cycles scope, so there’s no additional permission required, and members won’t need to reconnect or reauthorize your app.

Step count follows the WHOOP cycle, which runs from when you wake up until your next wake-up. Because of this, the total may differ from apps or devices that calculate steps from midnight to midnight. For the current cycle, step_count reflects steps recorded so far and will continue updating throughout the day. If no step data is available for a cycle, such as when WHOOP wasn’t worn, the field will return null rather than 0.

You can find additional details in our documentation:

We really appreciate you taking the time to share such detailed feedback with us!