Skip to main content
The Strava plugin syncs data locally. Use corsair.strava.db.<entity>.search({ data, limit?, offset? }) with the filters listed per entity.

Activities

Path: strava.db.activities.search
const rows = await corsair.strava.db.activities.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idnumberequals, gt, gte, lt, lte, in
namestringequals, contains, startsWith, endsWith, in
sport_typestringequals, contains, startsWith, endsWith, in
start_datestringequals, contains, startsWith, endsWith, in
start_date_localstringequals, contains, startsWith, endsWith, in
elapsed_timenumberequals, gt, gte, lt, lte, in
moving_timenumberequals, gt, gte, lt, lte, in
distancenumberequals, gt, gte, lt, lte, in
total_elevation_gainnumberequals, gt, gte, lt, lte, in
timezonestringequals, contains, startsWith, endsWith, in
descriptionstringequals, contains, startsWith, endsWith, in
caloriesnumberequals, gt, gte, lt, lte, in
gear_idstringequals, contains, startsWith, endsWith, in
commutebooleanequals
trainerbooleanequals
manualbooleanequals
privatebooleanequals
resource_statenumberequals, gt, gte, lt, lte, in
kudos_countnumberequals, gt, gte, lt, lte, in
comment_countnumberequals, gt, gte, lt, lte, in
athlete_countnumberequals, gt, gte, lt, lte, in
photo_countnumberequals, gt, gte, lt, lte, in
average_speednumberequals, gt, gte, lt, lte, in
max_speednumberequals, gt, gte, lt, lte, in
average_heartratenumberequals, gt, gte, lt, lte, in
max_heartratenumberequals, gt, gte, lt, lte, in
average_wattsnumberequals, gt, gte, lt, lte, in
max_wattsnumberequals, gt, gte, lt, lte, in
kilojoulesnumberequals, gt, gte, lt, lte, in
device_wattsbooleanequals
has_heartratebooleanequals
elev_highnumberequals, gt, gte, lt, lte, in
elev_lownumberequals, gt, gte, lt, lte, in
pr_countnumberequals, gt, gte, lt, lte, in
suffer_scorenumberequals, gt, gte, lt, lte, in
workout_typenumberequals, gt, gte, lt, lte, in
upload_idnumberequals, gt, gte, lt, lte, in
external_idstringequals, contains, startsWith, endsWith, in
has_kudoedbooleanequals
average_cadencenumberequals, gt, gte, lt, lte, in
device_namestringequals, contains, startsWith, endsWith, in
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.

Athletes

Path: strava.db.athletes.search
const rows = await corsair.strava.db.athletes.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idnumberequals, gt, gte, lt, lte, in
usernamestringequals, contains, startsWith, endsWith, in
firstnamestringequals, contains, startsWith, endsWith, in
lastnamestringequals, contains, startsWith, endsWith, in
citystringequals, contains, startsWith, endsWith, in
statestringequals, contains, startsWith, endsWith, in
countrystringequals, contains, startsWith, endsWith, in
sexstringequals, contains, startsWith, endsWith, in
premiumbooleanequals
summitbooleanequals
created_atstringequals, contains, startsWith, endsWith, in
updated_atstringequals, contains, startsWith, endsWith, in
follower_countnumberequals, gt, gte, lt, lte, in
friend_countnumberequals, gt, gte, lt, lte, in
measurement_preferencestringequals, contains, startsWith, endsWith, in
ftpnumberequals, gt, gte, lt, lte, in
weightnumberequals, gt, gte, lt, lte, in
profilestringequals, contains, startsWith, endsWith, in
profile_mediumstringequals, contains, startsWith, endsWith, in
resource_statenumberequals, gt, gte, lt, lte, in
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.

Clubs

Path: strava.db.clubs.search
const rows = await corsair.strava.db.clubs.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idnumberequals, gt, gte, lt, lte, in
namestringequals, contains, startsWith, endsWith, in
profilestringequals, contains, startsWith, endsWith, in
profile_mediumstringequals, contains, startsWith, endsWith, in
descriptionstringequals, contains, startsWith, endsWith, in
club_typestringequals, contains, startsWith, endsWith, in
sport_typestringequals, contains, startsWith, endsWith, in
citystringequals, contains, startsWith, endsWith, in
statestringequals, contains, startsWith, endsWith, in
countrystringequals, contains, startsWith, endsWith, in
privatebooleanequals
member_countnumberequals, gt, gte, lt, lte, in
featuredbooleanequals
verifiedbooleanequals
urlstringequals, contains, startsWith, endsWith, in
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.

Gears

Path: strava.db.gears.search
const rows = await corsair.strava.db.gears.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idstringequals, contains, startsWith, endsWith, in
primarybooleanequals
namestringequals, contains, startsWith, endsWith, in
distancenumberequals, gt, gte, lt, lte, in
brand_namestringequals, contains, startsWith, endsWith, in
model_namestringequals, contains, startsWith, endsWith, in
frame_typenumberequals, gt, gte, lt, lte, in
descriptionstringequals, contains, startsWith, endsWith, in
athlete_idnumberequals, gt, gte, lt, lte, in
resource_statenumberequals, gt, gte, lt, lte, in
retiredbooleanequals
converted_distancenumberequals, gt, gte, lt, lte, in
notification_distancenumberequals, gt, gte, lt, lte, in
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.

