Retrieving Statistics
Poll driver career stats by season
This integration scenario explains how to retrieve career-level NASCAR statistics using the Sportradar NASCAR API. It focuses on pulling the full season dataset from the Driver Statistics feed and then filtering, aggregating, or segmenting results for your specific use case (a driver card, leaderboard view, trend charts, and more).
This scenario is commonly used to:
- Display career stat pages for drivers who raced in a particular season
- Build “wins / top 10s / DNFs” comparisons across the field
- Power split views (by track type, track, or race)
- Support multi-season trending (client-side aggregation)
Overview
Career statistics in NASCAR are returned as a season-scoped dataset. When you request Driver Statistics for a given series and season_year, the response includes all participating drivers for that season, along with their career stats segmented into groupings such as:
- By Track Type (for example, superspeedway vs. road course)
- By Track
- By Race
Your application typically uses the feed as a canonical source, then filters down to a single driver (or subset) and aggregates as needed.
Relevant Feeds
| Feed | Purpose |
|---|---|
| Seasons | Confirm available seasons before requesting stats |
| Driver Statistics | Retrieve career statistics for all drivers who raced for a series + season |
| Drivers | Optional. Enrich driver bio and season roster context for UI display |
| Daily Change Log | Detect when statistics-related updates occur |
High-Level Workflow
Seasons → Driver Statistics → Filter/Aggregate
- Confirm the season is available
- Pull Driver Statistics for the series +
season_year - Filter to specific drivers (optional)
- Aggregate results across seasons or split types (optional)
Integration Steps
1. Confirm Season Availability
Before requesting historical stats, use the Seasons feed to confirm the target season_year is available for your selected series.
GET https://api.sportradar.com/nascar-ot3/series/list.json
The series list includes:
mc→ Cup Seriesor→ Xfinity Series (formerly O'Reilly Auto Parts Series,series.alias=BSERIES)cw→ Craftsman Truck Series
This helps avoid invalid requests and establishes your baseline for how far back the dataset goes.
2. Retrieve Driver Statistics for the Season
Call the Driver Statistics feed using:
nascar_seriesseason_year
GET https://api.sportradar.com/nascar-ot3/mc/drivers/2025/drivers.json
The response returns:
seriesmetadata (id, alias, name)seasonmetadata (id, year)drivers[]containing stats for all drivers in that season
{
"series": {
"id": "3e32047e-4ff3-4e35-a607-1546a2c32214",
"alias": "CUP",
"name": "NASCAR Cup Series"
},
"season": {
"id": "7967612b-6ad5-4ac3-8a3d-69dbc63916aa",
"year": 2025
},
"drivers": [
{
"id": "b030a8df-e7de-44a4-9f59-34bb9fd227d0",
"first_name": "Tyler",
"last_name": "Reddick",
"full_name": "Tyler Reddick",
"birthday": "1996-01-11",
"rookie_year": 2014,
"gender": "M",
"status": "ACT",
"country": "UNITED STATES",
"residence": ", , ",
"birth_place": "Corning, California, United States",
"twitter": "@TylerReddick",
"track_type_splits": [
{
"starts": 25,
"wins": 1,
"top_5": 4,
"top_10": 7,
"poles": 0,
"dnf": 9,
"running_at_finish": 16,
"lead_lap_finish": 14,
"laps_completed": 4246,
"laps_led": 68,
"money": 0,
"avg_start_position": 18.16,
"avg_finish_position": 20.44,
"miles_completed": 10942.2,
"track_type": "Restrictor Plate"
}
]
}
]
}3. Filter to the Drivers You Need
Because the feed returns all drivers who raced, most implementations filter client-side by drivers[].id.
Common patterns include:
- Single driver profile: find the matching
drivers[].id - Team/manufacturer views: filter drivers by related metadata from the Drivers feed (if applicable to your product)
- Top-N boards: sort and slice the season dataset based on a metric (wins, top_10, laps_led, etc.)
Handle drivers who did not participate
If a driver does not appear in drivers[] for a season, they did not record stats for that series/season (for example, they did not participate or were not entered), no career statistics will display for them in that response.
4. Use the Stats Splits That Match Your UI
Driver Statistics is organized into multiple “split” groupings so you can present stats in different views.
Use the split that matches your goal:
- Track type splits: show performance by category (road course vs. superspeedway, etc.)
- By track: show performance at a specific venue
- By race: show race-level breakdowns across the season
If your UI only needs high-level career totals, you can derive them by summing or aggregating across the relevant records you choose to treat as canonical for your display.
5. Retrieve Multi-Season Trends
To build multi-year trends:
-
Use Seasons to list available seasons for the series.
-
Request Driver Statistics for each desired
season_year. -
For each response:
- locate the driver in
drivers[]byid - if not present, record “did not participate / no stats”
- locate the driver in
-
Store or aggregate the metrics you care about across seasons (wins, top_10, avg_finish_position, etc.).
Common Use Cases
- Driver season stat pages showing career metrics segmented by season
- Leaderboards and rankings derived from a season dataset
- “Performance by track type” dashboards
- Comparing drivers for the same season
- Validating season summaries against race-level views
Best Practices
- Always verify
season_yearavailability via Seasons - Treat Driver Statistics as a season-wide dataset and filter client-side
- Expect “missing drivers” across seasons and handle gracefully
- Poll Driver Statistics according to its published update frequency and refresh after races are
closed. Avoid over-polling between updates.
Updated 3 days ago
