Skip to main content

SweatStack Python Library

Overview

This is the Python library for Sweat Stack. Sweat Stack is a powerfull application designed for athletes, coaches, and sports scientists to analyze and manage athletic performance data. This library provides a seamless interface to interact with the SweatStack API, allowing users to retrieve, analyze, and visualize activity data and performance metrics.

Installation

We recommend using uv to manage Python and install the library. Read more about uv here.

uv pip install sweatstack

You can also install it with pip (or pipx) directly.

pip install sweatstack

Quickstart

Get started with analyzing your latest activity:

import sweatstack as ss

ss.login()

latest_activity = ss.get_latest_activity()

print(latest_activity)  # `latest_activity` is a pandas DataFrame

Authentication

To be able to access your data in Sweat Stack, you need to authenticate the library with your Sweat Stack account. The easiest way to do this is to use your browser to login:

import sweatstack as ss

ss.login()

This will automaticallyset the appropriate authentication tokens in your Python code.

Alternatively, you can set the SWEAT_STACK_API_KEY environment variable to your API key. You can create an API key here.

import os

import sweatstack as ss

os.environ["SWEAT_STACK_API_KEY"] = "your_api_key_here"

# Now you can use the library

Listing activities

To list activities, you can use the list_activities() function:

for activity in ss.list_activities():
    print(activity)

Info: This method returns a summary of the activities, not the actual timeseries data. To get the actual data, you need to use the get_activity_data() or get_latest_activity_data()) methods documented below.

Getting activity summaries

To get the summary of an activity, you can use the get_activity() function:

activity = ss.get_activity(activity_id)
print(activity)

To quickly the latest activity, you can use the get_latest_activity() function:

activity = ss.get_latest_activity()
print(activity)

Getting activity data

To get the timeseries data of one activity, you can use the get_activity_data() method:

data = ss.get_activity_data(activity_id)
print(data)

This method returns a pandas DataFrame. If your are not familiar with pandas and/or DataFrames, start by reading this introduction.

Similar as for the summaries, you can use the get_latest_activity_data() method to get the timeseries data of the latest activity:

data = ss.get_latest_activity_data()
print(data)

To get the timeseries data of multiple activities, you can use the get_longitudinal_data() method:

longitudinal_data = ss.get_longitudinal_data(
    start=date.today() - timedelta(days=180),
    sport="running",
    metrics=["power", "heart_rate"],
)
print(longitudinal_data)

Because the result of get_longitudinal_data() can be very large, the data is retrieved in a compressed format (parquet) that requires the pyarrow library to be installed. If you intend to use this method, make sure to install the sweatstack libraryr with uv pip install sweatstack[parquet]. Also note that depending on the amount of data that you requested, this might take a while.

Accessing other user's data

By default, the library will give you access to your own data.

You can list all users you have access to with the list_accessible_users() method:

for user in ss.list_accessible_users():
    print(user)

You can switch to another user by using the switch_user() method:

ss.switch_user(user)

Calling any of the methods above will return the data for the user you switched to.

You can easily switch back to your original user by calling the switch_to_root_user() method:

ss.switch_to_root_user()

Metrics

The API supports the following metrics:

  • power: Power in Watt
  • speed: Speed in m/s
  • heart_rate: Heart rate in BPM
  • smo2: Muscle oxygen saturation in %
  • core_temperature: Core body temperature in °C
  • altitude: Altitude in meters
  • cadence: Cadence in RPM
  • temperature: Ambient temperature in °C
  • distance: Distance in m
  • longitude: Longitude in degrees
  • latitude: Latitude in degrees

Sports

The API supports the following sports:

  • running: Running
  • cycling: Cycling

More sports will be added in the future.

Metadata

Release files for sweatstack 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sweatstack 0.1.2
File Size Uploaded
sweatstack-0.1.2.tar.gz 9.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sweatstack 0.1.2
File Interpreter ABI Platform
sweatstack-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 19.1 kB

Release files / sweatstack-0.1.2.tar.gz

Download URL sweatstack-0.1.2.tar.gz
Size 9.3 kB
Tags Source
SHA-256 checksum
How to use checksums
4c09bb05269677f04e9b58925b2a7827b04a098aab09f6aee1b4c0099643f2c8
BLAKE2b-256 checksum
How to use checksums
22acd125c216d0708262d3f4d53102ad060b9520be673705c04c734b9d375165
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.5

Release files / sweatstack-0.1.2-py3-none-any.whl

Download URL sweatstack-0.1.2-py3-none-any.whl
Size 9.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
208091d775e9e17cb09dd5d9aa753d75af1fe3baf01c3885576e477a99688bbb
BLAKE2b-256 checksum
How to use checksums
835a0c4235d2c3b106b0a773320345f1b6aa93a948aafe09ac315d9e40c4c588
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.5

Release history Release notifications | RSS feed

0.90.0

2 release files

0.89.0

2 release files

0.87.0

2 release files

0.86.0

2 release files

0.85.0

2 release files

0.84.0

2 release files

0.83.0

2 release files

0.82.0

2 release files

0.81.0

2 release files

0.80.0

2 release files

0.79.0

2 release files

0.77.1

2 release files

0.77.0

2 release files

0.76.2

2 release files

0.76.1

2 release files

0.76.0

2 release files

0.75.0

2 release files

0.74.0

2 release files

0.72.0

2 release files

0.71.0

2 release files

0.70.0

2 release files

0.69.0

2 release files

0.68.0

2 release files

0.65.0

2 release files

0.61.0

2 release files

0.60.0

2 release files

0.59.0

2 release files

0.58.0

2 release files

0.56.0

2 release files

0.55.0

2 release files

0.53.0

2 release files

0.52.0

2 release files

0.51.0

2 release files

0.50.0

2 release files

0.49.0

2 release files

0.48.0

2 release files

0.45.0

2 release files

0.44.0

2 release files

0.43.0

2 release files

0.42.0

2 release files

0.41.0

2 release files

0.40.1

2 release files

0.40.0

2 release files

0.38.0

2 release files

0.34.0

2 release files

0.33.0

2 release files

0.32.0

2 release files

0.31.1

2 release files

0.31.0

2 release files

0.30.1

2 release files

0.30.0

2 release files

0.28.0

2 release files

0.14.6

2 release files

0.14.5

2 release files

0.14.4

2 release files

0.14.3

2 release files

0.14.2

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.13.2

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.3

2 release files

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page