andyreagan.com

Whoop

Backlinks: Fitness Tech | Wearables > Whoop

Whoop! Super accurate fitness and recovery tracker.

Bicep band is a MUST.

See Whoop Heart Rate Accuracy.

Looks like I've used (on and off) <2020-10-21 Wed>–current.

Whoop band 3

My first band. Lives in a drawer in the basement.

Habit tracking

Used it consistently for habit tracking for a few years. It's one of those things that you get out of it what you put into it.

The monthly impact reports are pretty great.

Whoop labs

Did this once. Cool experience. Wrote about it on Reddit, I think.

Wore at least two whoops on each wrist and a Polar H10 as a reference. Did some light weightlifting and running.

Code to pull from official API

# coding: utf-8
import requests
import urllib.parse

# Set client ID and secret as variables
client_id = 'a9ca87d7-4801-4cfa-8a73-ca3ec64a553e'
client_secret = 'db0f5ff632ee3639e9d505ff2086b9cc98a26b4ece88160cda0be911873ca608'

# Construct authorization URL
auth_endpoint = 'https://api.prod.whoop.com/oauth/oauth2/auth'
response_type = 'code'
state = 'XXXXXXXX'
scope = 'offline read:recovery read:sleep read:workout'
redirect_uri = 'http://localhost'

query_params = {
    'response_type': response_type,
    'state': state,
    'client_id': client_id,
    'scope': scope,
    'redirect_uri': redirect_uri,
}

url_parts = list(urllib.parse.urlparse(auth_endpoint))
query = dict(urllib.parse.parse_qsl(url_parts[4]))
query.update(query_params)

url_parts[4] = urllib.parse.urlencode(query)
auth_url = urllib.parse.urlunparse(url_parts)

# Print authorization URL
print(auth_url)

# Go get the code
# Put it here:
code = 'NKt6SgG3GWSTeLzuJMUgEvNpsSWwN_StQ7kmB6ru_Tc.heo0badPmQFjqVlBPzIm_8RCtkm3TzL5CCXLtfAshc8'

token_endpoint = 'https://api.prod.whoop.com/oauth/oauth2/token'

headers = {
    'Content-Type': 'application/x-www-form-urlencoded',
}

data = {
    'grant_type': 'authorization_code',
    'code': code,
    'redirect_uri': redirect_uri,
    'client_id': client_id,
    'client_secret': client_secret,
}

response = requests.post(token_endpoint, headers=headers, data=data)
access_token = response.json()['access_token']

# Print access token
print(f'Access token: {access_token}')
# FsgywB18lYaXjbVDEsPyUqoQT3YrLQZCXErOJ7tI6GA.1OvyFRr1BtMxUwii4v_YI64x7A0x1QaD_1bSMCyPxp0',
# Print full reponse
print(response.json())
# {'access_token': 'FsgywB18lYaXjbVDEsPyUqoQT3YrLQZCXErOJ7tI6GA.1OvyFRr1BtMxUwii4v_YI64x7A0x1QaD_1bSMCyPxp0',
#  'expires_in': 3600,
#  'refresh_token': '_E6oQ0Dlt1XxKmkC9vIXd0qIJUWQ4shS6kIu9dydKsI.4utCHFS66910VSNUfnrIvF4M86i0nehB2Sx6dZk7iPM',
#  'scope': 'offline read:recovery read:sleep read:workout',
#  'token_type': 'bearer'}

FitIQ

https://fitiq.io/

Cool add-on analytics company site. $5/mo. I should build something like this.

Whoomp

Reverse engineering of the whoop band bluetooth interface. Likely illegal.

Repository: https://github.com/jogolden/whoomp Try it out at https://jogolden.github.io/whoomp/

Purchase history

Raw

8/14/2024 E7B92FA0-0016 $253.94 View 8/14/2023 E7B92FA0-0015 $253.94 View 8/7/2023 E7B92FA0-0014 $0.00 View 7/14/2023 E7B92FA0-0013 $31.88 View 6/14/2023 E7B92FA0-0012 $31.88 View 5/14/2023 E7B92FA0-0011 $31.88 View 4/14/2023 E7B92FA0-0010 $31.88 View 3/14/2023 E7B92FA0-0009 $31.88 View 2/14/2023 E7B92FA0-0008 $31.88 View 1/14/2023 E7B92FA0-0007 $31.88 View 12/14/2022 E7B92FA0-0006 $31.88 View 11/14/2022 E7B92FA0-0005 $31.88 View 10/14/2022 E7B92FA0-0004 $31.88 View 9/14/2022 E7B92FA0-0003 $31.88 View 8/14/2022 E7B92FA0-0002 $31.88 View 10/21/2020 E7B92FA0-0001 $0.00 View

Receipt of Payment Customer andy reagan Date 10/21/2020 Invoice ID E7B92FA0-0001 UPC 810114360200 Product Name Trial period for Whoop Membership 3.0 Payment Method No charge applied. Tax $0.00 Total $0.00

Receipt of Payment Customer andy reagan Date 8/14/2022 Invoice ID E7B92FA0-0002 UPC 810114360200 Product Name 1 × Whoop Membership (at $30.00 / month) Payment Method Discover ending in 9225 Tax $1.88 Total $31.88

