FanDuel API endpoint
Returns the live score and stats of up to 100 events in one call, from the Sportsbook's game-state service. Each event has `home_score` and `away_score`, the `period` and `current_period`, the time left in the period (`period_remaining_milliseconds`, basketball), the available `media_types` (for example `LIVE_VIDEO`, `MATCH_STATS`) and a sport-specific `details` block with per-period points, cards, corners or a timeline. `sport` is the Sportsbook's own name for the details block, in which `football` is soccer and `americanFootball` is the NFL and college football. An event the service has no live state for is listed in `not_found` instead of failing the call; use `event/score`, `event/box-score` and `event/play-by-play` for one event in depth.
/fanduel/sportsbook/live-scoresevent_id (required): event ids, 1 to 100, repeated or comma-separated. A non-numeric or non-positive id, or more than 100 ids, returns 400.state (optional): market code, including on for Ontario; default nj. An unknown code returns 400.home_score and away_score, period and current_period, period_remaining_milliseconds (basketball), the available media_types (for example LIVE_VIDEO, MATCH_STATS, VISUALIZATION, DATA_VISUALIZATION), the data provider and a sport-specific details block.sport is the Sportsbook's own name for the details block: basketball, football (which is soccer), americanFootball (the NFL and college football). Other sports use the same pattern. details keeps per-team scores and period points (home.points_per_period), cards and corners for soccer, and a timeline.not_found and does not fail the call. An event that is live but has no score data, such as a golf event, is returned with only its media_types.live-data route when it retires that service; the two return different shapes.Data is read from the Sportsbook's own services and is shown as published at the time of the request; it is not a betting recommendation. 503 on upstream failure, including when the Sportsbook's edge refuses the request.
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| event_id | array<string> | Yes | Event ids, 1 to 100, repeated or comma-separated | 36218656 | |
| state | string | No | Market code, including `on` for Ontario; default `nj` | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fanduel/sportsbook/live-scores?event_id=36218656" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"state": "nj",
"events": [
{
"event_id": 36218656,
"sport": "basketball",
"model_type": "Basketball",
"home_score": 97,
"away_score": 93,
"period": "Q4",
"current_period": 4,
"period_remaining_milliseconds": 558000,
"media_types": [
"MATCH_STATS",
"VISUALIZATION"
],
"provider": "RAMP",
"details": {
"home": {
"score": 97,
"points_per_period": [
29,
34,
32,
2
]
},
"away": {
"score": 93,
"points_per_period": [
32,
29,
32,
0
]
},
"period_remaining_time_milliseconds": 558000,
"current_period": 4,
"period": "Q4"
}
}
],
"not_found": [
999999999
],
"fetched_at": "2026-10-24T04:20:11Z"
},
"msg": "OK"
}Request schema
No body schema
Response schema
#/definitions/fanduel.sportsbookLiveScoresResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | fanduel.SportsbookLiveScoresResponse | No | ||||
| data.events | array | No | ||||
| data.events[].away_score | integer | No | ||||
| data.events[].current_period | integer | No | ||||
| data.events[].details | object | No | ||||
| data.events[].event_id | integer | No | ||||
| data.events[].home_score | integer | No | ||||
| data.events[].media_types | array | No | ||||
| data.events[].model_type | string | No | ||||
| data.events[].period | string | No | ||||
| data.events[].period_remaining_milliseconds | integer | No | ||||
| data.events[].provider | string | No | ||||
| data.events[].sport | string | No | ||||
| data.fetched_at | string | No | ||||
| data.not_found | array | No | ||||
| data.state | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/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/fanduel/sportsbook/live-scores?event_id=36218656" \
-H "x-api-key: $CRAWLORA_API_KEY"