SofaScore API endpoint
Returns the events SofaScore features for a stage sport right now: a mix of the latest finished events (with `winner` and result facts such as laps and circuit) and the next upcoming ones, across series such as Formula 1, MotoGP, Moto2, Moto3, Superbike, NASCAR and cycling races. Each event carries its competition, season name, parent season stage and country. Use an event `id` with stage-substages for its sessions or stages and stage-standings for results. The `sport` enum accepts `motorsport` and `cycling`.
/sofascore/stage-featuredReturns the events SofaScore features for a stage sport right now: the most recent finished events with their winners and the next upcoming ones.
Query parameters:
sport: required enum. Allowed values: motorsport, cycling. Every other sport uses the match-based endpoints (see sofascore/sports).Notable response behavior:
winner and result facts; upcoming ones carry status.type notstarted and no winner.competition, season_name, parent season stage (parent) and country. Use an event id with sofascore/stage-substages for its sessions or cycling stages and with sofascore/stage-standings for results.sofascore/stage-substages on a season id for that).Example response (shortened):
{
"code": 200,
"msg": "OK",
"data": {
"sport": "motorsport",
"count": 4,
"source_url": "https://api.sofascore.com/api/v1/stage/sport/motorsport/featured",
"fetched_at": "2026-10-07T14:00:00Z",
"stages": [
{
"id": 224763,
"name": "Grand Prix of Japan",
"slug": "grand-prix-of-japan",
"type": {
"id": 2,
"name": "Event"
},
"status": {
"type": "finished",
"description": "Finished"
},
"year": "2026",
"start_timestamp": 1791023039,
"start_time": "2026-10-03T10:23:59Z",
"end_timestamp": 1791109439,
"season_name": "MotoGP 2026",
"country": "Japan",
"country_code": "JP",
"competition": {
"id": 17,
"name": "MotoGP",
"slug": "motogp",
"sport": "motorsport",
"category_id": 1325,
"category_name": "MotoGP"
},
"parent": {
"id": 220597,
"name": "MotoGP 2026",
"slug": "motogp-2026",
"start_timestamp": 1767254257
},
"info": {
"circuit": "Twin Ring Motegi",
"circuit_city": "Motegi",
"circuit_country": "Japan",
"round": 16,
"laps": 24,
"laps_completed": 24
},
"winner": {
"id": 21999,
"name": "Marc Marquez",
"short_name": "M. Marquez",
"code": "MAR",
"slug": "marquez-marc",
"kind": "individual",
"country": "Spain",
"country_code": "ES",
"team": {
"id": 214539,
"name": "Ducati Lenovo Team",
"short_name": "Ducati Lenovo Team",
"code": "DTE",
"country": "Italy"
}
}
}
]
}
}
| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| id | 10 | |
| name | 10 | “Singapore GP” and 6 other values |
| slug | 10 | |
| type | 10 | |
| status | 10 | |
| year | 8 | 2,026 |
| start_timestamp | 10 | 2026-10-09 to 2026-10-18 |
| start_time | 10 | 2026-10-09 to 2026-10-18 |
| end_timestamp | 10 | 2026-10-11 to 2026-10-19 |
| season_name | 10 | “Formula 1 2026” and 7 other values |
| country | 10 | USA (4), Indonesia (3), Singapore (1) and 2 more |
| country_code | 10 | |
| competition | 10 | |
| parent | 10 | |
| info | 10 | |
| winner | 7 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| sport | string | Yes | Stage sport key Allowed values: motorsport, cycling. | motorsport | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/sofascore/stage-featured?sport=motorsport" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"sport": "motorsport",
"count": 4,
"source_url": "https://api.sofascore.com/api/v1/stage/sport/motorsport/featured",
"fetched_at": "2026-10-07T14:00:00Z",
"stages": [
{
"id": 224763,
"name": "Grand Prix of Japan",
"slug": "grand-prix-of-japan",
"type": {
"id": 2,
"name": "Event"
},
"status": {
"type": "finished",
"description": "Finished"
},
"year": "2026",
"start_timestamp": 1791023039,
"start_time": "2026-10-03T10:23:59Z",
"end_timestamp": 1791109439,
"season_name": "MotoGP 2026",
"country": "Japan",
"country_code": "JP",
"competition": {
"id": 17,
"name": "MotoGP",
"slug": "motogp",
"sport": "motorsport",
"category_id": 1325,
"category_name": "MotoGP"
},
"parent": {
"id": 220597,
"name": "MotoGP 2026",
"slug": "motogp-2026",
"start_timestamp": 1767254257
},
"info": {
"circuit": "Twin Ring Motegi",
"circuit_city": "Motegi",
"circuit_country": "Japan",
"round": 16,
"laps": 24,
"laps_completed": 24
},
"winner": {
"id": 21999,
"name": "Marc Marquez",
"short_name": "M. Marquez",
"code": "MAR",
"slug": "marquez-marc",
"kind": "individual",
"country": "Spain",
"country_code": "ES",
"team": {
"id": 214539,
"name": "Ducati Lenovo Team",
"short_name": "Ducati Lenovo Team",
"code": "DTE",
"country": "Italy"
}
}
}
]
}
}Request schema
No body schema
Response schema
#/definitions/sofascore.stageFeaturedResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | sofascore.StageFeaturedResponse | No | ||||
| data.count | integer | No | ||||
| data.fetched_at | string | No | ||||
| data.source_url | string | No | ||||
| data.sport | string | No | motorsport | |||
| data.stages | array | No | Stage record, 103 fields: competition, country, country_code, end_timestamp, id, info, name, on_date, parent, parts, season_name, sequence and 9 more. Described under SofaScore Stage API. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/sofascore/stage-featured?sport=motorsport" \
-H "x-api-key: $CRAWLORA_API_KEY"