---
updatedAt: 2026-07-28T06:24:32.000Z
agentTools:
  siteIndex: https://developer.sportradar.com/llms.txt
  projectIndex: https://developer.sportradar.com/racing/llms.txt
---

# Retrieving Statistics

This integration scenario explains how to retrieve career-level NASCAR statistics using the Sportradar NASCAR API. It covers 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), as well as retrieving a single driver's bio and career results directly from the **Driver Profile** feed.

This scenario is commonly used to:

* Display career stat pages for drivers who raced in a particular season
* Power driver profile pages that combine bio details with season and race-by-race results
* 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)

<br />

***

## 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.

For single-driver views, the **Driver Profile** feed provides a complementary path: one request returns a driver's bio along with every season of their career in the requested series, including race-by-race results.

<br />

### Relevant Feeds

| Feed                                                                                                             | Purpose                                                                                            |
| ---------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| <Anchor label="Seasons" target="_blank" href="ref:nascar-seasons">Seasons</Anchor>                               | Confirm available seasons before requesting stats                                                  |
| <Anchor label="Driver Statistics" target="_blank" href="ref:nascar-driver-statistics">Driver Statistics</Anchor> | Retrieve *career* statistics for all drivers who raced for a series + season                       |
| <Anchor label="Driver Profile" target="_blank" href="ref:nascar-driver-profile">Driver Profile</Anchor>          | Retrieve bio details and season-by-season statistics with race-by-race results for a single driver |
| <Anchor label="Drivers" target="_blank" href="ref:nascar-drivers">Drivers</Anchor>                               | Optional. Enrich driver bio and season roster context for UI display                               |
| <Anchor label="Daily Change Log" target="_blank" href="ref:nascar-daily-change-log">Daily Change Log</Anchor>    | Detect when statistics-related updates occur                                                       |

<br />

***

## High-Level Workflow

**Seasons → Driver Statistics → Filter/Aggregate** (season-wide views)

**Drivers → Driver Profile** (single-driver views)

1. Confirm the season is available
2. Pull Driver Statistics for the series + `season_year`
3. Retrieve a single driver's profile (optional)
4. Filter to specific drivers (optional)
5. Aggregate results across seasons or split types (optional)

<br />

***

## Integration Steps

<br />

### 1. Confirm Season Availability

Before requesting historical stats, use the <Anchor label="Seasons" target="_blank" href="ref:nascar-seasons">Seasons</Anchor> 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 Series
* `or` → O'Reilly Auto Parts Series (formerly Xfinity Series, `series.alias` = `BSERIES`)
* `cw` → Craftsman Truck Series

This helps avoid invalid requests and establishes your baseline for how far back the dataset goes.

<br />

### 2. Retrieve Driver Statistics for the Season

Call the <Anchor label="Driver Statistics" target="_blank" href="ref:nascar-driver-statistics">Driver Statistics</Anchor> feed using:

* `nascar_series`
* `season_year`

`GET https://api.sportradar.com/nascar-ot3/mc/drivers/2025/drivers.json`

The response returns:

* `series` metadata (id, alias, name)
* `season` metadata (id, year)
* `drivers[]` containing stats for all drivers in that season

```json Driver Statistics Feed Snippet (json)
{
  "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"
        }
      ]
    }
  ]
}
```

<br />

### 3. Retrieve a Single Driver's Profile

For single-driver views, call the <Anchor label="Driver Profile" target="_blank" href="ref:nascar-driver-profile">Driver Profile</Anchor> feed using:

* `nascar_series`
* `driver_id`

`GET https://api.sportradar.com/nascar-ot3/mc/drivers/c9bf58a8-66b6-4d75-a441-c13130ded990/profile.json`

The response returns:

* `series` metadata (id, alias, name)
* Driver bio details (name, birthday, rookie year, birth place, social handle)
* `seasons[]` containing one entry for each season of the driver's career in the requested series, each with:
  * the driver's `team` and its `owner`
  * season `statistics` (points, wins, stage wins, poles, top-5 through top-20 counts, DNFs, laps led and completed, average start and finish positions, and playoff status via `in_chase`)
  * race-by-race `results[]` (finishing and starting positions, points earned including stage and bonus points, laps led and completed, and a finish `status`)

