NBA Play-by-Play Scraper avatar
NBA Play-by-Play Scraper

Pricing

from $0.20 / 1,000 results

Go to Apify Store
NBA Play-by-Play Scraper

NBA Play-by-Play Scraper

Scrape complete play-by-play data from any NBA game since 2002. Clean, structured, ready for analysis.

Pricing

from $0.20 / 1,000 results

Rating

0.0

(0)

Developer

SportsVerse

SportsVerse

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

1

Monthly active users

20 days ago

Last modified

Share

๐Ÿ€ NBA Play-by-Play Scraper

NBA Logo

The best NBA play-by-play scraper on Apify โ€” clean and analysis-ready data from 2002 onward

Apify Store Maintained Made for Sports Analytics Data Quality

Stop cleaning messy basketball data. Get every NBA play since 2002 - 60+ fields, proper types, zero cleanup required.


๐ŸŽฏ What does this scraper do?

This actor extracts detailed play-by-play information from every NBA game played since 2002. It delivers clean, structured data ready for analysis or integration into your applications. No manual cleanup, no parsing nightmares, no messy nested data.

Key Benefits

  • โœ… 60+ fields per play - shots, fouls, rebounds, substitutions, and more
  • โœ… 2002โ€“present - 20+ seasons of historical coverage
  • โœ… Clean structure - proper types and descriptive field names
  • โœ… Fast & reliable - built-in validation and error handling
  • โœ… Export anywhere - JSON, CSV, Excel, XML, and more

๐Ÿ’ก No manual cleanup. No parsing nightmares. Just clean data.


๐Ÿ“ฆ What data can you extract?

Every play returns 60+ structured data points organized into logical categories:

CategoryWhat's Included
๐ŸŽฎ Game InfoGame ID, season info, game date, game phase (regulation/overtime)
๐Ÿ€ TeamsHome & away team names, cities, mascots, abbreviations
โฑ๏ธ TimingQuarter, game clock, time remaining in quarter/half/game
๐ŸŽฏ Play DetailsPlay type, category, full description, which team performed it
๐Ÿ“Š ScoringCurrent score, point differential, who's leading, tie status
๐Ÿน ShotsShot type, made/missed, points attempted, court coordinates
๐Ÿ‘ค PlayersPlayers involved in each play
๐Ÿ’ฐ BettingPoint spread, home favorite status
โž• And moreTimeouts, play sequences, boolean flags

๐Ÿ’ก See the full data dictionary for all 60+ fields below.


๐Ÿš€ How to scrape NBA play-by-play data

Quick Start Guide

Extracting the NBA play-by-play data is simple - no coding required.

  1. Create account โ€” Sign up for a free Apify account
  2. Open scraper โ€” Go to NBA Play-by-Play Scraper
  3. Select inputs โ€” Choose a team and season year
  4. Run โ€” Click Start in the Apify Console
  5. Export โ€” Download as JSON, CSV, Excel, XML, or HTML

โœจ Try it FREE - No credit card required


๐Ÿ“ฅ Inputs

The scraper requires two simple inputs:

InputRequiredDescriptionExample
Seasonโœ…4-digit year (2002โ€“present)2026 โ†’ 2025-26 season
Teamโœ…NBA team mascot nameRaptors, Lakers, Celtics

Option A: Use Apify Console (No Code)

The easiest way to get started โ€” just point and click.

  1. Open the NBA Play-by-Play Scraper
  2. Enter a season year (defaults to latest)
  3. Select a team from the dropdown
  4. Click Start
  5. Download results

Apify Console Input UI

Option B: Use the API (Programmatic)

For automation, scheduling, or integration into your pipeline:

{
"season": 2026,
"team": "Lakers"
}

โš ๏ธ Note: both season and team are required fields.


๐Ÿ“ค Output

Results are stored in the Storage tab as a structured dataset. View directly on the platform or download in multiple formats.

Results Preview

Once scraping completes, preview your data immediately in the Output tab:

Apify Output Preview

Organized Views

We've pre-configured logical dataset views to help you explore the data more easily:

Grouped Dataset Views

Sample JSON Output

Each play returns a clean, flat JSON object with 60+ fields. Field names are descriptive and grouped by prefix (game_, time_, score_, shot_, etc.) so you can quickly find what you need.


๐Ÿ“– Data Dictionary

Complete reference for all 60+ fields returned by this scraper. Fields are grouped by prefix for easy navigation.

