Races
Start list of an edition
Every rider who started, by team, and how each one ended.
GET/v1/races/{id}/startlistLive, Archive and Complete
Your keyNot saved in this browser. Paste it to run the examples, or get a free key.
Request
curl "https://api.cyclingapi.com/v1/races/rc_ed2bkwva/startlist?year=2025" \ -H "Authorization: Bearer YOUR_KEY"
$ch = curl_init('https://api.cyclingapi.com/v1/races/rc_ed2bkwva/startlist?year=2025'); curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_KEY']]); $data = json_decode(curl_exec($ch), true);
import requests r = requests.get("https://api.cyclingapi.com/v1/races/rc_ed2bkwva/startlist?year=2025", headers={"Authorization": "Bearer YOUR_KEY"}) data = r.json()
const r = await fetch("https://api.cyclingapi.com/v1/races/rc_ed2bkwva/startlist?year=2025", { headers: { Authorization: "Bearer YOUR_KEY" } }); const data = await r.json();
Parameters
| Name | Type | Need | About |
|---|---|---|---|
id | path | Required | Race id (rc_...) |
year | integer | Required | Season |
page | integer | Optional | Page number, from 1 |
per_page | integer | Optional | Rows per page (default 50, at most 50; more is read as 50) |
cursor | string | Optional | The next_cursor from the previous answer |
Example answer
Response200 OK · application/json
{
"data": [
{
"team": "Team name",
"rider": {
"id": "rd_9xk2m4qa",
"name": "Rider name",
"nation": "SLO"
},
"status": "dnf",
"final_place": 0,
"left_on_stage": 0,
"reason": ""
}
],
"meta": {
"page": 1,
"per_page": 50,
"count": 1,
"next_cursor": null
}
}Fields
| Field | Type |
|---|---|
team | string |
rider | object |
status | string |
final_place | integer |
left_on_stage | integer |
reason | string |
Limits
| Plans | Live, Archive and Complete; each reads its own window of seasons (plans and windows) |
| Rate | Free key 10 a minute, Live 60 a minute, Archive 60 a minute, Complete 120 a minute |
| Rows | Up to 50 a page; paging |
| Kept for | 1.1 hours; the X-Cache header says whether the answer was stored (hit) or worked out now (build), and X-Cache-Age how old it is |
| Errors | 401 unauthorized, 400 bad_request, 403 upgrade_required, 404 not_found, 429 rate_limited (errors) |
| Counted | Each call counts toward your allowance |