Endpoint Playground
Returns one classification of a stage. For a race or sprint it is the result (position, grid, race time, gap, interval, laps, laps led, pit stops, tyre stints, fastest lap, points, retirement status); for practice and qualifying the timing order (`time` is the best lap); for a cycling stage the stage result with time gaps; for an event the event aggregate; for a season the championship table (points, victories, races started, pole positions, podiums, fastest laps; NASCAR adds top 5, top 10 and races not finished). `competitor` returns drivers and riders, `team` returns constructors and teams, which only some seasons and events publish (verified for the Formula 1 and MotoGP seasons and the Formula 1 event; races, NASCAR, WRC and cycling return 404 for `team`). Rows are in upstream order. `position` is omitted for competitors who did not finish or set no time, and `gap` is `DNF` for a retirement. The parent session of a split qualifying has no standings; use the ids of its parts from stage-substages. Fields a classification does not publish are omitted. Returns 404 for an unknown id, a stage that has no results yet, or a kind of stage without that classification. The `type` enum accepts `competitor` and `team`.
14 Oct 2026: 22 standings; 11 fields had a value in every checked item and 12 varied between items.
Sample value profiles: updated_timestamp: 2026-09-26; tyre_type: S (16), M (6); position: 1 to 15, median 8.
curl 'https://api.crawlora.net/api/v1/sofascore/stage-standings?id=214258&type=competitor' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| id | string | Yes | 214258 | Numeric SofaScore stage id of a season, event, session or cycling stage |
| type | string | Yes | competitor | Classification kind |
{
"code": 200,
"msg": "OK",
"data": {
"stage_id": 214258,
"type": "competitor",
"count": 4,
"source_url": "https://api.sofascore.com/api/v1/stage/214258/standings/competitor",
"fetched_at": "2026-10-07T14:00:00Z",
"standings": [
{
"position": 2,
"competitor": {
"id": 191417,
"name": "Max Verstappen",
"short_name": "M. Verstappen",
"code": "VER",
"slug": "verstappen-max",
"kind": "individual",
"country": "Netherlands",
"country_code": "NL",
"team": {
"id": 214902,
"name": "Red Bull Racing",
"short_name": "Red Bull Racing",
"code": "RBR",
"country": "Austria",
"chassis": "RB22",
"engine": "Red Bull Ford DM01"
}
},
"start_number": 3,
"grid_position": 8,
"points": 18,
"time": "1:38:02.339",
"gap": "+0.196",
"interval": "+0.196",
"laps": 51,
"pit_stops": 2,
"fastest_lap_time": "1:44.993",
"personal_fastest_lap": 48,
"personal_fastest_lap_time": "1:44.993",
"tyre_type": "S",
"tyre_state": "Used",
"tyre_stints": [
{
"type": "M",
"laps": 31
},
{
"type": "S",
"laps": 20
}
],
"updated_timestamp": 1790428823
},
{
"competitor": {
"id": 41600,
"name": "Valtteri Bottas",
"short_name": "V. Bottas",
"code": "BOT",
"slug": "bottas-valtteri",
"kind": "individual",
"country": "Finland",
"country_code": "FI",
"team": {
"id": 1164925,
"name": "Cadillac Formula 1 Team",
"short_name": "Cadillac",
"code": "CAD",
"country": "USA",
"chassis": "MAC-26",
"engine": "Ferrari 067"
}
},
"start_number": 77,
"grid_position": 19,
"gap": "DNF",
"interval": "+32.838",
"laps": 49,
"pit_stops": 2,
"fastest_lap_time": "1:48.852",
"personal_fastest_lap": 49,
"personal_fastest_lap_time": "1:48.852",
"tyre_type": "S",
"tyre_state": "Used",
"tyre_stints": [
{
"type": "M",
"laps": 25
},
{
"type": "S",
"laps": 25
}
],
"status": "Out",
"sub_status": "Retired",
"comment": "Retired",
"did_not_finish": 1,
"updated_timestamp": 1790432289
}
]
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.