Laps

Path: strava.db.laps.search
const rows = await corsair.strava.db.laps.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idnumberequals, gt, gte, lt, lte, in
average_cadencenumberequals, gt, gte, lt, lte, in
average_speednumberequals, gt, gte, lt, lte, in
average_heartratenumberequals, gt, gte, lt, lte, in
average_wattsnumberequals, gt, gte, lt, lte, in
device_wattsbooleanequals
distancenumberequals, gt, gte, lt, lte, in
elapsed_timenumberequals, gt, gte, lt, lte, in
end_indexnumberequals, gt, gte, lt, lte, in
lap_indexnumberequals, gt, gte, lt, lte, in
max_speednumberequals, gt, gte, lt, lte, in
max_heartratenumberequals, gt, gte, lt, lte, in
moving_timenumberequals, gt, gte, lt, lte, in
namestringequals, contains, startsWith, endsWith, in
pace_zonenumberequals, gt, gte, lt, lte, in
resource_statenumberequals, gt, gte, lt, lte, in
splitnumberequals, gt, gte, lt, lte, in
start_datestringequals, contains, startsWith, endsWith, in
start_date_localstringequals, contains, startsWith, endsWith, in
start_indexnumberequals, gt, gte, lt, lte, in
total_elevation_gainnumberequals, gt, gte, lt, lte, in
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.

Routes

Path: strava.db.routes.search
const rows = await corsair.strava.db.routes.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idnumberequals, gt, gte, lt, lte, in
descriptionstringequals, contains, startsWith, endsWith, in
distancenumberequals, gt, gte, lt, lte, in
elevation_gainnumberequals, gt, gte, lt, lte, in
namestringequals, contains, startsWith, endsWith, in
privatebooleanequals
starredbooleanequals
timestampnumberequals, gt, gte, lt, lte, in
typenumberequals, gt, gte, lt, lte, in
sub_typenumberequals, gt, gte, lt, lte, in
created_atstringequals, contains, startsWith, endsWith, in
updated_atstringequals, contains, startsWith, endsWith, in
estimated_moving_timenumberequals, gt, gte, lt, lte, in
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.

Segment Efforts

Path: strava.db.segmentEfforts.search
const rows = await corsair.strava.db.segmentEfforts.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idnumberequals, gt, gte, lt, lte, in
activity_idnumberequals, gt, gte, lt, lte, in
athlete_idnumberequals, gt, gte, lt, lte, in
namestringequals, contains, startsWith, endsWith, in
elapsed_timenumberequals, gt, gte, lt, lte, in
moving_timenumberequals, gt, gte, lt, lte, in
start_datestringequals, contains, startsWith, endsWith, in
start_date_localstringequals, contains, startsWith, endsWith, in
distancenumberequals, gt, gte, lt, lte, in
start_indexnumberequals, gt, gte, lt, lte, in
end_indexnumberequals, gt, gte, lt, lte, in
kom_ranknumberequals, gt, gte, lt, lte, in
pr_ranknumberequals, gt, gte, lt, lte, in
device_wattsbooleanequals
average_wattsnumberequals, gt, gte, lt, lte, in
average_heartratenumberequals, gt, gte, lt, lte, in
max_heartratenumberequals, gt, gte, lt, lte, in
average_cadencenumberequals, gt, gte, lt, lte, in
resource_statenumberequals, gt, gte, lt, lte, in
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.

Segments

Path: strava.db.segments.search
const rows = await corsair.strava.db.segments.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idnumberequals, gt, gte, lt, lte, in
namestringequals, contains, startsWith, endsWith, in
activity_typestringequals, contains, startsWith, endsWith, in
distancenumberequals, gt, gte, lt, lte, in
average_gradenumberequals, gt, gte, lt, lte, in
maximum_gradenumberequals, gt, gte, lt, lte, in
elevation_highnumberequals, gt, gte, lt, lte, in
elevation_lownumberequals, gt, gte, lt, lte, in
climb_categorynumberequals, gt, gte, lt, lte, in
citystringequals, contains, startsWith, endsWith, in
statestringequals, contains, startsWith, endsWith, in
countrystringequals, contains, startsWith, endsWith, in
privatebooleanequals
starredbooleanequals
created_atstringequals, contains, startsWith, endsWith, in
updated_atstringequals, contains, startsWith, endsWith, in
total_elevation_gainnumberequals, gt, gte, lt, lte, in
effort_countnumberequals, gt, gte, lt, lte, in
athlete_countnumberequals, gt, gte, lt, lte, in
hazardousbooleanequals
star_countnumberequals, gt, gte, lt, lte, in
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.

Uploads

Path: strava.db.uploads.search
const rows = await corsair.strava.db.uploads.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idnumberequals, gt, gte, lt, lte, in
external_idstringequals, contains, startsWith, endsWith, in
errorstringequals, contains, startsWith, endsWith, in
statusstringequals, contains, startsWith, endsWith, in
activity_idnumberequals, gt, gte, lt, lte, in
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.