# ESPN Sports Data Scraper

> ESPN Sports Data Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Retrieves structured sports data from ESPN including scoreboards, game details, odds, standings, rosters, schedules, news, and rankings for major leagues

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/espn?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/espn-sports-data-scraper-d6364087
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_a2mBbiqdF_zhEP3cl4kSz

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability espn-sports-data-scraper-d6364087 -d '<json body>'
```

Example prompt: Pull today's NBA scoreboard with full game summaries including box scores and injury reports — I want details for all games, enriched with game details, for up to 200 results.

## When to prefer this

Choose this endpoint when you need structured, parsed ESPN sports data without building a scraper yourself, especially for multi-league queries, enriched game details with box scores and injuries, or flexible date-range scoreboards. Prefer it over raw web scraping when you want clean JSON output with consistent schema across NFL, NBA, MLB, NHL, college football, EPL, and UCL. It is pay-per-successful-call so failed or empty runs are free.

## Known failure modes

- Invalid league key returns empty results or error
- Date format not matching YYYYMMDD or YYYY-MM-DD causes parsing failure
- Date range exceeding 32 days is rejected
- Invalid teamId or eventId format returns no items
- Mode/league combination not supported returns empty items array
- ESPN source unavailable or rate-limited causes failed run (not charged)
- Empty run due to no matching data returns count 0 and is not billed

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count of records and an items array, where each item contains fields such as date, name, type, gameId, league, status, shortName, and leagueName. When enrichment options are enabled, items may also include box scores, injury data, game probability, play-by-play arrays, team records, and next event info.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "mode": {
   "enum": [
    "scoreboard",
    "game",
    "odds",
    "standings",
    "teams",
    "roster",
    "schedule",
    "news",
    "rankings"
   ],
   "type": "string",
   "default": "scoreboard",
   "description": "Choose scores, game details, odds, standings, teams, rosters, schedules, news, or rankings."
  },
  "dates": {
   "type": "string",
   "description": "One date in YYYYMMDD or YYYY-MM-DD format, today/yesterday/tomorrow, or a YYYYMMDD-YYYYMMDD range up to 32 days."
  },
  "groups": {
   "type": "string",
   "description": "Optional scoreboard group, such as 80 for top-division college football."
  },
  "season": {
   "type": "string",
   "description": "Optional season year for standings, schedules, and rankings."
  },
  "leagues": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "League keys such as nfl, nba, mlb, nhl, college-football, epl, or ucl."
  },
  "teamIds": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "Teams, roster, or schedule mode: league/numeric ID values, such as nba/13."
  },
  "eventIds": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "Game mode: league/id values, such as nfl/401872953."
  },
  "startUrls": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "ESPN game, scoreboard, standings, or team URLs to route automatically."
  },
  "maxResults": {
   "type": "integer",
   "default": 200,
   "minimum": 1,
   "description": "Stop after this many records across the run."
  },
  "seasonType": {
   "type": "string",
   "description": "Optional schedule season type: 1 preseason, 2 regular season, 3 postseason."
  },
  "enrichGameDetails": {
   "type": "boolean",
   "default": false,
   "description": "Fetch each scoreboard game summary and attach box scores, injuries, and probability when available."
  },
  "enrichTeamDetails": {
   "type": "boolean",
   "default": false,
   "description": "Open each team profile in Teams mode to include its record and next event."
  },
  "includePlayByPlay": {
   "type": "boolean",
   "default": false,
   "description": "Include the large play-by-play array in game detail records."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "date": null,
    "name": null,
    "type": null,
    "gameId": null,
    "league": null,
    "status": null,
    "shortName": null,
    "leagueName": null
   }
  ],
  "product": "espn"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/espn-sports-data-scraper-d6364087/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
