Vekta API
Activities

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.

GET
/users/{userId}/activities
AuthorizationBearer <token>

Vekta api key, e.g. Authorization: Bearer vk_...

In: header

Path Parameters

userId*string

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

from?string

Inclusive start of the date range (YYYY-MM-DD)

Formatdate
to?string

Inclusive end of the date range (YYYY-MM-DD)

Formatdate

Response 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"      }    ]  }]