The Clawdbot Strava skill reads your Strava data and makes it queryable through natural language. It connects to the Strava API using OAuth2, pulls activity records, and lets your AI agent answer questions about your training. That is the entire scope. No activity recording. No social features. Read-only data analysis.
This article is a feature reference. It covers what the clawdbot strava skill can access, the types of queries it handles, its advanced capabilities, and its hard limits. If you need installation instructions, those are in the setup tutorial. If you want a comparison with the native Strava app, that is in the comparison article.
Background note: Clawdbot was the original name for the OpenClaw framework before the 2.0 rename. The skill works identically whether installed as clawdbot-strava or strava-api. Both package names resolve to the same code. This article uses “clawdbot strava” throughout, but everything applies to the current strava-api skill on ClawHub.
Data the Skill Accesses
The skill reads data through the Strava v3 API. It requests the activity:read_all OAuth scope, which grants read access to both public and private activities. It cannot write, edit, or delete anything on your Strava account.
Here is the full list of data fields the skill can retrieve and use in responses.
Activity-Level Fields
| Field | Source | Notes |
|---|---|---|
| Activity name | Strava | User-set title for each activity |
| Sport type | Strava | Run, Ride, Swim, Hike, Walk, and 30+ other types |
| Distance | GPS / device | Meters, converted to km or miles based on preference |
| Moving time | Strava | Time spent actively moving |
| Elapsed time | Strava | Total time including stops |
| Elevation gain | GPS / barometer | Total ascent in meters |
| Average pace / speed | Calculated | Derived from distance and moving time |
| Max speed | Device | Peak instantaneous speed |
| Average heart rate | HR sensor | Requires paired heart rate monitor |
| Max heart rate | HR sensor | Peak HR recorded during activity |
| Average cadence | Footpod / watch | Steps per minute (running) or RPM (cycling) |
| Average power | Power meter | Watts, cycling only for most users |
| Weighted average power | Power meter | Normalized power calculation |
| Calories | Strava estimate | Estimated energy expenditure |
| Start time | Device | UTC timestamp, converted to local time |
| Start location | GPS | Latitude/longitude of activity start |
| Gear | Strava | Shoe or bike used, if assigned |
| Laps / splits | Device / auto-lap | Per-kilometer or per-mile splits |
| Segment efforts | Strava | Times on matched segments |
| Suffer Score | Strava | Heart-rate-based effort metric |
Athlete-Level Fields
| Field | Source |
|---|---|
| Total activity count | Aggregated |
| Year-to-date distance (per sport) | Aggregated |
| All-time distance (per sport) | Aggregated |
| Follower / following count | Profile |
| Weight (if set) | Profile |
| FTP (if set) | Profile |
Fields the Skill Cannot Access
The Strava API does not expose everything visible in the app. These are notable gaps.
| Unavailable Data | Reason |
|---|---|
| Segment leaderboard rankings | API returns only your own efforts |
| Route popularity / heatmap data | Not exposed via API |
| Beacon / live tracking | Requires real-time connection |
| Detailed social interactions (kudos, comments from others) | Limited API exposure |
| Training plan assignments | Not in API |
| Suggested routes | Not in API |
Query Categories and Examples
The skill responds to natural language. There is no fixed command syntax. The tables below organize queries by category to show the range of what works.
Recent Activity Queries
These pull your latest activities and display summaries.
| Query | What It Returns |
|---|---|
| ”Last run” | Most recent running activity with full stats |
| ”Show my last 5 activities” | Summary table of 5 most recent activities, any sport |
| ”What did I do yesterday?” | All activities logged on the previous day |
| ”Today’s workout” | Activities from the current day |
| ”My rides this week” | All cycling activities from Monday to present |
| ”Swims in January” | All swimming activities for a specific month |
The skill returns distance, pace (or speed), duration, elevation, and heart rate by default. Ask for specific fields and it narrows the response.
Aggregate and Volume Queries
These compute totals and averages across a date range.
| Query | What It Returns |
|---|---|
| ”Total distance this week” | Sum of all activity distances, current week |
| ”How many hours did I train in February?” | Total moving time for the month |
| ”Weekly mileage for the last 4 weeks” | Week-by-week distance breakdown |
| ”Average run distance this month” | Mean distance across running activities |
| ”Total elevation gain in 2025” | Cumulative climb for the year |
| ”How many activities this month?” | Count of all activities |
Pace and Performance Queries
These analyze speed, pace trends, and personal records.
| Query | What It Returns |
|---|---|
| ”My average pace this month” | Mean pace across running activities |
| ”Fastest 10K this year” | Best 10K-distance activity by pace |
| ”Show pace trend for my last 10 runs” | Per-run average pace with trend direction |
| ”Compare my pace in January vs February” | Side-by-side average pace |
| ”Longest ride ever” | All-time maximum distance cycling activity |
| ”What is my best 5K time?” | PR query across activity history |
Heart Rate Queries
These require a heart rate monitor paired with your recording device.
| Query | What It Returns |
|---|---|
| ”Average heart rate on yesterday’s run” | Mean HR for a specific activity |
| ”Heart rate zones for last week’s long run” | Time in each zone |
| ”Is my resting HR trending up?” | Comparison of easy-run starting HR over recent activities |
| ”Heart rate drift on my last 3 long runs” | HR increase from first half to second half |
| ”Max heart rate this month” | Peak HR across all activities |
Segment Queries
Segments are user-defined stretches of road or trail on Strava. The skill accesses your efforts on segments you have traversed.
| Query | What It Returns |
|---|---|
| ”My times on [segment name]“ | List of all your efforts with dates |
| ”Best time on [segment name]“ | Your PR effort |
| ”Am I getting faster on [segment name]?” | Trend analysis across your efforts |
| ”Segment efforts from last Saturday’s ride” | All segments hit during a specific activity |
Segment queries require the segment name or a reference to an activity that traversed it. The skill searches your activity history for matching segment efforts.
Comparison Queries
These put two data sets side by side.
| Query | What It Returns |
|---|---|
| ”This week vs last week” | Volume, pace, and activity count comparison |
| ”January vs February mileage” | Monthly distance delta |
| ”Compare my last two long runs” | Side-by-side stats for two specific activities |
| ”Am I running more than last year at this point?” | Year-to-date comparison |
| ”How does this training block compare to spring 2025?” | Multi-week period comparison |
Advanced Features
Beyond basic queries, the skill supports several features that go deeper.
Scheduled Reports
You can configure your agent to send periodic training summaries without manual prompting. This uses the OpenClaw scheduler (cron-based or built-in, depending on your setup).
| Schedule | Query | Output |
|---|---|---|
| Monday 7:00 AM | ”Weekly training summary” | Distance, time, elevation, activity count for the past 7 days |
| Friday 6:00 PM | ”Training load check” | Week-over-week volume delta with ramp rate |
| 1st of month | ”Monthly report” | Full month stats with month-over-month comparison |
Scheduled reports use the same queries you would type manually. The scheduler sends the message to your agent at the specified time, and the agent responds through your configured messaging channel (Telegram, Discord, WhatsApp).
Setup example:
# Monday morning weekly summary
0 7 * * 1 openclaw send "Weekly Strava summary with distance, pace, and elevation"
For more on the OpenClaw scheduler and agent configuration, see the getting started guide.
Multi-Sport Filtering
The skill recognizes all Strava sport types. You can filter any query by sport.
| Sport Type | Filter Examples |
|---|---|
| Running | ”only my runs”, “running activities” |
| Cycling | ”just rides”, “cycling only” |
| Swimming | ”swim sessions”, “pool workouts” |
| Hiking | ”hikes this month” |
| Walking | ”walks last week” |
| Cross-training | ”weight training sessions” |
Multi-sport athletes can also ask for unified summaries: “total training hours across all sports this week.” The skill aggregates across activity types.
Triathlon-specific queries work as well. Asking “brick workout from Saturday” pulls the combined bike-run session if it was logged as separate activities on the same day, or as a single multi-sport activity.
Training Load Analysis
The skill computes derived metrics from your raw data when asked.
| Metric | How It Is Calculated | Query Example |
|---|---|---|
| Weekly volume delta | Current week distance minus previous week | ”Is my mileage ramping too fast?” |
| Acute-to-chronic workload ratio (ACWR) | 7-day load divided by 28-day rolling average | ”What is my ACWR right now?” |
| Pace trend | Linear regression across recent activity paces | ”Is my easy run pace getting faster or slower?” |
| Long run consistency | Variance in long run distances across weeks | ”How consistent are my long runs?” |
| Split fade | Last-third pace minus first-third pace per activity | ”Did I fade in my last race?” |
These are computed on demand. The skill does not maintain a persistent database of derived metrics. Each query triggers fresh API calls and calculations.
Gear Tracking Queries
If you assign gear (shoes, bikes) to activities in Strava, the skill can filter and aggregate by equipment.
| Query | What It Returns |
|---|---|
| ”How many km on my Vaporfly?” | Total distance for a specific shoe |
| ”Which bike did I ride most in January?” | Gear usage comparison |
| ”Activities with my trail shoes” | All activities assigned to a specific gear item |
This is useful for tracking shoe mileage toward retirement thresholds (typically 500-800 km for running shoes).
Weather Correlation
The skill does not have native weather data access. However, if you also run a weather API skill alongside it, the agent can correlate the two data sources.
Example combined query: “On days above 30 degrees, how does my pace compare to cooler days?”
The agent pulls activity timestamps from Strava, fetches historical weather for those dates and locations from the weather skill, and performs the correlation. This requires both skills to be installed and active. Browse Claw Directory for available weather and environmental skills.
What the Skill Does Not Do
Clarity about limits prevents frustration. This skill has defined boundaries.
Hard Limits
| Limitation | Detail |
|---|---|
| No activity recording | The skill reads data. It cannot start, pause, or stop GPS recording. Use Strava or your watch for that. |
| No write access | It cannot create activities, edit names, change gear assignments, or post comments. |
| No social interaction | It cannot give kudos, follow athletes, or join clubs on your behalf. |
| No real-time data | It reads completed, synced activities. There is no live tracking capability. |
| No route planning | It cannot create or suggest routes. |
| No direct device connection | It reads from Strava, not from your Garmin, Wahoo, or COROS directly. Activities must sync to Strava first. |
API Rate Limits
Strava imposes rate limits on API access.
| Limit | Threshold |
|---|---|
| Short-term | 100 requests per 15 minutes |
| Daily | 1,000 requests per day |
Each user query typically consumes 1-5 API calls depending on complexity. A simple “last run” query uses 1 call. A “compare January to February with weekly breakdowns” query might use 8-12 calls across pagination. Scheduled reports count toward these limits.
For personal use, these limits are rarely a problem. If you share an agent across multiple athletes or run high-frequency automated queries, you may hit them. The skill surfaces rate limit errors clearly when they occur.
Data Availability Gaps
| Scenario | Issue | Workaround |
|---|---|---|
| Manual activity upload (no GPS) | Limited fields (no splits, no GPS segments) | Record with GPS when possible |
| Indoor treadmill run | No GPS data, no segments | Pair a footpod for better pace/cadence data |
| Private activities | Accessible with activity:read_all scope | Ensure you authorized the correct scope |
| Very old activities (pre-2012) | Some fields may be sparse | No workaround; data depends on what Strava stored |
| Heart rate not recorded | HR queries return no data | Wear a heart rate monitor |
Naming: Clawdbot Strava vs. Strava-API
A common source of confusion. Two names, one skill.
Clawdbot was the original name for the OpenClaw framework. In version 2.0, the project was renamed to OpenClaw. The skill was originally distributed as clawdbot-strava and is now listed as strava-api on ClawHub and on the Claw Directory skill page.
| Name | Status | Install Command |
|---|---|---|
clawdbot-strava | Legacy name, still works | clawhub install clawdbot-strava |
strava-api | Current name | clawhub install strava-api |
Both commands install the same skill. Configuration keys are identical (skill.strava.client-id, skill.strava.client-secret). If you see references to “clawdbot strava” in older documentation or forum posts, they describe the same integration covered here.
The framework name changed. The skill behavior did not.
Combining with Other Skills
The skill becomes more capable when paired with other OpenClaw skills. The agent can reference multiple skills in a single response.
| Companion Skill | What It Adds | Combined Query Example |
|---|---|---|
| fal-ai | Image and chart generation | ”Generate a bar chart of my weekly mileage for the last 8 weeks” |
| diagram-gen | Structured diagrams | ”Create a training volume diagram for February” |
| Weather API | Historical weather data | ”Correlate my race paces with race-day temperatures” |
| Sleep tracker | Recovery metrics | ”On days after less than 6 hours of sleep, how did my runs go?” |
| TickTick | Task management | ”Add a rest day reminder to my task list if my ACWR exceeds 1.4” |
These combinations require each referenced skill to be installed. The agent handles the orchestration. You write one query and it calls the relevant APIs in sequence.
For a broader view of available skills, see the best skills roundup or browse the health category on Claw Directory.
Performance Characteristics
How fast does the skill respond? This depends on the query complexity and the number of API calls required.
| Query Type | Typical API Calls | Typical Response Time |
|---|---|---|
| Single activity lookup | 1 | 1-2 seconds |
| Last N activities (N <= 30) | 1 | 1-3 seconds |
| Monthly aggregation | 2-4 | 2-5 seconds |
| Year-over-year comparison | 4-10 | 3-8 seconds |
| Full-year analysis | 8-15 | 5-12 seconds |
| Segment effort history | 2-5 | 2-6 seconds |
Response times include Strava API latency, Claude processing, and message delivery. Network conditions and Strava server load affect these numbers. The AI processing step (where Claude interprets the data and formulates a response) adds 1-3 seconds to every query.
Pagination is automatic. If you ask for more activities than a single API page returns (Strava defaults to 30 per page), the skill fetches additional pages as needed.
FAQ
Does the skill work with a free Strava account?
Yes. The Strava API provides activity data for both free and Summit (paid) accounts. You do not need a Strava subscription.
Can I use the skill without a heart rate monitor?
Yes, but heart-rate-specific queries will return no data. Distance, pace, elevation, cadence, and time-based queries all work with GPS data alone.
What happens when my Strava access token expires?
Strava tokens expire after 6 hours. The skill uses your refresh token to obtain a new access token automatically. If the refresh fails (rare), send “Re-authorize Strava” to your agent to start a new OAuth flow.
Can a coach access multiple athletes’ data?
Yes, with separate OAuth authorization from each athlete. The agent can then query any authorized athlete’s data by name. This is not a built-in coaching platform, but it handles roster-level queries.
Does the skill support Zwift and indoor trainer data?
If the indoor activity syncs to Strava, the skill can read it. Zwift activities that appear in your Strava feed are fully accessible. Power, cadence, and heart rate data from indoor sessions are included.
How far back can I query historical data?
As far back as your Strava account goes. The API exposes your complete activity history. Queries like “my total distance in 2020” work if you had a Strava account and logged activities that year.
Is my data stored anywhere by the skill?
No. The skill fetches data from Strava’s API on each query and passes it to Claude for analysis. Nothing is cached or persisted locally beyond the OAuth tokens stored in ~/.openclaw/config/. Your activity data is processed in memory and not written to disk.
What is the difference between clawdbot strava and the native Strava API?
The skill is a wrapper around the Strava API. It adds natural language understanding, data interpretation, and the ability to combine Strava data with other skill outputs. The raw Strava API gives you JSON endpoints. The skill gives you conversational access to those endpoints through your AI agent.
Where to Go Next
This article covered what the clawdbot strava skill can do. Here are logical next steps depending on your situation.
| Your Situation | Next Step |
|---|---|
| Have not installed OpenClaw yet | Getting started guide |
| OpenClaw running, need to connect Strava | Strava setup tutorial |
| Want to compare with native Strava app | OpenClaw vs Strava app comparison |
| Looking for the skill listing | strava-api skill page |
| Want to explore other fitness skills | Health category |
| Interested in more skill options | Best OpenClaw skills 2026 |
The Claw Directory lists all available skills with descriptions, install commands, and compatibility information. Start there if you want to see what else your agent can do beyond fitness data.