Skip to content

Strava

Strava

Strava is the world’s largest social fitness network, designed for cyclists, runners, and outdoor sports enthusiasts. The platform records physical activities via GPS, organizes competitive routes and segments, and connects athletes in groups and clubs. With the Strava integration in SquadOS, your agents can create manual activities, query athlete stats, explore segments and routes, list club members, and analyze detailed performance data such as heart rate, power, and cadence.

This tool uses OAuth 2.0 (OAUTH2) to connect.

Composio provides a managed app for Strava — in most cases, you do not need to create your own app. When you click Connect, you are directed to the Strava authorization screen where you grant the required permissions.

FieldRequiredDescription
client_idNoStrava app client ID (only if using your own credentials).
client_secretNoStrava app client secret (only if using your own credentials).

If you want to use your own Strava app instead of Composio’s managed app:

  1. Go to www.strava.com/settings/api and log in.
  2. Click Create & Manage Your Apps, then Create Application.
  3. Fill in the required fields: app name, website, and callback domain.
  4. In the Callback Domain field, enter exactly: backend.composio.dev
  5. After creating the app, copy the Client ID and Client Secret displayed.
  6. In Composio, provide these credentials when configuring the connection.
  1. Go to Tools in the side menu (/admin/tools).
  2. Open the Available tab and search for Strava.
  3. Click the card to open the details modal and hit Connect.
  4. You’re taken to the secure connection page hosted by Composio, where you authorize access via OAuth 2.0 with your Strava account.
  5. Once done, you’re sent back to SquadOS with the account connected and the tool available for your agents. (Connection-flow details in Organization Tools.)

How do I set up custom OAuth credentials for Strava?

Section titled “How do I set up custom OAuth credentials for Strava?”

For a step-by-step guide on creating and configuring your own Strava OAuth credentials with Composio, see How to create OAuth credentials for Strava.

STRAVA_CREATE_AN_ACTIVITY

Creates a manual activity for an athlete. Requires activity:write scope. This endpoint is for manually entered activities only. To upload activity files (FIT, TCX, GPX), use the Upload Activity endpoint instead.

NameTypeRequiredDescription
namestringYesThe name/title of the activity (required).
sport_typestringYesSport type of the activity (required). Common values include: Run, TrailRun, Walk, Hike, Ride, MountainBikeRide, GravelRide, VirtualRide, Swim, Workout, WeightTraining, Yoga, CrossFit, Rowing, Kayaking, Skiing, Snowboarding.
start_date_localstringYesISO 8601 formatted local date-time when the activity started (required). Example: 2024-01-15T09:30:00Z.
elapsed_timeintegerYesTotal elapsed time of the activity in seconds (required). Example: 3600 for 1 hour.
typestringNoDeprecated activity type. Use sport_type instead. If both are provided, type is ignored.
commuteintegerNoSet to 1 to mark the activity as a commute. Set to 0 or omit for non-commute activities.
trainerintegerNoSet to 1 to mark the activity as done on a trainer/indoor. Set to 0 or omit for outdoor activities.
distancenumberNoDistance in meters. Example: 5000.0 for 5km.
descriptionstringNoOptional text description of the activity.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_EXPLORE_SEGMENTS

Explore segments within a geographic bounding box. Returns the top 10 segments matching the specified geographic boundary and optional filters. Segments are sections of roads or trails where Strava athletes can compete for times.

NameTypeRequiredDescription
boundsstringYesThe latitude and longitude for two points describing a rectangular boundary for the search as a comma-separated string: southwest_lat,southwest_lng,northeast_lat,northeast_lng. Example: 37.7,-122.5,37.8,-122.4 for San Francisco area.
activity_typestringNoDesired activity type. Must be running or riding. Defaults to riding.
min_catintegerNoThe minimum climbing category (0-5, where 0 is the easiest ‘NC’ category and 5 is the hardest ‘HC’ category).
max_catintegerNoThe maximum climbing category (0-5, where 0 is the easiest ‘NC’ category and 5 is the hardest ‘HC’ category).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_EXPORT_ROUTE_GPX

