FanDuel API endpoint
Returns the tracks racing today (Australia, Canada, France, Great Britain, Ireland, Sweden, the U.S. and more) with country, state, race count, race types, whether the card is finished, and the race each track is on (number, minutes to post, post time, status). Filter by country, race type, track code, finished and featured; sort by name, minutes to post, minutes to post of the next wagerable race, or IVR code.
/fanduel/racing/trackscountry (optional, repeatable or comma-separated): upper-case three-letter country codes such as USA, CAN, GBR, AUS, FRA, IRL, SWE. Today's codes are in the filters route's countries. Lower-case, two-letter or malformed values return 400; a well-formed code that is not racing today returns an empty list.exclude_country (optional, repeatable or comma-separated): drop these countries; same codes as country.race_type (optional, repeatable or comma-separated): T Thoroughbred, H Harness, Q QuarterHorse, L Thoroughbred LARC. Any other value returns 400; no greyhound races were on the service on 2026-10-23.code (optional, repeatable or comma-separated): keep only these track codes.finished (optional): true for tracks whose card is over, false for tracks still racing; omit for both. Any other value returns 400.featured (optional): true for featured tracks only, false for the others; omit for both.sort (optional): name, mtp (minutes to post of the current race), wagerable_mtp (of the next race that can still be bet), ivr. Any other value returns 400.order (optional): asc or desc; default asc. Valid only with sort.page (optional): page number from 1 to 10000; default 1; a value outside that range returns 400.limit (optional): items per page, 1 to 200; default 50.total counts every match; the page is cut after filtering and sorting.current_race.race_types use the same codes as the races (T, H, Q, L).Data is read from FanDuel Racing's own public service and is shown as published at the time of the request; it is not a betting recommendation, and prices, pools and statuses change by the minute. 503 on upstream failure.
| Field | Filled in, of 40 checked | Values in the sample |
|---|---|---|
| code | 40 | |
| name | 40 | “AU - Coonabarabran” and 39 other values |
| short_name | 40 | “AU - Coonabarabran” and 39 other values |
| ivr_code | 40 | |
| country | 40 | “AUS” and 10 other values |
| featured | 40 | true in 3 of 40 |
| is_finished | 40 | true in 25 of 40 |
| number_of_races | 40 | 2 to 17, median 10 |
| race_types | 40 | median 1 entry |
| current_race | 15 | |
| state | 21 | “NM” and 14 other values |
| city | 19 | “Bangor” and 16 other values |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| country | string | No | Keep only races or tracks in these countries (repeat the parameter or comma-separate): upper-case three-letter codes such as `USA`, `GBR`, `AUS`. Today's codes are listed in the `filters` route's `countries`; lower-case or two-letter values return `400` | ||
| exclude_country | string | No | Drop these countries (repeat the parameter or comma-separate), same codes as `country` | ||
| race_type | string | No | Keep only these race types (repeat the parameter or comma-separate): `T` Thoroughbred, `H` Harness, `Q` QuarterHorse, `L` Thoroughbred LARC Allowed values: T, H, Q, L. | ||
| code | string | No | Keep only these track codes (repeat the parameter or comma-separate), such as `LRL` | ||
| finished | boolean | No | `true` for tracks whose card is over, `false` for tracks still racing; omit for both | ||
| featured | boolean | No | `true` for the Sportsbook's featured tracks only, `false` for the others; omit for both | ||
| sort | string | No | Sort: `name`, `mtp` (minutes to post of the current race), `wagerable_mtp`, `ivr`; default is the service's own order Allowed values: name, mtp, wagerable_mtp, ivr. | ||
| order | string | No | `asc` or `desc`; default `asc`. Only valid together with `sort` Allowed values: asc, desc. | ||
| page | integer | No | Page number, from 1; default 1, at most 10000 Minimum: 1. Maximum: 10000. | ||
| limit | integer | No | Items per page, 1 to 200; default 50 Minimum: 1. Maximum: 200. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fanduel/racing/tracks?country=us&race_type=T&finished=true&featured=true&sort=name&order=asc&page=1&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"race_date": "2026-10-23",
"total": 8,
"page": 1,
"limit": 3,
"tracks": [
{
"code": "CDF",
"name": "FR - Clairefontaine",
"short_name": "FR - Clairefontaine",
"ivr_code": 2365,
"country": "FRA",
"featured": false,
"is_finished": true,
"number_of_races": 9,
"race_types": [
"T"
]
}
],
"fetched_at": "2026-10-23T16:09:31Z"
},
"msg": "OK"
}Request schema
No body schema
Response schema
#/definitions/fanduel.racingTracksResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | fanduel.RacingTracksResponse | No | ||||
| data.fetched_at | string | No | ||||
| data.limit | integer | No | ||||
| data.page | integer | No | ||||
| data.race_date | string | No | ||||
| data.total | integer | No | ||||
| data.tracks | array | No | ||||
| data.tracks[].city | string | No | ||||
| data.tracks[].code | string | No | ||||
| data.tracks[].country | string | No | ||||
| data.tracks[].current_race | fanduel.RacingNextRace | No | RacingNextRace record, 6 fields: mtp, number, post_time, status. Described under FanDuel Racing track and its races API. | |||
| data.tracks[].featured | boolean | No | ||||
| data.tracks[].is_finished | boolean | No | ||||
| data.tracks[].ivr_code | integer | No | ||||
| data.tracks[].name | string | No | ||||
| data.tracks[].number_of_races | integer | No | ||||
| data.tracks[].race_types | array | No | ||||
| data.tracks[].short_name | string | No | ||||
| data.tracks[].state | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/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/racing/tracks?country=us&race_type=T&finished=true&featured=true&sort=name&order=asc&page=1&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"