Receipt of Payment Customer andy reagan Date 9/14/2022 Invoice ID E7B92FA0-0003 UPC 810114360200 Product Name 1 × Whoop Membership (at $30.00 / month) Payment Method Discover ending in 9225 Tax $1.88 Total $31.88

Receipt of Payment Customer andy reagan Date 10/14/2022 Invoice ID E7B92FA0-0004 UPC 810114360200 Product Name 1 × Whoop Membership (at $30.00 / month) Payment Method Discover ending in 9225 Tax $1.88 Total $31.88

Receipt of Payment Customer andy reagan Date 11/14/2022 Invoice ID E7B92FA0-0005 UPC 810114360200 Product Name 1 × Whoop Membership (at $30.00 / month) Payment Method Discover ending in 9225 Tax $1.88 Total $31.88

Receipt of Payment Customer andy reagan Date 12/14/2022 Invoice ID E7B92FA0-0006 UPC 810114360200 Product Name 1 × Whoop Membership (at $30.00 / month) Payment Method Discover ending in 9225 Tax $1.88 Total $31.88

Receipt of Payment Customer andy reagan Date 1/14/2023 Invoice ID E7B92FA0-0007 UPC 810114360200 Product Name 1 × Whoop Membership (at $30.00 / month) Payment Method Discover ending in 9225 Tax $1.88 Total $31.88

Receipt of Payment Customer andy reagan Date 2/14/2023 Invoice ID E7B92FA0-0008 UPC 810114360200 Product Name 1 × Whoop Membership (at $30.00 / month) Payment Method Discover ending in 9225 Tax $1.88 Total $31.88

Receipt of Payment Customer andy reagan Date 3/14/2023 Invoice ID E7B92FA0-0009 UPC 810114360200 Product Name 1 × Whoop Membership (at $30.00 / month) Payment Method Visa ending in 9062 Tax $1.88 Total $31.88

Receipt of Payment Customer andy reagan Date 4/14/2023 Invoice ID E7B92FA0-0010 UPC 810114360200 Product Name 1 × Whoop Membership (at $30.00 / month) Payment Method Visa ending in 9062 Tax $1.88 Total $31.88

Receipt of Payment Customer andy reagan Date 5/14/2023 Invoice ID E7B92FA0-0011 UPC 810114360200 Product Name 1 × Whoop Membership (at $30.00 / month) Payment Method Visa ending in 9062 Tax $1.88 Total $31.88

Receipt of Payment Customer andy reagan Date 5/14/2023 Invoice ID E7B92FA0-0011 UPC 810114360200 Product Name 1 × Whoop Membership (at $30.00 / month) Payment Method Visa ending in 9062 Tax $1.88 Total $31.88

Receipt of Payment Customer andy reagan Date 6/14/2023 Invoice ID E7B92FA0-0012 UPC 810114360200 Product Name 1 × Whoop Membership (at $30.00 / month) Payment Method Visa ending in 9062 Tax $1.88 Total $31.88

Receipt of Payment Customer andy reagan Date 7/14/2023 Invoice ID E7B92FA0-0013 UPC 810114360200 Product Name 1 × Whoop Membership (at $30.00 / month) Payment Method Visa ending in 9062 Tax $1.88 Total $31.88

Receipt of Payment Customer andy reagan Date 8/7/2023 Invoice ID E7B92FA0-0014 UPC 810114360217 Product Name Trial period for Whoop Membership Payment Method No charge applied. Tax $0.00 Total $0.00

Receipt of Payment Customer andy reagan Date 8/14/2023 Invoice ID E7B92FA0-0015 UPC 810114360217 Product Name 1 × Whoop Membership (at $239.00 / year) Payment Method Visa ending in 9062 Tax $14.94 Total $253.94

Receipt of Payment Customer andy reagan Date 8/14/2024 Invoice ID E7B92FA0-0016 UPC 810114360217 Product Name 1 × Whoop Membership (at $239.00 / year) Payment Method Visa ending in 9062 Tax $14.94 Total $253.94

WHOOP Order W389941 Superknit Bicep Band 4.0 x 1 Dec 20, 2021 54.00 Shipping 3.99 Tax 3.38 Total 61.37

Nov 2, 2020 Order W170297 Core Bicep Band x 1 Thunder / L/XL 30.00 Shipping 2.99 32.99 Ending in 9062 - 32.99

Sep 28, 2024 WHOOP Order W1114938 Replacement WHOOP 4.0 x 1 75.00 8.99 4.69 79.69 Ending in 9062 79.69

Aug 7, 2023 WHOOP Order W767432 Battery Pack 4.0 x 1 49.00 8.99 3.06 61.05 Ending in 9062 61.05 Aug 7 2023 WHOOP Order W767434 Moss Superknit Bicep Band x 1 54.00 3.99 3.38 Ending in 9062 61.37

Whoop band 4

I haven't noticed a big difference from the 3.0, though the health metrics have picked up sickness. Waterproof charger is a plus. I couldn't passed on getting new bands ($$).

I lost the band at one point, and given the remaining time on the plan, it was worth buying a new band. I also think I had to buy one new battery.

Django app to connect with Whoop

Last modified: May 20, 2025