FieldTypeCategoryDescription
game_idintegerGameUnique identifier for the game
game_seasonintegerGameSeason year (e.g., 2026 for 2025-26 season)
game_season_typeintegerGameSeason type (1 = preseason, 2 = regular, 3 = playoffs)
game_datestringGameGame date and tip-off time
game_phasestringGameCurrent phase (Regulation, Overtime, etc.)
home_team_idintegerHome TeamUnique team identifier
home_team_fullstringHome TeamFull team name (e.g., "Los Angeles Lakers")
home_team_locationstringHome TeamTeam city (e.g., "Los Angeles")
home_team_mascotstringHome TeamTeam mascot (e.g., "Lakers")
home_team_abbreviationstringHome TeamTeam abbreviation (e.g., "LAL")
away_team_idintegerAway TeamUnique team identifier
away_team_fullstringAway TeamFull team name
away_team_locationstringAway TeamTeam city
away_team_mascotstringAway TeamTeam mascot
away_team_abbreviationstringAway TeamTeam abbreviation
play_sequenceintegerSequenceOrder of play within the game
play_idintegerSequenceUnique identifier for the play
time_quarterintegerTimingCurrent quarter (1-4, 5+ for overtime)
time_quarter_displaystringTimingDisplay format (e.g., "1st Quarter")
time_halfintegerTimingCurrent half (1 or 2)
time_clockstringTimingGame clock display (e.g., "9:18")
time_clock_minutesintegerTimingMinutes remaining on clock
time_clock_secondsintegerTimingSeconds remaining on clock
time_wallclockstringTimingActual timestamp of the play (UTC)
time_remaining_quarterintegerTimingSeconds remaining in quarter
time_remaining_halfintegerTimingSeconds remaining in half
time_remaining_gameintegerTimingSeconds remaining in game
play_type_idintegerPlayNumeric code for play type
play_typestringPlaySpecific play type (e.g., "Pullup Jump Shot")
play_categorystringPlayStandardized category (Shot, Foul, Turnover, etc.)
play_descriptionstringPlayFull play description
play_description_shortstringPlayAbbreviated description
play_team_idintegerPlayTeam that performed the play
play_team_fullstringPlayFull name of team that performed the play
play_team_rolestringPlayTeam role (Home or Away)
is_scoring_playbooleanFlagsWhether points were scored
is_turnoverbooleanFlagsWhether play resulted in turnover
is_foulbooleanFlagsWhether play involved a foul
is_substitutionbooleanFlagsWhether play was a substitution
score_homeintegerScoringHome team score after this play
score_awayintegerScoringAway team score after this play
score_differentialintegerScoringScore difference (home - away)
score_is_tiebooleanScoringWhether game is tied
score_home_leadingbooleanScoringWhether home team is leading
score_away_leadingbooleanScoringWhether away team is leading
score_leader_quarterintegerScoringWhich team led at end of quarter (null if ongoing)
score_leader_halfintegerScoringWhich team led at end of half (null if ongoing)
player_primary_idintegerPlayersPrimary player involved in play
player_secondary_idintegerPlayersSecondary player (e.g., assister, fouled player)
player_tertiary_idintegerPlayersThird player if applicable
shot_is_attemptbooleanShotsWhether play was a shot attempt
shot_attempt_typestringShots"Two Points" or "Three Points"
shot_resultstringShots"Made" or "Missed"
shot_points_attemptedintegerShotsPoints attempted (2 or 3)
shot_coordinate_xnumberShotsCourt X coordinate
shot_coordinate_ynumberShotsCourt Y coordinate
timeout_homebooleanTimeoutsWhether home team called timeout
timeout_awaybooleanTimeoutsWhether away team called timeout
betting_spreadnumberBettingPoint spread for the game
betting_home_favoritebooleanBettingWhether home team is favored
betting_spread_availablebooleanBettingWhether spread data is available
betting_home_spreadnumberBettingHome team spread value

๐Ÿ’ก Note: Some fields may be null depending on the play type โ€” for example, shot coordinates only appear for shot attempts. All missing values are explicit null, not empty strings.


๐Ÿ”— Sportsverse Data Suite

Building something bigger? Our ecosystem covers comprehensive sports data. Check out our other sports scrapers:

ActorDescriptionStatus
๐Ÿ€ NBA Play-by-PlayEvery play from every game (this actor)โœ… Available
๐Ÿ€ NBA Team Box ScoresTeam statistics per gameโœ… Available
๐Ÿ€ NBA Player Box ScoresPlayer statistics per gameโœ… Available
๐Ÿ€ NCAA Basketball Play-by-PlayEvery play from every college gameโœ… Available
๐Ÿ€ NCAA Basketball Team Box ScoresCollege team statistics per gameโœ… Available
๐Ÿ€ NCAA Basketball Player Box ScoresCollege player statisticsโœ… Available
๐Ÿ’ NHL Play-by-PlayHockey game events๐Ÿšง Coming Soon
๐Ÿ’ NHL Box ScoresPlayer & team statistics๐Ÿšง Coming Soon
๐Ÿˆ NFL Play-by-PlayFootball play tracking๐Ÿšง Coming Soon
๐Ÿˆ NFL Box ScoresPlayer & team statistics๐Ÿšง Coming Soon
โšพ MLB Play-by-PlayBaseball game events๐Ÿšง Coming Soon
โšพ MLB Box ScoresPlayer & team statistics๐Ÿšง Coming Soon

๐Ÿค Support & Feedback

Found a bug? Want a new field? Have an idea?

  • ๐Ÿ› Report issues in the actor comments
  • ๐Ÿ’ก Suggest features or enhancements
  • ๐Ÿ“Š Request additional fields or output tweaks

We read every message and aim to respond quickly.


Built with โค๏ธ and lots of โ˜• for the sports analytics community