```json Driver Profile Feed Snippet (json)
{
  "series": {
    "id": "3e32047e-4ff3-4e35-a607-1546a2c32214",
    "alias": "CUP",
    "name": "NASCAR Cup Series"
  },
  "id": "c9bf58a8-66b6-4d75-a441-c13130ded990",
  "first_name": "William",
  "last_name": "Byron",
  "full_name": "William Byron",
  "birthday": "1997-11-29",
  "rookie_year": 2016,
  "gender": "M",
  "status": "ACT",
  "country": "UNITED STATES",
  "residence": ", , ",
  "birth_place": "Charlotte, North Carolina, United States",
  "twitter": "@WilliamByron",
  "seasons": [
    {
      "year": 2026,
      "season_id": "2e2bfe7c-f9c2-4009-b9b4-f4511bac7a77",
      "team": {
        "id": "8427da4c-9c88-4849-9242-0c184d5ed67c",
        "name": "Hendrick Motorsports",
        "owner": {
          "id": "df3acab4-1712-44bb-b913-897b4e20fd50",
          "name": "Rick Hendrick"
        }
      },
      "statistics": {
        "points": 568,
        "starts": 22,
        "wins": 0,
        "stage_wins": 3,
        "poles": 0,
        "top_5": 4,
        "top_10": 9,
        "top_15": 13,
        "top_20": 15,
        "dnf": 3,
        "laps_led": 136,
        "laps_completed": 5360,
        "avg_start_position": 15.7727,
        "avg_finish_position": 15.8636,
        "in_chase": false
      },
      "results": [
        {
          "race_id": "5fb60476-dd14-4efd-821a-dbc4656d58cb",
          "race_name": "DAYTONA 500",
          "track_name": "Daytona International Speedway",
          "position": 12,
          "start_position": 39,
          "points": 25,
          "bonus_points": 0,
          "penalty_points": 0,
          "stage_1_points": 0,
          "stage_2_points": 0,
          "stage_3_points": 0,
          "fastest_lap_points": 0,
          "laps_led": 0,
          "laps_completed": 200,
          "status": "running"
        },
        {
          "race_id": "245961b9-abb8-4eca-b8aa-e0ac75eff1a6",
          "race_name": "Autotrader 400",
          "track_name": "EchoPark Speedway",
          "position": 28,
          "start_position": 13,
          "points": 25,
          "bonus_points": 16,
          "penalty_points": 0,
          "stage_1_points": 7,
          "stage_2_points": 9,
          "stage_3_points": 0,
          "fastest_lap_points": 0,
          "laps_led": 0,
          "laps_completed": 256,
          "status": "accident"
        }
      ]
    }
  ]
}
```

The response above is trimmed to the current season and its first two race results; the full payload includes every season of the driver's career in the series (nine seasons for this driver, back to 2018).

Because the profile is scoped to the series in the request path, query each series separately for drivers who have raced in more than one.

<br />

### 4. 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:** call <Anchor label="Driver Profile" target="_blank" href="ref:nascar-driver-profile">Driver Profile</Anchor> with the driver's id, or find the matching `drivers[].id` in the season dataset
* **Team/manufacturer views:** filter drivers by related metadata from the <Anchor label="Drivers" target="_blank" href="ref:nascar-drivers">Drivers</Anchor> 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.

<br />

### 5. 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.

<br />

### 6. Retrieve Multi-Season Trends

The <Anchor label="Driver Profile" target="_blank" href="ref:nascar-driver-profile">Driver Profile</Anchor> feed returns every season of a driver's career in the requested series in a single call, making it the fastest route to single-driver trends.

To build multi-year trends across multiple drivers, or trends that use track and track-type splits:

1. Use <Anchor label="Seasons" target="_blank" href="ref:nascar-seasons">Seasons</Anchor> to list available seasons for the series.
2. Request <Anchor label="Driver Statistics" target="_blank" href="ref:nascar-driver-statistics">Driver Statistics</Anchor> for each desired `season_year`.
3. For each response:

   * locate the driver in `drivers[]` by `id`
   * if not present, record “did not participate / no stats”
4. Store or aggregate the metrics you care about across seasons (wins, top\_10, avg\_finish\_position, etc.).

<br />

***

## Common Use Cases

* Driver profile pages combining bio details with season and race-by-race results
* 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

<br />

## Best Practices

* Always verify `season_year` availability via <Anchor label="Seasons" target="_blank" href="ref:nascar-seasons">Seasons</Anchor>
* Treat Driver Statistics as a season-wide dataset and filter client-side
* Use Driver Profile for single-driver views and Driver Statistics for cross-driver comparisons and split-based views
* Expect “missing drivers” across seasons and handle gracefully
* Poll **Driver Statistics** according to its published [update frequency](https://developer.sportradar.com/racing/docs/nascar-ig-update-frequencies) and refresh after races are `closed`. Avoid over-polling between updates.