Strava is a social fitness network and app designed for cyclists and runners.
Strava is a social fitness network and app designed for cyclists and runners. On Nagent, Strava is exposed as a fully-configurable fitness integration that any agent can call — 33 actions, and OAuth authentication. No code is required to wire Strava into your workflow — connect it once via the External Integrations panel and reuse it across every agent you build.
Agent builders use Strava to automate the kinds of tasks fitness teams previously handled manually. Concrete examples — each one is a single agent step in Nagent — include:
Every action and trigger is paired with a structured input/output schema (visible in the sections below), so when you wire Strava into Helix — our agentic agent builder — the editor knows exactly what each step expects and produces. Configure once, deploy anywhere across your Nagent agents.
Every operation an agent can call against Strava, with input parameters and output schema. Drop these into any step of an agent built in Helix.
STRAVA_CREATE_AN_ACTIVITYCreates 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. Required parameters: name, sport_type, start_date_local, elapsed_time. Optional parameters: type (deprecated), description, distance, trainer, commute.
Input parameters
The name/title of the activity (required).
Deprecated activity type. Use sport_type instead. If both are provided, type is ignored. Common values: Run, Ride, Swim, Walk, Hike, Workout.
Set to 1 to mark the activity as a commute. Set to 0 or omit for non-commute activities.
Set to 1 to mark the activity as done on a trainer/indoor. Set to 0 or omit for outdoor activities.
Distance in meters. Example: 5000.0 for 5km.
Sport 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.
Optional text description of the activity.
Total elapsed time of the activity in seconds (required). Example: 3600 for 1 hour.
ISO 8601 formatted local date-time when the activity started (required). Example: '2024-01-15T09:30:00Z' or '2024-01-15T09:30:00+00:00'.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_EXPLORE_SEGMENTSExplore 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. The response includes segment details like: - id: Unique segment identifier - name: Segment name - climb_category: Climbing difficulty (0=NC/flat to 5=HC/hardest) - avg_grade: Average gradient percentage - distance: Segment length in meters - elev_difference: Elevation gain in meters - start_latlng/end_latlng: Start and end coordinates - elevation_profile: URL to elevation profile image
Input parameters
The 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.
The maximum climbing category (0-5, where 0 is the easiest 'NC' category and 5 is the hardest 'HC' category).
The minimum climbing category (0-5, where 0 is the easiest 'NC' category and 5 is the hardest 'HC' category).
Desired activity type. Must be 'running' or 'riding'. Defaults to riding.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_EXPORT_ROUTE_GPXExports 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.
Input parameters
The unique identifier of the Strava route to export as GPX. You can get route IDs from the List Athlete Routes action. Provide as a string to avoid JS Number precision loss for IDs exceeding 2^53. Example: '1234567890'.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_EXPORT_ROUTE_TCXExports 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.
Input parameters
The 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'.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_GET_ACTIVITYRetrieves 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. Permissions required: - activity:read scope for activities with visibility set to 'everyone' or 'followers_only' - activity:read_all scope for activities with visibility set to 'only_me' The activity must be owned by the authenticated athlete.
Input parameters
The unique identifier of the activity to retrieve. This is the ID assigned by Strava when the activity was created. Provide as a string to avoid JS Number precision loss for IDs exceeding 2^53. Example: '1234567890'.
When set to true, includes all segment efforts in the response. When false or omitted, only segment efforts that match the athlete's best efforts are included. Setting this to true may significantly increase response size for activities with many segments.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_GET_ACTIVITY_STREAMSRetrieves 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. Each stream type returns an array of values that correspond to specific time points during the activity. All requested streams have the same number of data points, aligned by index. Common use cases: - GPS track visualization: request 'latlng', 'altitude', 'time' - Performance analysis: request 'heartrate', 'cadence', 'watts', 'time' - Pace/speed analysis: request 'velocity_smooth', 'distance', 'time' Requires activity:read scope. Requires activity:read_all scope for Only Me (private) activities.
Input parameters
The unique identifier of the activity to retrieve streams for. Can be obtained from list_athlete_activities or get_activity.
List of stream types to retrieve. Common combinations: \['time', 'distance', 'latlng'\] for GPS track, \['time', 'heartrate', 'cadence', 'watts'\] for performance data. Available types: time, distance, latlng, altitude, velocity_smooth, heartrate, cadence, watts, temp, moving, grade_smooth.
Must be true. Returns streams keyed by stream type. This is the only supported format.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_GET_ACTIVITY_ZONESReturns 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. The response includes an array of ActivityZone objects, typically containing: - Heart rate zones: Time distribution across heart rate training zones - Power zones: Time distribution across power training zones (for cycling with power meter) Requirements: - Strava Summit/Premium subscription for the athlete who owns the activity - activity:read scope for Everyone and Followers visibility activities - activity:read_all scope for Only Me (private) activities Common errors: - 404: Activity not found or not accessible - 403: Insufficient permissions to view activity - 402: Summit subscription required
Input parameters
The unique identifier of the activity. Must be owned by or visible to the authenticated athlete. Provide as a string to avoid JS Number precision loss for IDs exceeding 2^53. Example: '1234567890'.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_GET_ATHLETE_STATSReturns 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. Use get_authenticated_athlete to obtain the required athlete ID.
Input parameters
The numeric identifier of the athlete. Must match the authenticated athlete's ID, which can be obtained from the get_authenticated_athlete action.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_GET_AUTHENTICATED_ATHLETERetrieves the profile of the currently authenticated Strava athlete. Returns athlete information including name, location, account status, profile photos, and social connections. The level of detail depends on the OAuth scope: - With 'profile:read_all' scope: Returns detailed representation (resource_state=3) including follower counts, measurement preferences, FTP, weight, and equipment. - Without 'profile:read_all' scope: Returns summary representation (resource_state=2) with basic profile information only. This is a read-only endpoint that requires no input parameters.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_GET_CLUBRetrieves 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. Use STRAVA_LIST_ATHLETE_CLUBS to get club IDs for clubs the authenticated athlete belongs to, or use a known club ID from a Strava club URL. Returns a 404 error if the club does not exist.
Input parameters
The 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).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_GET_EQUIPMENTRetrieves 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 - you cannot view other athletes' equipment. Use Cases: - Get detailed specs and usage statistics for a specific bike or shoe - Check if gear is retired or still in active use - View total distance traveled with specific equipment - Retrieve brand and model information for gear inventory Prerequisites: - Gear ID can be obtained from: 1. Get Authenticated Athlete (bikes/shoes arrays in detailed response) 2. Get Activity (gear_id field shows equipment used for that activity) Note: Gear IDs use prefixes: 'b' for bikes (e.g., 'b12345678'), 'g' for shoes (e.g., 'g12345678').
Input parameters
The 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).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_GET_ROUTERetrieve detailed information about a specific Strava route. A route is a planned path that athletes can follow, created via the Strava Route Builder. This endpoint returns comprehensive route data including: - Basic info: name, description, activity type (Ride/Run), sub_type - Geographic data: distance (meters), elevation_gain (meters), start/end coordinates - Map data: polyline for rendering the route path, map_urls - Metadata: created_at, updated_at, estimated_moving_time, private status - Segments: list of segments included in the route - Waypoints: custom waypoints added to the route Note: Requires read_all scope to retrieve private routes.
Input parameters
The 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). Example: 12345678
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_GET_ROUTE_STREAMSGet detailed stream data for a route. Returns raw GPS coordinates, elevation, and distance data points along a route's path. This data can be used for mapping, elevation profiles, and route analysis. Available stream types for routes: - latlng: Latitude/longitude coordinate pairs for mapping the route - distance: Cumulative distance along the route in meters - altitude: Elevation values in meters for elevation profiles Note: Requires read_all scope for private routes. Use list_athlete_routes to find route IDs for the authenticated athlete.
Input parameters
The unique identifier of the route. Use list_athlete_routes to find route IDs for the authenticated athlete.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_GET_SEGMENTRetrieve detailed information about a specific Strava segment. A segment is a portion of a road or trail where athletes can compete for times. This endpoint returns comprehensive segment data including: - Basic info: name, activity_type (Ride/Run), city, state, country - Geographic data: distance, average_grade, maximum_grade, elevation_high/low, start/end coordinates - Map data: polyline for rendering the segment path - Statistics: effort_count, athlete_count, star_count - Records: xoms (KOM/QOM times), local_legend info - Athlete-specific stats: personal records (requires read_all scope) Note: read_all scope is required to retrieve athlete-specific segment information or to access private segments.
Input parameters
The 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
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_GET_SEGMENT_EFFORTRetrieves 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. This endpoint returns performance metrics including elapsed time, distance, speed, heart rate, power, and cadence data. The segment effort ID can be obtained from: - Activity details (when using include_all_efforts=True with get_activity) - The list_segment_efforts endpoint for a specific segment Note: Requires an active Strava subscription for the authenticated athlete.
Input parameters
The unique identifier of the segment effort. This can be obtained from activity details (segment_efforts array) or from the list_segment_efforts endpoint.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_GET_SEGMENT_EFFORT_STREAMSReturns 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. All streams for a given segment effort have the same length, with values at each index corresponding to the same point in time. Requires read_all scope. The segment effort must be from an activity owned by the authenticated athlete. Use get_activity with include_all_efforts=true or list_segment_efforts to find segment effort IDs.
Input parameters
The unique identifier of the segment effort. Obtain this ID from activities (segment_efforts array) or from list_segment_efforts action. Provide as a string to avoid JS Number precision loss for IDs exceeding 2^53. Example: '1234567890'.
Comma-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' for time, distance, and altitude streams. Not all streams may be available depending on the activity data.
Must be true. Defaults to true.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_GET_SEGMENT_STREAMSGet detailed stream data for a segment. Returns raw GPS, elevation, and distance data points along a segment's route. This data can be used for mapping, elevation profiles, and route analysis. Available stream types: - distance: Distance along the segment in meters - latlng: Latitude/longitude coordinate pairs for mapping - altitude: Elevation values in meters for elevation profiles Note: Only distance, altitude, and latlng stream types are available for segments. Other stream types (like heartrate, watts) are only available for activities. Requires read_all scope for private segments.
Input parameters
The unique identifier of the segment. Use explore_segments or list_starred_segments to find segment IDs.
Comma-separated list of stream types to return. Available types: 'distance', 'latlng', 'altitude'. Example: 'distance,latlng,altitude' to get all stream types.
Must be true. Defaults to true.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_GET_UPLOADRetrieves 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, so you should poll this endpoint (recommended: no more than once per second) until the activity_id is populated or an error is returned. Requires activity:write scope.
Input parameters
The unique identifier of the upload to retrieve. This ID is returned when uploading an activity file via the Upload Activity endpoint.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_GET_ZONESRetrieves the authenticated athlete's heart rate and power zones. This endpoint returns the athlete's configured training zones for both heart rate and power, including zone thresholds and time spent in each zone. Note: Requires the 'profile:read_all' OAuth scope. If you receive a 401 Unauthorized error, ensure your connection has this scope.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_LIST_ACTIVITY_COMMENTSRetrieves 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. Requires OAuth scope: activity:read for Everyone/Followers activities, activity:read_all for Only Me (private) activities. Note: Returns an empty list if the activity has no comments or if you don't have permission to view the activity.
Input parameters
The unique identifier of the Strava activity to retrieve comments for. Example: '12345678987654321'.
Number of comments to return per page (1-200). Defaults to 30.
Cursor for pagination. Pass the cursor from a previous response to fetch the next page of comments. Omit to fetch the first page.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_LIST_ACTIVITY_KUDOERSReturns 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.
Input parameters
The unique identifier of the activity to retrieve kudoers for. This is a numeric ID returned when creating or listing activities.
Page number for pagination. Defaults to 1 if not specified.
Number of kudoers to return per page. Defaults to 30, maximum is 200.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_LIST_ACTIVITY_LAPSRetrieves lap data for a specific Strava activity. Laps represent segments of an activity, typically auto-generated during activities like running or cycling based on distance intervals, manual lap button presses, or course segments. Each lap contains detailed metrics including timing, distance, speed, cadence, and power data. Note: Pace zones in lap data are only populated for running activities and are based on the athlete's configured race times. Authorization: - Requires 'activity:read' scope for public (Everyone) and Followers-only activities. - Requires 'activity:read_all' scope for private (Only Me) activities.
Input parameters
The unique numeric identifier of the Strava activity. This can be obtained from the STRAVA_LIST_ATHLETE_ACTIVITIES or STRAVA_GET_ACTIVITY actions. Example: 12345678901.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_LIST_ATHLETE_ACTIVITIESRetrieves 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 activities by date range, and 'page'/'per_page' for pagination. Requires OAuth scope: activity:read for public/followers activities, activity:read_all for private activities. Note: Returns an empty list if no activities match the criteria.
Input parameters
Page number for pagination, starting at 1. Use with per_page to paginate through large result sets.
Unix epoch timestamp (seconds since 1970-01-01). Returns only activities that started after this time. Example: 1704067200 for Jan 1, 2024.
Unix epoch timestamp (seconds since 1970-01-01). Returns only activities that started before this time. Example: 1704067200 for Jan 1, 2024.
Number of activities per page (1-200). Defaults to 30. Maximum is 200 activities per request.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_LIST_ATHLETE_CLUBSRetrieves 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. Use the club id from the response to fetch detailed club information with other club endpoints. Note: Returns an empty list if the athlete is not a member of any clubs.
Input parameters
Page number for pagination. Starts at 1. If not provided, defaults to 1.
Number of clubs to return per page. Must be between 1 and 200. Defaults to 30.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_LIST_ATHLETE_ROUTESLists 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; attempting to list another athlete's routes returns 403 Forbidden.
Input parameters
The identifier of the athlete. Must match the authenticated athlete to list their routes.
Page number for paginated results. Defaults to 1.
Number of routes per page. Maximum is 200. Defaults to 30.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_LIST_CLUB_ACTIVITIESRetrieve recent activities from members of a specific club. IMPORTANT: The authenticated athlete must be a member of the requested club to access this endpoint. Use 'List Athlete Clubs' first to get club IDs the athlete belongs to. Pagination is supported (max 200 activities total). Enhanced Privacy Mode is respected for all activities. Note: Club activities have limited data for privacy - they do not include activity IDs, dates, or full athlete names.
Input parameters
The unique identifier of the club. You can obtain club IDs using the 'List Athlete Clubs' endpoint to retrieve clubs the authenticated athlete belongs to.
Page number for pagination. Defaults to 1.
Number of activities per page. Defaults to 30. Maximum is 200.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_LIST_CLUB_ADMINISTRATORSReturns 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 to view administrators. Returns an empty list if the club has no visible administrators or access is restricted.
Input parameters
The unique identifier of the Strava club. Can be obtained from STRAVA_LIST_ATHLETE_CLUBS or STRAVA_GET_CLUB actions.
Page number for pagination (1-indexed). If not specified, defaults to 1.
Number of administrators to return per page. Defaults to 30. Maximum is 200.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_LIST_CLUB_MEMBERSReturns 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 and can be controlled using page and per_page parameters. Note: Due to privacy settings, some member information may be limited.
Input parameters
The unique identifier of the club. Use STRAVA_LIST_ATHLETE_CLUBS to get club IDs for clubs the authenticated user belongs to, or STRAVA_GET_CLUB to verify a club ID.
Page number for pagination. Defaults to 1 if not specified.
Number of members to return per page. Defaults to 30, maximum is 200.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_LIST_SEGMENT_EFFORTSList the authenticated athlete's efforts on a given segment. Returns all segment efforts for the authenticated athlete on the specified segment, optionally filtered by date range. Segment efforts represent each time an athlete has ridden/run a particular segment. The response includes details like: - id: Unique effort identifier - elapsed_time: Time to complete the segment in seconds - moving_time: Moving time on the segment in seconds - start_date: When the effort started - distance: Distance covered in meters - average_watts: Average power output (if power data available) - average_heartrate: Average heart rate (if HR data available) - pr_rank: Personal record ranking (1=PR, 2=2nd best, 3=3rd best, null otherwise) - kom_rank: King/Queen of Mountain ranking position (if in top 10) Note: This endpoint only returns efforts for segments the authenticated athlete has actually completed. If the athlete hasn't ridden/run a segment, an empty list will be returned.
Input parameters
Number of items per page. Must be between 1 and 200. Defaults to 30.
The unique identifier of the segment. You can get segment IDs from explore_segments, get_activity (which includes segment_efforts), or starred_segments endpoints.
Filter efforts to those ending before this ISO 8601 formatted date time. Example: '2023-12-31T23:59:59Z'. If not provided, returns all efforts.
Filter efforts to those starting after this ISO 8601 formatted date time. Example: '2023-01-01T00:00:00Z'. If not provided, returns all efforts.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_LIST_STARRED_SEGMENTSReturns 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. Use pagination parameters (page, per_page) to navigate through large result sets.
Input parameters
Page number for paginated results. Starts at 1. If not specified, defaults to 1.
Number of segments to return per page. Maximum is 200. Defaults to 30.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_STAR_SEGMENTStars/Unstars the given segment for the authenticated athlete. Requires profile:write scope.
Input parameters
The unique identifier of the Strava segment to star or unstar. Can be obtained from explore_segments or get_segment actions.
If true, star (favorite) the segment; if false, unstar (remove from favorites) the segment.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_UPDATE_ATHLETEUpdate the currently authenticated athlete's profile. Currently only supports updating the athlete's weight. Requires profile:write scope.
Input parameters
The weight of the athlete in kilograms. Must be a positive number (e.g., 70.5).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
STRAVA_UPLOAD_ACTIVITYUploads a new activity file (FIT, TCX, or GPX) to create an activity on Strava. The upload is processed asynchronously. This endpoint 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. Typical processing time is under 2 seconds. Files must be 25MB or smaller and contain actual workout data with timestamps for each trackpoint. Requires the activity:write OAuth scope.
Input parameters
The activity file to upload. Supported formats: FIT, TCX, GPX (and their gzipped variants). Files must contain timestamps for each trackpoint. Max size: 25MB.
The activity name to display on Strava. If not provided, Strava will auto-generate a name based on the activity type and time.
Set to true to mark as a commute activity.
Set to true to mark as a trainer activity (indoor on a stationary trainer).
The format of the uploaded file. Must match the actual file format. Options: 'fit', 'fit.gz', 'tcx', 'tcx.gz', 'gpx', 'gpx.gz'.
Sport types that can be assigned to uploaded activities.
A text description of the activity.
An arbitrary unique identifier for this upload. Useful for tracking uploads from external systems and preventing duplicate uploads.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
No publicly available marketplace agent is found using this tool yet. There are 39 agents privately built on Nagent that already use Strava.
Build on Nagent
Connect Strava to any Nagent agent in minutes — no API key management, no boilerplate. Just configure and deploy.
The five questions agent builders ask before adopting a new integration.
Open the External Integrations panel inside Nagent (app.nagent.ai/externalIntegration), find Strava, and click "Connect Now." You'll authenticate with OAuth — Nagent handles credential storage and refresh automatically. Once connected, Strava is available to any agent in your workspace.
No. Nagent provides no-code integration for every tool. Once Strava is connected, you configure its 33 actions directly in the agent builder UI — no API calls, no boilerplate, no schema management.
Helix — Nagent's agentic agent builder — lets you drop Strava steps into any workflow visually. Pick an action (e.g., one of those listed above), fill in the inputs (Helix knows the required vs. optional schema for each parameter), and connect it to upstream/downstream steps. Triggers run as the entry point of an agent, so when a Strava event fires, the agent kicks off automatically.
Every Strava action and trigger ships with a fully-typed schema — input parameters with name, type, required flag, and description, plus the output payload shape. The schemas are documented in the sections above. Helix uses these schemas to validate your configuration at build time and to type-check the data flowing between steps.
Yes. While Strava ships with 33 pre-built fitness actions, you can layer custom logic around them inside Helix — pre/post-processing steps, conditional branches, retries, or stitching Strava together with other connected tools. For deeper customization, talk to our team about Nagent's Agentic AI Lab — forward-deployed engineers who build Strava-based workflows tailored to your business.