Exports a Strava route as a GPX (GPS Exchange Format) file. GPX files can be used to import routes into GPS devices, other fitness apps, or mapping software. Requires read_all scope for private routes.

NameTypeRequiredDescription
idstringYesThe unique identifier of the Strava route to export as GPX. Provide as a string to avoid JS Number precision loss for IDs exceeding 2^53. Example: 1234567890.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_EXPORT_ROUTE_TCX

Exports a Strava route as a TCX (Training Center XML) file. TCX format is widely supported by GPS devices, fitness watches, and training software like Garmin Connect and TrainingPeaks. The exported file contains the route’s waypoints, distance, and elevation profile. Requires read_all scope for private routes.

NameTypeRequiredDescription
idstringYesThe unique identifier of the Strava route to export as TCX. Must be a valid route ID the authenticated user has access to. Provide as a string to avoid JS Number precision loss for IDs exceeding 2^53. Example: 1234567890.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_GET_ACTIVITY

Retrieves detailed information about a specific activity by its ID. Returns a DetailedActivity object containing comprehensive data including distance, time, elevation, speed, heart rate, power data (if available), segment efforts, laps, splits, and more. Requires activity:read scope for activities with visibility set to ‘everyone’ or ‘followers_only’, and activity:read_all scope for private activities.

NameTypeRequiredDescription
idstringYesThe unique identifier of the activity to retrieve. Provide as a string to avoid JS Number precision loss for IDs exceeding 2^53. Example: 1234567890.
include_all_effortsbooleanNoWhen set to true, includes all segment efforts in the response. When false or omitted, only the athlete’s best efforts are included. Setting this to true may significantly increase response size.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_GET_ACTIVITY_STREAMS

Retrieves time-series stream data for a specific activity. Streams are the raw spatial and sensor data recorded during an activity, including GPS coordinates, speed, heart rate, power, etc. Requires activity:read scope, and activity:read_all for private activities.

NameTypeRequiredDescription
idintegerYesThe unique identifier of the activity to retrieve streams for. Can be obtained from list_athlete_activities or get_activity.
keysarrayYesList of stream types to retrieve. Available types: time, distance, latlng, altitude, velocity_smooth, heartrate, cadence, watts, temp, moving, grade_smooth.
key_by_typebooleanNoMust be true. Returns streams keyed by stream type.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_GET_ACTIVITY_ZONES

Returns the heart rate and power zones of a given activity. This is a Summit/Premium feature that provides zone distribution data showing time spent in each training zone. Requires a Strava Summit/Premium subscription and the appropriate activity read scope.

NameTypeRequiredDescription
idstringYesThe unique identifier of the activity. Provide as a string to avoid JS Number precision loss for IDs exceeding 2^53. Example: 1234567890.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_GET_ATHLETE_STATS

Returns the activity stats of an athlete, including ride, run, and swim totals for recent (last 4 weeks), year-to-date, and all-time periods. Only includes data from activities set to ‘Everyone’ visibility.

NameTypeRequiredDescription
idintegerYesThe numeric identifier of the athlete. Must match the authenticated athlete’s ID, obtainable from the get_authenticated_athlete action.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_GET_AUTHENTICATED_ATHLETE

Retrieves the profile of the currently authenticated Strava athlete. Returns athlete information including name, location, account status, profile photos, and social connections. With the profile:read_all scope, returns detailed information including follower counts, measurement preferences, FTP, weight, and equipment.

NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_GET_CLUB

Retrieves detailed information about a specific Strava club by its ID. Returns comprehensive club details including name, description, location (city/state/country), member count, sport type, activity types, club type (casual, racing team, company, etc.), privacy settings, and the authenticated athlete’s membership status.

NameTypeRequiredDescription
idintegerYesThe unique numeric identifier of the Strava club. Can be obtained from the STRAVA_LIST_ATHLETE_CLUBS action or from a club’s URL (e.g., strava.com/clubs/1 has id=1).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_GET_EQUIPMENT

Retrieves detailed information about a specific piece of gear/equipment. Returns comprehensive details about bikes or shoes including name, brand, model, total distance, and status (primary/retired). The requesting athlete must own the gear. Note: Gear IDs use prefixes — b for bikes (e.g., b12345678), g for shoes (e.g., g12345678).

