Year in review
curl --request GET \
--url https://api.rewind.rest/v1/running/year/{year} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.rewind.rest/v1/running/year/{year}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.rewind.rest/v1/running/year/{year}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"year": 2025,
"total_runs": 120,
"total_distance_mi": 540.2,
"total_elevation_ft": 18500,
"total_duration_s": 257400,
"avg_pace": "7:55/mi",
"longest_run_mi": 13.1,
"race_count": 3,
"monthly": [
{
"month": "2025-01",
"runs": 8,
"distance_mi": 35.2,
"duration_s": 17100,
"elevation_ft": 1200
},
{
"month": "2025-02",
"runs": 10,
"distance_mi": 42.1,
"duration_s": 20400,
"elevation_ft": 1500
}
],
"top_runs": [
{
"id": 12345,
"strava_id": 12345,
"name": "Portland Half Marathon",
"date": "2025-10-06",
"distance_mi": 13.1,
"duration": "1:45:00",
"duration_s": 6300,
"pace": "8:01/mi",
"elevation_ft": 320,
"heartrate_avg": 160,
"heartrate_max": 178,
"cadence": 77,
"calories": 1400,
"suffer_score": 120,
"city": "Portland",
"state": "OR",
"polyline": null,
"is_race": true,
"workout_type": "race",
"strava_url": "https://www.strava.com/activities/12345"
}
]
}{
"error": "Not found",
"status": 404
}{
"error": "Not found",
"status": 404
}{
"error": "Not found",
"status": 404
}Running
Year in review
Returns a year-in-review summary with monthly breakdown and top runs.
GET
/
v1
/
running
/
year
/
{year}
Year in review
curl --request GET \
--url https://api.rewind.rest/v1/running/year/{year} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.rewind.rest/v1/running/year/{year}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.rewind.rest/v1/running/year/{year}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"year": 2025,
"total_runs": 120,
"total_distance_mi": 540.2,
"total_elevation_ft": 18500,
"total_duration_s": 257400,
"avg_pace": "7:55/mi",
"longest_run_mi": 13.1,
"race_count": 3,
"monthly": [
{
"month": "2025-01",
"runs": 8,
"distance_mi": 35.2,
"duration_s": 17100,
"elevation_ft": 1200
},
{
"month": "2025-02",
"runs": 10,
"distance_mi": 42.1,
"duration_s": 20400,
"elevation_ft": 1500
}
],
"top_runs": [
{
"id": 12345,
"strava_id": 12345,
"name": "Portland Half Marathon",
"date": "2025-10-06",
"distance_mi": 13.1,
"duration": "1:45:00",
"duration_s": 6300,
"pace": "8:01/mi",
"elevation_ft": 320,
"heartrate_avg": 160,
"heartrate_max": 178,
"cadence": 77,
"calories": 1400,
"suffer_score": 120,
"city": "Portland",
"state": "OR",
"polyline": null,
"is_race": true,
"workout_type": "race",
"strava_url": "https://www.strava.com/activities/12345"
}
]
}{
"error": "Not found",
"status": 404
}{
"error": "Not found",
"status": 404
}{
"error": "Not found",
"status": 404
}Authorizations
API key. Read keys (rw_live_...) access GET endpoints. Admin keys (rw_admin_...) access all endpoints.
Path Parameters
Response
Year in review
Show child attributes
Show child attributes
Show child attributes
Show child attributes
⌘I