Strava

Learn how to use Strava with Composio

Overview

SLUG: STRAVA

Description

Strava is a social fitness network and app designed for cyclists and runners.

Authentication Details

client_id
stringRequired
client_secret
stringRequired
full
stringDefaults to https://www.strava.comRequired
oauth_redirect_uri
stringDefaults to https://backend.composio.dev/api/v1/auth-apps/add
scopes
stringDefaults to read
bearer_token
string

Connecting to Strava

Create an auth config

Use the dashboard to create an auth config for the Strava toolkit. This allows you to connect multiple Strava accounts to Composio for agents to use.

1

Select App

Navigate to Strava.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Strava Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using OAuth2

1from composio import Composio
2
3# Replace these with your actual values
4strava_auth_config_id = "ac_YOUR_STRAVA_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/application
6
7composio = Composio()
8
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 connection_request = composio.connected_accounts.initiate(
12 user_id=user_id,
13 auth_config_id=auth_config_id,
14 )
15
16 print(
17 f"Visit this URL to authenticate Strava: {connection_request.redirect_url}"
18 )
19
20 # This will wait for the auth flow to be completed
21 connection_request.wait_for_connection(timeout=15)
22 return connection_request.id
23
24
25connection_id = authenticate_toolkit(user_id, strava_auth_config_id)
26
27# You can also verify the connection status using:
28connected_account = composio.connected_accounts.get(connection_id)
29print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Strava toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["STRAVA"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Create an activity

Description

Creates a manual activity for an athlete, requires activity:write scope.

Action Parameters

commute
object
description
string
distance
object
elapsed_time
object
name
string
sport_type
string
start_date_local
object
trainer
object
type
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Explore segments

Description

Returns the top 10 segments matching a specified query.

Action Parameters

activity_type
string
bounds
arrayRequired
max_cat
integer
min_cat
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Export route gpx

Description

Returns a gpx file of the route. requires read all scope for private routes.

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Export route tcx

Description

Returns a tcx file of the route. requires read all scope for private routes.

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get activity

Description

Returns the given activity that is owned by the authenticated athlete. requires activity:read for everyone and followers activities. requires activity:read all for only me activities.

Action Parameters

id
integerRequired
include_all_efforts
boolean

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get activity streams

Description

Returns the given activity's streams. requires activity:read scope. requires activity:read all scope for only me activities.

Action Parameters

id
integerRequired
key_by_type
booleanRequired
keys
arrayRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get activity zones

Description

Summit feature. returns the zones of a given activity. requires activity:read for everyone and followers activities. requires activity:read all for only me activities.

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get athlete stats

Description

Returns the activity stats of an athlete. only includes data from activities set to everyone visibilty.

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get authenticated athlete

Description

Returns the currently authenticated athlete. tokens with profile:read all scope will receive a detailed athlete representation; all others will receive a summary representation.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get club

Description

Returns a given club using its identifier.

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get equipment

Description

Returns an equipment using its identifier.

Action Parameters

id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get route

Description

Returns a route using its identifier. requires read all scope for private routes.

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get route streams

Description

Returns the given route's streams. requires read all scope for private routes.

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get segment

Description

Returns the specified segment. read all scope required in order to retrieve athlete-specific segment information, or to retrieve private segments.

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get segment effort

Description

Returns a segment effort from an activity that is owned by the authenticated athlete. requires subscription.

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get segment effort streams

Description

Returns a set of streams for a segment effort completed by the authenticated athlete. requires read all scope.

Action Parameters

id
integerRequired
key_by_type
booleanRequired
keys
arrayRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get segment streams

Description

Returns the given segment's streams. requires read all scope for private segments.

Action Parameters

id
integerRequired
key_by_type
booleanRequired
keys
arrayRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get upload

Description

Returns an upload for a given identifier. requires activity:write scope.

Action Parameters

uploadId
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get zones

Description

Returns the the authenticated athlete's heart rate and power zones. requires profile:read all.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List activity comments

Description

Returns the comments on the given activity. requires activity:read for everyone and followers activities. requires activity:read all for only me activities.

Action Parameters

after_cursor
string
id
integerRequired
page
integer
page_size
integerDefaults to 30
per_page
integerDefaults to 30

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List activity kudoers

Description

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.

Action Parameters

id
integerRequired
page
integer
per_page
integerDefaults to 30

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List activity laps

Description

Returns the laps of an activity identified by an identifier. requires activity:read for everyone and followers activities. requires activity:read all for only me activities.

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List athlete activities

Description

Returns the activities of an athlete for a specific identifier. requires activity:read. only me activities will be filtered out unless requested by a token with activity:read all.

Action Parameters

after
integer
before
integer
page
integer
per_page
integerDefaults to 30

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List athlete clubs

Description

Returns a list of the clubs whose membership includes the authenticated athlete.

Action Parameters

page
integer
per_page
integerDefaults to 30

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List athlete routes

Description

Returns a list of the routes created by the authenticated athlete. private routes are filtered out unless requested by a token with read all scope.

Action Parameters

page
integer
per_page
integerDefaults to 30

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List club activities

Description

Retrieve recent activities from members of a specific club. the authenticated athlete must belong to the requested club in order to hit this endpoint. pagination is supported. athlete profile visibility is respected for all activities.

Action Parameters

id
integerRequired
page
integer
per_page
integerDefaults to 30

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List club administrators

Description

Returns a list of the administrators of a given club.

Action Parameters

id
integerRequired
page
integer
per_page
integerDefaults to 30

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List club members

Description

Returns a list of the athletes who are members of a given club.

Action Parameters

id
integerRequired
page
integer
per_page
integerDefaults to 30

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List segment efforts

Description

Returns a set of the authenticated athlete's segment efforts for a given segment. requires subscription.

Action Parameters

end_date_local
string
per_page
integerDefaults to 30
segment_id
integerRequired
start_date_local
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List starred segments

Description

List of the authenticated athlete's starred segments. private segments are filtered out unless requested by a token with read all scope.

Action Parameters

page
integer
per_page
integerDefaults to 30

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Star segment

Description

Stars/unstars the given segment for the authenticated athlete. requires profile:write scope.

Action Parameters

id
integerRequired
starred
boolean

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update athlete

Description

Update the currently authenticated athlete. requires profile:write scope.

Action Parameters

weight
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Upload activity

Description

Uploads a new data file to create an activity from. requires activity:write scope.

Action Parameters

commute
string
data_type
string
description
string
external_id
string
file
object
name
string
trainer
string

Action Response

data
objectRequired
error
string
successful
booleanRequired