NameTypeRequiredDescription
idstringYesThe unique identifier of the gear/equipment. Bike IDs start with b (e.g., b12345678), shoe IDs start with g (e.g., g12345678). Gear IDs can be obtained from the authenticated athlete’s profile (bikes/shoes arrays) or from activity details (gear_id field).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_GET_ROUTE

Retrieve detailed information about a specific Strava route. A route is a planned path created via the Strava Route Builder. Returns comprehensive route data including name, activity type, distance, elevation gain, start/end coordinates, map polyline, segments, and waypoints. Requires read_all scope for private routes.

NameTypeRequiredDescription
idintegerYesThe unique numeric identifier of the Strava route. Route IDs can be obtained from list_athlete_routes or from the URL when viewing a route on Strava (e.g., strava.com/routes/12345678).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_GET_ROUTE_STREAMS

Get detailed stream data for a route. Returns raw GPS coordinates, elevation, and distance data points along a route’s path. Available stream types for routes: latlng, distance, altitude. Requires read_all scope for private routes.

NameTypeRequiredDescription
idintegerYesThe unique identifier of the route. Use list_athlete_routes to find route IDs for the authenticated athlete.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_GET_SEGMENT

Retrieve detailed information about a specific Strava segment. A segment is a portion of a road or trail where athletes can compete for times. Returns comprehensive segment data including name, activity type, distance, average and maximum grade, elevation, coordinates, polyline, effort counts, and records (KOM/QOM). Requires read_all scope for private segments or athlete-specific segment information.

NameTypeRequiredDescription
idintegerYesThe unique numeric identifier of the Strava segment. Segment IDs can be obtained from explore_segments, list_starred_segments, list_segment_efforts, or from activity details. Example: 229781.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_GET_SEGMENT_EFFORT

Retrieves detailed information about a specific segment effort by its unique ID. A segment effort represents an athlete’s attempt at a particular segment during an activity. Returns performance metrics including elapsed time, distance, speed, heart rate, power, and cadence data. Requires an active Strava subscription.

NameTypeRequiredDescription
idintegerYesThe unique identifier of the segment effort. Can be obtained from activity details (segment_efforts array) or from the list_segment_efforts endpoint.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_GET_SEGMENT_EFFORT_STREAMS

Returns stream data for a segment effort completed by the authenticated athlete. Streams provide the raw time-series data associated with a segment effort, such as GPS coordinates, altitude, speed, heart rate, power, etc. Requires read_all scope.

NameTypeRequiredDescription
idstringYesThe unique identifier of the segment effort. Provide as a string to avoid JS Number precision loss for IDs exceeding 2^53. Example: 1234567890.
keysstringYesComma-separated list of stream types to return. Available types: time, distance, latlng, altitude, velocity_smooth, heartrate, cadence, watts, temp, moving, grade_smooth. Example: time,distance,altitude.
key_by_typebooleanNoMust be true. Defaults to true.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_GET_SEGMENT_STREAMS

Get detailed stream data for a segment. Returns raw GPS, elevation, and distance data points along a segment’s route. Available stream types: distance, latlng, altitude. Requires read_all scope for private segments.

NameTypeRequiredDescription
idintegerYesThe unique identifier of the segment. Use explore_segments or list_starred_segments to find segment IDs.
keysstringYesComma-separated list of stream types to return. Available types: distance, latlng, altitude. Example: distance,latlng,altitude to get all stream types.
key_by_typebooleanNoMust be true. Defaults to true.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_GET_UPLOAD

Retrieves the status of an upload by its ID. Use this endpoint to poll the processing status of an uploaded activity file. Uploads are processed asynchronously; poll no more than once per second until the activity_id is populated or an error is returned. Requires activity:write scope.

NameTypeRequiredDescription
uploadIdintegerYesThe unique identifier of the upload to retrieve. This ID is returned when uploading an activity file via the Upload Activity endpoint.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_GET_ZONES

Retrieves the authenticated athlete’s heart rate and power zones. Returns the athlete’s configured training zones including zone thresholds and time spent in each zone. Requires the profile:read_all OAuth scope.

NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_LIST_ACTIVITY_COMMENTS

Retrieves comments on a specific Strava activity, sorted oldest first. Returns comment details including the comment text, author information, and timestamps. Supports cursor-based pagination for activities with many comments.

NameTypeRequiredDescription
idstringYesThe unique identifier of the Strava activity to retrieve comments for. Example: 12345678987654321.
page_sizeintegerNoNumber of comments to return per page (1-200). Defaults to 30.
after_cursorstringNoCursor for pagination. Pass the cursor from a previous response to fetch the next page of comments. Omit to fetch the first page.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_LIST_ACTIVITY_KUDOERS

Returns the athletes who kudoed an activity identified by an identifier. Requires activity:read for Everyone and Followers activities. Requires activity:read_all for Only Me activities.

NameTypeRequiredDescription
idintegerYesThe unique identifier of the activity to retrieve kudoers for.
pageintegerNoPage number for pagination. Defaults to 1.
per_pageintegerNoNumber of kudoers to return per page. Defaults to 30, maximum is 200.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_LIST_ACTIVITY_LAPS

Retrieves lap data for a specific Strava activity. Laps represent segments of an activity, typically auto-generated based on distance intervals, manual lap button presses, or course segments. Each lap contains detailed metrics including timing, distance, speed, cadence, and power data.

NameTypeRequiredDescription
idintegerYesThe unique numeric identifier of the Strava activity. Can be obtained from STRAVA_LIST_ATHLETE_ACTIVITIES or STRAVA_GET_ACTIVITY. Example: 12345678901.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_LIST_ATHLETE_ACTIVITIES

Retrieves a paginated list of activities for the authenticated athlete. Returns activity summaries including name, type, distance, duration, elevation gain, speed, heart rate data, and timestamps. Use before and after parameters to filter by date range.

NameTypeRequiredDescription
pageintegerNoPage number for pagination, starting at 1.
afterintegerNoUnix epoch timestamp (seconds since 1970-01-01). Returns only activities that started after this time. Example: 1704067200 for Jan 1, 2024.
beforeintegerNoUnix epoch timestamp (seconds since 1970-01-01). Returns only activities that started before this time. Example: 1704067200 for Jan 1, 2024.
per_pageintegerNoNumber of activities per page (1-200). Defaults to 30. Maximum is 200.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_LIST_ATHLETE_CLUBS

Retrieves a paginated list of Strava clubs the authenticated athlete is a member of. Returns club details including id, name, location, member count, sport type, and profile images.

NameTypeRequiredDescription
pageintegerNoPage number for pagination. Starts at 1. Defaults to 1.
per_pageintegerNoNumber of clubs to return per page (1-200). Defaults to 30.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_LIST_ATHLETE_ROUTES

Lists routes created by a specific athlete. Returns an array of Route summaries including id, name, distance, elevation gain, and type. Private routes are filtered out unless the token has read_all scope. Only the authenticated athlete’s routes can be accessed.

NameTypeRequiredDescription
idintegerYesThe identifier of the athlete. Must match the authenticated athlete to list their routes.
pageintegerNoPage number for paginated results. Defaults to 1.
per_pageintegerNoNumber of routes per page. Maximum is 200. Defaults to 30.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_LIST_CLUB_ACTIVITIES

Retrieve recent activities from members of a specific club. The authenticated athlete must be a member of the requested club to access this endpoint. Pagination is supported (max 200 activities total). Note: Club activities have limited data for privacy — they do not include activity IDs, dates, or full athlete names.

NameTypeRequiredDescription
idintegerYesThe unique identifier of the club. Use ‘List Athlete Clubs’ to get club IDs for clubs the authenticated athlete belongs to.
pageintegerNoPage number for pagination. Defaults to 1.
per_pageintegerNoNumber of activities per page. Defaults to 30. Maximum is 200.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_LIST_CLUB_ADMINISTRATORS

Returns a list of the administrators of a given Strava club. The response includes each administrator’s first name, last name (possibly abbreviated), and resource state. For public clubs, this endpoint is accessible without membership. For private clubs, the authenticated user may need to be a member.

