Query Strava Fitness Data

VerifiedCaution

Query and manage Strava fitness data including activities, athlete stats, segments, routes, clubs, and gear.

Sby Skills Guide Bot
ProductivityBeginner
7/23/2026
Claude CodeCursorWindsurfCodex
#strava#fitness#cli#sports-data#oauth

Recommended for

Automated summary

Queries Strava fitness data — activities, athlete stats, segments, routes, clubs and gear — through the `strava` CLI.

Strengths

  • The `strava context` command bundles athlete, stats, gear, clubs and recent activities into a single call
  • Broad surface area: date-filtered activity lists, streams, laps, zones, segments, efforts, routes and clubs
  • Explicitly documents data units (meters, m/s, seconds, ISO8601) and exit codes, making output easier to interpret correctly
  • Pairs naturally with jq for sport_type filtering and distance totals, and supports GPX/TCX route export

Limitations

  • Requires installing a third-party CLI from a remote install script plus OAuth credentials (`STRAVA_CLIENT_ID`, `STRAVA_CLIENT_SECRET`) before anything works
  • Raw values are SI units (meters, m/s), so km and km/h conversions are left to the user
  • Read-only in practice: no activity upload, creation or editing is described
When to use it

Use it when the user asks about their own Strava activities, training, stats, segments or routes and expects real data back.

When not to use it

Skip it when no Strava OAuth credentials are configured, or when the user wants to upload or edit activities rather than read them.

Security analysis

Caution
Quality score80/100

The document is a straightforward CLI reference for querying Strava data. There is no destructive behavior, no obfuscated payload, no instruction to exfiltrate tokens, and no safety-disabling. The only meaningful risks are the `curl | sh` install pattern (unpinned remote script executed by the shell) and handling of Strava OAuth credentials, which are standard for such integrations but warrant a caution rating rather than safe.

Findings
  • •Prerequisite instructs installing the CLI via `curl -fsSL https://raw.githubusercontent.com/eddmann/strava-cli/main/install.sh | sh`, i.e. piping a remote, unpinned script directly into a shell — supply-chain risk with no checksum or version pinning.
  • •Requires the user to supply `STRAVA_CLIENT_ID` and `STRAVA_CLIENT_SECRET` to authenticate, so the skill touches real OAuth secrets (though it does not instruct sending them anywhere).
  • •Skill performs network calls to Strava and writes credential/token state locally (auth login/refresh/logout).
How this analysis is made

Examples

Recent activity review
Pull my last 10 Strava activities and tell me my total running distance this month.
Activity detail
Get activity 12345678901 from Strava and show my heart rate and power zones plus the lap breakdown.
Route export
Export my Strava route 9876543 as a GPX file so I can load it onto my bike computer.

name: strava description: Query Strava fitness data including activities, athlete stats, segments, routes, clubs, and gear. Use when the user asks about cycling, running, swimming, workouts, training, or Strava data.

Strava CLI Skill

Query and manage Strava data via the strava CLI.

Prerequisites

  • Install CLI: curl -fsSL https://raw.githubusercontent.com/eddmann/strava-cli/main/install.sh | sh
  • Authenticate: strava auth login (requires STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET)

Quick Context

Get aggregated athlete data in one call:

strava context                          # Full context: athlete, stats, gear, clubs, activities
strava context --activities 10          # More recent activities
strava context --focus stats,gear       # Specific sections only

Commands

Run strava --help or strava <command> --help to discover all options.

Activities

strava activities list [--after DATE] [--before DATE] [--limit N]
strava activities get <ID>
strava activities streams <ID> [--keys time,distance,heartrate,watts]
strava activities laps <ID>
strava activities zones <ID>
strava activities comments <ID>
strava activities kudos <ID>

Athlete

strava athlete              # Profile
strava athlete stats        # YTD and all-time totals
strava athlete zones        # HR/power zones

Segments & Efforts

strava segments get <ID>
strava segments starred
strava segments explore --bounds SW_LAT,SW_LNG,NE_LAT,NE_LNG
strava efforts get <ID>
strava efforts list --segment-id <ID>

Routes, Clubs, Gear

strava routes list
strava routes get <ID>
strava routes streams <ID>
strava routes export <ID> --format gpx|tcx
strava clubs list
strava clubs get <ID>
strava clubs members <ID> [--limit N]
strava clubs activities <ID> [--limit N]
strava gear get <GEAR_ID>

Data Units

| Field | Unit | | ------------------------- | ------- | | distance | meters | | moving_time, elapsed_time | seconds | | average_speed, max_speed | m/s | | elevation | meters | | dates | ISO8601 |

Common Patterns

# Recent activities
strava activities list --limit 10

# This month's activities
strava activities list --after 2025-12-01

# Filter with jq
strava activities list | jq '[.[] | select(.sport_type=="Run")]'

# Total distance
strava activities list | jq '[.[].distance] | add'

Auth Status

strava auth status    # Check if authenticated
strava auth refresh   # Refresh token
strava auth logout    # Clear credentials

Sport Types

Run, TrailRun, Walk, Hike, Ride, MountainBikeRide, GravelRide, EBikeRide, VirtualRide, VirtualRun, Swim, Workout, WeightTraining, Yoga, CrossFit, Rowing, Kayaking, Surf, Ski, Snowboard, IceSkate, Golf, Soccer, Tennis

Exit Codes

  • 0 = Success
  • 1 = General error
  • 2 = Auth error (run strava auth login)

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/query-strava-fitness-data-mrx3y0lq' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/query-strava-fitness-data-mrx3y0lq/download' --output '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md.part' && mv '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md.part' '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

Original excerpt: Prerequisites
  • Install CLI: curl -fsSL https://raw.githubusercontent.com/eddmann/strava-cli/main/install.sh | sh
  • Authenticate: strava auth login (requires STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET)

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md' && test -s '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/strava' && cp -R '.skill-downloads/query-strava-fitness-data-mrx3y0lq' '.claude/skills/strava'

Cursor
test -f '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md' && test -s '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/strava' && cp -R '.skill-downloads/query-strava-fitness-data-mrx3y0lq' '.cursor/skills/strava'

Codex
test -f '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md' && test -s '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/strava' && cp -R '.skill-downloads/query-strava-fitness-data-mrx3y0lq' '.agents/skills/strava'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/query-strava-fitness-data-mrx3y0lq'

openskills read 'query-strava-fitness-data-mrx3y0lq'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills