Endpoint Playground
Returns one race in full: its conditions, every entry with morning-line and current odds (fractional and decimal), recent price history, runners (jockey, trainer, owner, pedigree, weight, age, scratch and jockey-change flags, win probability), pool totals, probable payouts, will-pays for multi-race bets, the wagers it accepts with their limits, and, once it is official, the finish order and payoffs. Pools, probables and will-pays appear only when the track reports them (mostly official and Up Next races). Pass `include` to add optional groups: `handicapping` (speed, class, pace, jockey-trainer record, power rating, career record and the favorite rank of every runner), `timeform` (Timeform analyst and production comments, tissue price, flags and, once official, how each finisher was beaten, its starting price and a post-race report) and `pool_grids` (the money bet on each entry's pairings in every pool, mostly once the race is official). A race that is not on today's card returns 404.
curl 'https://api.crawlora.net/api/v1/fanduel/racing/race?track=BOL&number=2&include=handicapping' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| track | string | Yes | BOL | Track code from the `tracks` route, such as `LRL` |
| number | string | Yes | 2 | Race number, 1 to 99, such as `2` |
| include | string | No | handicapping | Optional groups to add (repeat the parameter or comma-separate): `handicapping` per-runner handicapping figures and favorite rank, `timeform` Timeform comments, tissue price, flags and finisher timing, `pool_grids` per-entry pool pairings. Other values return `400` |
{
"code": 200,
"data": {
"id": "BOL-2",
"track_code": "BOL",
"track_name": "SE - Bollnas",
"country": "SWE",
"number": "2",
"race_date": "2026-10-23",
"mtp": 40,
"post_time": "2026-10-23T16:42:00Z",
"status": {
"code": "IC",
"name": "Up Next"
},
"race_type": {
"code": "H",
"name": "Harness"
},
"surface": {
"code": "D",
"name": "Dirt"
},
"race_class": {
"code": "T",
"name": "Trot"
},
"distance": "2140mtr",
"purse": 7372,
"runner_count": 11,
"live_streaming": true,
"tvg_race_id": 4062845,
"claiming_price": 0,
"wagerable_runner_count": 10,
"has_replay": true,
"entries": [
{
"number": 1,
"number_color": "#FFFFFF",
"saddle_color": "#AF0000",
"favorite": false,
"morning_line": {
"fractional": "99/1",
"decimal": 100
},
"current_odds": {
"fractional": "20/1",
"decimal": 21
},
"recent_odds": [
{
"odds": "20",
"trending": false
}
],
"runners": [
{
"runner_id": "1",
"name": "Frozen Assets",
"jockey": "Zeb Jonasson",
"trainer": "Mikael Cedergren",
"owner": "Croon Per-Anders & Cedergren Mikael",
"sire": "S.J.'s Caviar",
"dam": "Jalna Boko",
"sex": "G",
"age": 3,
"weight": 0,
"scratched": false,
"jockey_changed": false,
"win_probability": 0.1
}
]
}
],
"pools": [
{
"wager_type": {
"code": "EX",
"name": "Exacta"
},
"amount": 15322
}
],
"probables": [
{
"wager_type": {
"code": "EX",
"name": "Exacta"
},
"amount": 15322,
"pool_amount_total": 15426.39,
"min_wager": 1,
"combos": [
{
"runner1": "1",
"runner2": "1",
"payout": "0.0"
}
]
}
],
"will_pays": [],
"wagers": [
{
"wager_type": {
"code": "WN",
"name": "Win"
},
"min_wager": 1,
"max_wager": 10000
}
],
"included": [],
"last_updated_ms": 1792771361463,
"fetched_at": "2026-10-23T16:09:31Z"
},
"msg": "OK"
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.