NameTypeRequiredDescription
idintegerYesThe unique identifier of the Strava club. Can be obtained from STRAVA_LIST_ATHLETE_CLUBS or STRAVA_GET_CLUB actions.
pageintegerNoPage number for pagination (1-indexed). Defaults to 1.
per_pageintegerNoNumber of administrators to return per page. Defaults to 30. Maximum is 200.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_LIST_CLUB_MEMBERS

Returns a list of the athletes who are members of a given club. The authenticated athlete must belong to the requested club to access this endpoint. Results are paginated. Note: Due to privacy settings, some member information may be limited.

NameTypeRequiredDescription
idintegerYesThe unique identifier of the club. Use STRAVA_LIST_ATHLETE_CLUBS to get club IDs, or STRAVA_GET_CLUB to verify a club ID.
pageintegerNoPage number for pagination. Defaults to 1.
per_pageintegerNoNumber of members to return per page. Defaults to 30, maximum is 200.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_LIST_SEGMENT_EFFORTS

List the authenticated athlete’s efforts on a given segment. Returns all segment efforts optionally filtered by date range. Includes details like elapsed time, moving time, start date, distance, average power, average heart rate, personal record ranking, and KOM/QOM ranking position.

NameTypeRequiredDescription
segment_idintegerYesThe unique identifier of the segment. Can be obtained from explore_segments, get_activity (segment_efforts), or starred_segments endpoints.
per_pageintegerNoNumber of items per page (1-200). Defaults to 30.
start_date_localstringNoFilter efforts to those starting after this ISO 8601 formatted date time. Example: 2023-01-01T00:00:00Z.
end_date_localstringNoFilter efforts to those ending before this ISO 8601 formatted date time. Example: 2023-12-31T23:59:59Z.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_LIST_STARRED_SEGMENTS

Returns a list of the authenticated athlete’s starred segments with summary details including segment name, distance, elevation, grade, and location. Private segments are filtered out unless requested by a token with read_all scope.

NameTypeRequiredDescription
pageintegerNoPage number for paginated results. Starts at 1. Defaults to 1.
per_pageintegerNoNumber of segments to return per page. Maximum is 200. Defaults to 30.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_STAR_SEGMENT

Stars/Unstars the given segment for the authenticated athlete. Requires profile:write scope.

NameTypeRequiredDescription
idintegerYesThe unique identifier of the Strava segment to star or unstar. Can be obtained from explore_segments or get_segment actions.
starredbooleanNoIf true, star (favorite) the segment; if false, unstar (remove from favorites) the segment.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_UPDATE_ATHLETE

Update the currently authenticated athlete’s profile. Currently only supports updating the athlete’s weight. Requires profile:write scope.

NameTypeRequiredDescription
weightnumberYesThe weight of the athlete in kilograms. Must be a positive number (e.g., 70.5).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

STRAVA_UPLOAD_ACTIVITY

Uploads a new activity file (FIT, TCX, or GPX) to create an activity on Strava. The upload is processed asynchronously. Returns an upload ID immediately, which can be used with the Get Upload endpoint to check processing status and retrieve the created activity ID once processing completes. Files must be 25MB or smaller and contain actual workout data with timestamps for each trackpoint. Requires the activity:write OAuth scope.

NameTypeRequiredDescription
fileobjectYesThe activity file to upload. Supported formats: FIT, TCX, GPX (and their gzipped variants). Files must contain timestamps for each trackpoint. Max size: 25MB.
data_typestringYesThe format of the uploaded file. Must match the actual file format. Options: fit, fit.gz, tcx, tcx.gz, gpx, gpx.gz.
namestringNoThe activity name to display on Strava. If not provided, Strava will auto-generate a name based on the activity type and time.
sport_typestringNoSport type to assign to the uploaded activity.
descriptionstringNoA text description of the activity.
commutebooleanNoSet to true to mark as a commute activity.
trainerbooleanNoSet to true to mark as a trainer activity (indoor on a stationary trainer).
external_idstringNoAn arbitrary unique identifier for this upload. Useful for tracking uploads from external systems and preventing duplicate uploads.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.