# Sports Player Stats & Rosters Scraper (`scrapemint/sports-player-stats-scraper`) Actor

Team rosters and player career stats from ESPN's public feeds: NBA, NFL, MLB, NHL, WNBA, college and world soccer rosters with position, age, height and college; season-by-season stat lines for any US-league player by name. One JSON row per player or season. No API key.

- **URL**: https://apify.com/scrapemint/sports-player-stats-scraper.md
- **Developed by:** [Ken M](https://apify.com/scrapemint) (community)
- **Categories:** News, Business
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00 / 1,000 player rows

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Sports Player Stats & Rosters Scraper

Player data without an API key, a login or a $50/mo sports-data subscription. Pull complete team rosters, sweep every roster in a league, or get any player's season-by-season career stat line - clean JSON rows from ESPN's public feeds.

### What you can pull

**Rosters** - `"nba lakers"`, `"nfl chiefs"`, `"epl arsenal"`: one row per player with position, jersey number, age, date of birth, height, weight, years of experience, college, birthplace and headshot URL. Works for NBA, WNBA, NFL, MLB, NHL, college basketball and football, and world soccer leagues (Premier League, La Liga, Serie A, Bundesliga, MLS and any ESPN league path - even `soccer/ken.1`).

**Whole-league sweeps** - `"nba"` gives you all ~450 NBA players in one run; `"nfl"` ~1,700. A fresh league-wide player database for the cost of a coffee.

**Career stats by name** - `"LeBron James"`, `"Patrick Mahomes"`: one row per season with the full stat line (per-game averages, season totals, or both), team, and league. Covers NBA, WNBA, NFL, MLB, NHL and college players.

### Example input

```json
{
    "teams": ["nba lakers"],
    "players": ["LeBron James"],
    "statType": "averages"
}
```

Stat rows come back as a named object, so `stats.avgPoints`, `stats.gamesPlayed` and friends are directly usable in a spreadsheet or pipeline.

### Who uses this

- **Fantasy sports tools and pools**: fresh rosters and career baselines without enterprise data contracts.
- **Sports media and newsletters**: player facts and stat tables straight into your workflow.
- **Betting content and models**: roster changes and historical stat lines as structured inputs.
- **Trivia, games and fan apps**: an entire league's player database in one scheduled run.

Pairs with our Sports Scores Scraper (live scores and standings) and Sports Odds Scraper (moneylines, spreads and totals).

### Pricing

A small fee per row. Unknown leagues, unmatched teams and players that cannot be found are free note rows, and the first 2 rows of every run are free.

### Notes

- Career stats are available for the US leagues and college sports; soccer players are found by search but ESPN does not publish their career tables in the same feed, so those return a friendly note pointing at roster mode.
- Some leagues empty their rosters briefly in the offseason; that returns a free note, not a charge.
- Data comes from ESPN's public website feeds, the same JSON its own pages use.

# Actor input Schema

## `teams` (type: `array`):

Teams to pull rosters for, one per line as "league team" ("nba lakers", "nfl chiefs", "epl arsenal"). One row per player with position, jersey, age, height, weight, experience and college.

## `leagues` (type: `array`):

Leagues to pull EVERY team's roster for, one per line ("nba", "nfl", "epl", "mlb"). An NBA sweep is ~450 players, an NFL sweep ~1,700. Also accepts raw ESPN paths like "soccer/ken.1".

## `players` (type: `array`):

Players to look up by name, one per line ("LeBron James", "Patrick Mahomes"). Returns one row per season with the full stat line. Works for NBA, WNBA, NFL, MLB, NHL and college players.

## `statType` (type: `string`):

Per-game averages or season totals for player stat rows (leagues without averages fall back to what they have).

## `maxSeasonsPerPlayer` (type: `integer`):

How many seasons to return per player, newest first.

## `maxRows` (type: `integer`):

Stop after this many rows in total.

## Actor input object example

```json
{
  "teams": [
    "nba lakers"
  ],
  "players": [
    "LeBron James"
  ],
  "statType": "averages",
  "maxSeasonsPerPlayer": 30,
  "maxRows": 2000
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "teams": [
        "nba lakers"
    ],
    "players": [
        "LeBron James"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapemint/sports-player-stats-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "teams": ["nba lakers"],
    "players": ["LeBron James"],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapemint/sports-player-stats-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "teams": [
    "nba lakers"
  ],
  "players": [
    "LeBron James"
  ]
}' |
apify call scrapemint/sports-player-stats-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapemint/sports-player-stats-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/8aXseWWTsJTYK6Ckl/builds/nSsbvA9N6S1fQ7NKo/openapi.json
