OrbTop

Racing Reference Scraper - NASCAR, IndyCar & ARCA Race Results

SPORTSOTHER

Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.

Racing-Reference NASCAR / IndyCar Scraper

Extract race results and driver career statistics from Racing-Reference.info — the definitive historical database for NASCAR Cup, Xfinity, Truck, IndyCar, and ARCA racing data going back decades.

What It Does

Two operating modes in one actor:

  • Season mode — Fetches every race result for a given series and year. Produces one row per driver per race, including finishing position, laps led, points earned, sponsor, and car manufacturer. Each row also carries full race-level metadata (track, date, caution counts, lead changes, margin of victory).

  • Driver mode — Fetches a driver's career overview page and extracts per-series career totals: starts, wins, top-5s, top-10s, and poles. Useful for player lookups and comparative analysis.

Input Configuration

Field Type Default Description
mode string season season for race results, driver for career stats
series string W Series code: W (Cup), X (Xfinity), C (Trucks), I (IndyCar), A (ARCA)
season integer 2024 Year to scrape in season mode
driverName string Driver name for driver mode (e.g. William_Byron or William Byron). Required when mode is driver.
maxItems integer 15 Maximum number of records to return. 0 = unlimited.

Output Fields

All records include a record_type field indicating which mode produced them.

Race Result Records (record_type: "race_result")

Field Type Description
record_type string Always "race_result"
series string Series code (W/X/C/I/A)
season number Season year
race_id string Race identifier, e.g. 2024_Daytona_500
race_name string Full race name, e.g. 2024 Daytona 500
race_date string Date in ISO format (YYYY-MM-DD)
race_number number Race number within the season
track_name string Track name, e.g. Daytona International Speedway
track_city string City and state, e.g. Daytona Beach, FL
laps_scheduled number Total laps scheduled
distance_miles number Total race distance in miles
average_speed_mph number Average race speed in mph
pole_speed_mph number Pole qualifying speed in mph
cautions_count number Number of caution periods
cautions_laps number Total laps under caution
lead_changes number Number of lead changes
margin_of_victory string Margin of victory (time string or laps)
finish_position number Driver's finishing position
start_position number Driver's starting position
car_number string Car or truck number
driver_name string Driver full name
driver_url string URL to driver's profile on Racing-Reference
sponsor string Primary sponsor name
owner string Team owner name
manufacturer string Car manufacturer (Chevrolet, Ford, Toyota, etc.)
laps_completed number Laps completed by this driver
race_status string Finishing status (running, accident, engine, etc.)
laps_led number Laps led by this driver
points number Points earned
playoff_points number Playoff/bonus points earned

Driver Profile Records (record_type: "driver_profile")

Field Type Description
record_type string Always "driver_profile"
driver_name string Driver full name
driver_born string Driver date of birth
driver_home string Driver hometown
career_series string Series these career stats cover
career_years number Number of seasons raced
career_starts number Total race starts
career_wins number Total wins
career_top5 number Total top-5 finishes
career_top10 number Total top-10 finishes
career_poles number Total pole positions

Example Outputs

Season mode — race result row:

{
  "record_type": "race_result",
  "series": "W",
  "season": 2024,
  "race_id": "2024_Daytona_500",
  "race_name": "2024 Daytona 500",
  "race_date": "2024-02-19",
  "race_number": 1,
  "track_name": "Daytona International Speedway",
  "track_city": "Daytona Beach, FL",
  "laps_scheduled": 200,
  "distance_miles": 500.0,
  "average_speed_mph": 153.7,
  "cautions_count": 7,
  "cautions_laps": 38,
  "lead_changes": 23,
  "margin_of_victory": "0.011 seconds",
  "finish_position": 1,
  "start_position": 9,
  "car_number": "45",
  "driver_name": "William Byron",
  "manufacturer": "Chevrolet",
  "laps_completed": 200,
  "race_status": "running",
  "laps_led": 19,
  "points": 57
}

Driver mode — career profile row:

{
  "record_type": "driver_profile",
  "driver_name": "William Byron",
  "driver_born": "November 29, 1997",
  "driver_home": "Charlotte, NC",
  "career_series": "NASCAR Cup Series",
  "career_years": 7,
  "career_starts": 228,
  "career_wins": 18,
  "career_top5": 58,
  "career_top10": 103,
  "career_poles": 12
}

Setup

None. Racing-Reference.info is Cloudflare-protected; the actor clears it automatically and ships ready to run.

Pricing

  • $0.10 per actor start
  • $0.002 per record

A full 2024 NASCAR Cup season (36 races x ~40 drivers = ~1,440 records) costs approximately $2.98.

Frequently Asked Questions

Which series are supported? NASCAR Cup (W), NASCAR Xfinity (X), NASCAR Truck (C), IndyCar (I), and ARCA Menards (A).

How far back does data go? Racing-Reference has historical data going back to the 1940s for NASCAR. Coverage varies by series.

What does maxItems: 0 do? Unlimited mode — the actor scrapes every driver row for every race in the season. A full season can return 1,000-2,000 rows depending on the series.

Why does the actor take longer than typical scrapers? The Cloudflare bypass requires solving a challenge before crawling begins. This adds roughly 15-30 seconds of startup overhead per run, after which scraping proceeds normally.

Can I scrape multiple seasons in one run? Not directly — season is a single year. Run the actor once per season if you need multi-year data.

Driver name format for driver mode? Use the driver's name as it appears in URLs — spaces replaced with underscores (e.g. William_Byron, Kyle_Larson). Spaces are also accepted and normalized automatically.