Start building in minutes
_
SweatStack is the sports data platform behind your app. Athletes sign in with their wearable account, and you get their full training history through one API.
from sweatstack import Client
from datetime import date, timedelta
client = Client()
client.login()
# A year of trail running, normalized to one schema
data = client.get_longitudinal_data(
sport="running.trail",
start=date.today() - timedelta(days=365),
)
from fastapi import FastAPI
from sweatstack.fastapi import configure, instrument, AuthenticatedUser
configure(
client_id="your-client-id",
client_secret="your-client-secret",
session_secret="your-fernet-key",
app_url="http://localhost:8000",
)
app = FastAPI()
instrument(app)
@app.get("/activities")
def activities(user: AuthenticatedUser):
return user.client.get_activities(limit=10)
# Response is a Parquet file
curl "https://app.sweatstack.no/api/v1/activities/longitudinal-data?sport=running.trail" \
-H "Authorization: Bearer YOUR_TOKEN" \
-o data.parquet
Core vs context¶
One of the hardest things to build in a sports data app is the thing no user will ever pick you for: authentication, schema normalization across a dozen wearables, athlete profiling, training-zone math. Every team writes it from scratch. Six months of real engineering, zero competitive edge.
SweatStack handles all of it. You bring the coaching logic, the training models, the experience athletes choose you for. That's the work that matters, and it's yours. Everything underneath is ours.
What's in SweatStack¶
-
One unified API
One API across every supported wearable. Same shape regardless of source.
-
Sign in with SweatStack
One button replaces your login and registration. Users authenticate with the wearable account they already have, and arrive with their history already loaded.
-
Years of history, one query
Query months or years in seconds, including everything your user recorded long before they'd heard of you. No pipeline to maintain, no upstream rate limits.
-
SweatStack for Teams
A team account with unlimited internal tools for your staff. Athletes consent once; coaches and analysts open every tool from one dashboard.
-
What you build stays yours
Your models, scores and annotations belong to your app. The physiology is the athlete's. The intelligence is yours.
-
Transparent pricing
Free for tinkerers. $30/m plus per-MAU for commercial use. No surprises, no contact-sales tier on the self-serve path. Early-stage startup? Apply for free MAU credits.
-
A real toolchain
Python SDK, CLI, in-browser REPL, hosted Pages. Everything you need to ship, not just an API.
-
Built for AI agents
Install our skills once and your AI coding assistant ships SweatStack code that works. No more pasting docs into the chat window.
Browse the full developer docs →
Integrations¶
Today: Garmin Connect, Intervals.icu, Wahoo. Up next: Polar Flow and Suunto. Apple Health is on the longer-term roadmap.
Need something that's not on the list? We build custom integrations. Get in touch →
Your users show up with their history¶
Most athletes have years of training sitting in Garmin. On SweatStack they bring it with them. They sign in with the wearable account they already use, and their back catalogue loads into your app: up to five years of history, not a blank screen on launch. No waiting six weeks for your product to get good.
That works because the data lives with the athlete, not locked inside one app. They grant your app access, and they can take it away. In return, you build on the data instead of warehousing it. Storing years of raw timeseries, keeping it exportable, handling revocation when someone leaves: that's ours.
What stays yours: your product, your brand, your users, and the intelligence you build on top. The training scores, the models, the experience athletes pick you for. The physiology belongs to the athlete. What you make of it is yours.
We extend the same rights to developers: versioned terms, 12-month deprecation notice on the API, no exit fee.
"So a user could take their data to a competitor?"
They could, and they already can, by exporting from Garmin. What they can't take is what your app built on top of it. We'd rather be straight about that than pretend switching costs are your moat.
Built with SweatStack¶
Stop rebuilding the basics
Start with a free account. Move to a paid tier when you go commercial.
Early-stage? Apply for the startup program →