List a user's activities
Summaries of the user's activities, most recent first, optionally restricted to a local date range. Responds with 404 if the user does not exist or is not accessible to you.
Authorization
bearer Vekta api key, e.g. Authorization: Bearer vk_...
In: header
Path Parameters
Id of a user you have access to (see GET /users), or the special value me for the user owning the api key
Query Parameters
Inclusive start of the date range (YYYY-MM-DD)
dateInclusive end of the date range (YYYY-MM-DD)
dateResponse Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/users/me/activities"[ { "id": "act_01JK4W2N9XQ3F5H7B8C6D2E9GT", "groupId": null, "name": "Morning Ride", "description": null, "sport": "cycling", "subSport": "road", "startedAt": "2026-08-05 06:30:00+00", "utcOffset": 120, "startedAtLocal": "2026-08-05 08:30:00+00", "movingDuration": 7020, "effectiveDuration": 7200, "totalDuration": 7500, "trainingStimulus": "tempo", "raceType": null, "distance": 62000, "elevationLoss": 540, "elevationGain": 550, "minElevation": 210, "averageElevation": 340, "maxElevation": 610, "startLatitude": 45.764, "startLongitude": 4.8357, "averageSpeed": 8.6, "maxSpeed": 18.2, "averageCadence": 88, "maxCadence": 112, "averageRunningCadence": null, "maxRunningCadence": null, "minTemperature": 14, "averageTemperature": 19, "maxTemperature": 24, "averageHeartRate": 142, "maxHeartRate": 178, "averagePower": 205, "normalizedPower": 220, "maxPower": 850, "work": 1480, "volume": 43, "intensity": 55, "calories": 1450, "rpe": 7, "feeling": 4, "summary": "Tempo ride with 3 x 12 min efforts around threshold.", "laps": [ { "intensity": "threshold", "characteristic": "progressive", "startedAtIndex": 0, "endedAtIndex": 1800, "startedAt": "2026-08-05 06:30:00+00", "endedAt": "2026-08-05 07:00:00+00", "duration": 1800, "distance": 12500, "averagePower": 268, "maxPower": 412, "averageCadence": 90, "maxCadence": 110, "averageHeartRate": 168, "maxHeartRate": 176, "averageSpeed": 6.94, "maxSpeed": 12.5, "averageAltitude": 340, "elevationGain": 85, "elevationLoss": 12, "averageTorque": 28.5, "maxTorque": 52.1, "averageTemperature": 19, "workBefore": 0 } ], "climbs": [ { "startedAtIndex": 600, "endedAtIndex": 2400, "startedAt": "2026-08-05 06:40:00+00", "endedAt": "2026-08-05 07:10:00+00", "duration": 1800, "distance": 11000, "averageGrade": 6.2, "maxGrade": 11.5, "averagePower": 275, "maxPower": 430, "averagePowerPerKilo": 3.8, "maxPowerPerKilo": 5.9, "workBefore": 320, "averageCadence": 78, "maxCadence": 96, "averageHeartRate": 172, "maxHeartRate": 182, "averageSpeed": 6.1, "maxSpeed": 9.8, "minAltitude": 340, "maxAltitude": 590, "elevationGain": 250, "averageTemperature": 17 } ], "lengths": [ { "startedAtIndex": 0, "endedAtIndex": 45, "startedAt": "2026-08-05 07:15:00+00", "endedAt": "2026-08-05 07:15:38+00", "duration": 38, "strokeType": "freestyle", "averageSpeed": 1.32, "averageHeartRate": 142, "maxHeartRate": 148, "averageCadence": 32, "strokeCount": 18 } ], "providerLaps": [ { "startedAt": "2026-08-05 06:30:00+00", "endedAt": "2026-08-05 07:00:00+00", "intensity": "active", "lapTrigger": "manual" } ] }]Get a user's profile GET
Profile of yourself ("me") or one of your athletes. The workspaces field is only returned for your own profile. Responds with 404 if the user does not exist or is not accessible to you.
Get an activity's streams GET
Recorded time series of an activity in column-oriented form: one array per field, aligned by index. Requests to this endpoint are only counted against the per api key rate limit. Responds with 404 if the activity does not exist, is not accessible to you, or has no streams.