Skip to content

First queries

These three queries walk the canonical race-card flow: from a date you pick → the meetings running that day → a single race in detail → every runner entered. Each example has a live runner inline and an Open in Playground button that hands the query — and its variables — over to GraphiQL with introspection-aware autocomplete and your portal session.

Use your active docs key for live examples

If you opened these docs from the developer portal, the key from the reveal dialog is available in this browser tab automatically. Otherwise, paste a key here to run live examples.

Checking browser session…


meetingsForDate returns every Meeting running on the given day, with its Course, MeetingConditions, and the full list of Races on the card.

This is usually the first call you’ll make: pick a date, pull every meeting and race surface, then drill into the IDs that matter.

query MeetingsForDate($date: Date!) {
meetingsForDate(date: $date) {
id
name
meetingDate
status
raceCount
conditions {
going {
official
}
}
course {
name
countryCode
timeZone
}
races {
id
raceNumber
scheduledTime
title
raceType
class
distance {
displayText
}
}
}
}

Variables

{ "date": "2026-04-13" }
Open in Playground →

Run meetings for a date

Edit the date or the selection set, then call the live GraphQL endpoint with the active key from this tab.

Checking active API key…

Ready.
Run the query to inspect the JSON response.
Terminal window
curl -X POST https://api.podium.pagroup.com/graphql \
-H "Content-Type: application/json" \
-H "x-api-key: std_your_key_here" \
-d '{
"query": "query MeetingsForDate($date: Date!) { meetingsForDate(date: $date) { id name meetingDate status raceCount course { name countryCode timeZone } races { id raceNumber scheduledTime title raceType class distance { displayText } } } }",
"variables": { "date": "2026-04-13" }
}'

race takes any races[].id from the first query and returns the full Race: surface, Distance, PrizeMoney, going override, PatternType, and parent Meeting context for breadcrumbs.

query RaceDetail($raceId: ID!) {
race(id: $raceId) {
id
raceNumber
scheduledTime
status
title
raceType
surface
distance {
displayText
yards
}
class
pattern
handicap
goingOfficial
prizeMoney {
currency
total
}
meeting {
id
name
course {
name
countryCode
}
}
}
}

Variables

{ "raceId": "race_abc123" }
Open in Playground →

Fetch one race

Paste a real race ID from query #1 above and edit the selection set.

Checking active API key…

Ready.
Run the query to inspect the JSON response.

The same race query, this time selecting runners — every Runner entered, with its Horse, Jockey, Trainer, draw, Weight, Price, recent form, and official rating.

query RaceRunners($raceId: ID!) {
race(id: $raceId) {
id
title
scheduledTime
runners {
id
cloth
stall
status
horse {
id
name
yearBorn
sex
colour
}
jockey {
id
name
allowance
}
trainer {
id
name
location
}
weight {
pounds
displayText
}
startingPrice {
numerator
denominator
decimal
}
recentForm
officialRating
}
}
}

Variables

{ "raceId": "race_abc123" }
Open in Playground →

Load runners for a race

The runner list grows as declarations come in — final fields drop on the morning of the race.

Checking active API key…

Ready.
Run the query to inspect the JSON response.