Basketball Reference Scraper
Extract NBA player stats, team records, game logs, and historical basketball data from Basketball Reference. Powered by spider-browser .
Extract data in minutes
import { SpiderBrowser } from "spider-browser";
const spider = new SpiderBrowser({
apiKey: process.env.SPIDER_API_KEY!,
});
await spider.connect();
const page = spider.page!;
await page.goto("https://www.basketball-reference.com/leagues/NBA_2025_per_game.html");
await page.content();
const data = await page.evaluate(`(() => {
const players = [];
document.querySelectorAll("#per_game_stats tbody tr:not(.thead)").forEach(el => {
const name = el.querySelector("td[data-stat='player'] a")?.textContent?.trim();
const team = el.querySelector("td[data-stat='team_id'] a")?.textContent?.trim();
const ppg = el.querySelector("td[data-stat='pts_per_g']")?.textContent?.trim();
const rpg = el.querySelector("td[data-stat='trb_per_g']")?.textContent?.trim();
const apg = el.querySelector("td[data-stat='ast_per_g']")?.textContent?.trim();
if (name) players.push({ name, team, ppg, rpg, apg });
});
return JSON.stringify({ total: players.length, players: players.slice(0, 15) });
})()`);
console.log(JSON.parse(data));
await spider.close(); Structured data endpoint
Extract structured JSON from basketball-reference.com with a single POST request. AI-configured selectors, cached for fast repeat calls.
/fetch/basketball-reference.com/ curl -X POST https://api.spider.cloud/fetch/basketball-reference.com/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"return_format": "json"}' import requests
resp = requests.post(
"https://api.spider.cloud/fetch/basketball-reference.com/",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
json={"return_format": "json"},
)
print(resp.json()) const resp = await fetch("https://api.spider.cloud/fetch/basketball-reference.com/", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ return_format: "json" }),
});
const data = await resp.json();
console.log(data); Data you can extract
Live scores & stats
Extract real-time scores, player stats, and standings from basketball-reference.com.
Dynamic scoreboards
Full browser rendering for live-updating scoreboards and stat tables.
League coverage
Scrape across multiple leagues, seasons, and teams concurrently.
More Sports & Fitness scrapers
Extract live scores, game schedules, standings, and sports news from ESPN across all major leagues.
Extract NBA game scores, player stats, team standings, and league news from the official NBA site.
Extract NFL game scores, team schedules, player stats, and league news from the official NFL site.
Start scraping basketball-reference.com
Get your API key and start extracting data in minutes.