ESPN MCP Server
Pricing
$0.01 / 1,000 sports data
ESPN MCP Server
Get ESPN scoreboards, schedules, standings, teams, rosters, athlete data, news, rankings, odds, and game details. Save structured sports data for AI research or export it from an Actor run.
Pricing
$0.01 / 1,000 sports data
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
🏟️ ESPN sports research for AI and data teams
ESPN MCP Server helps sports analysts, app builders, and AI teams get structured ESPN sports data. Find scores, schedules, standings, teams, athletes, news, rankings, odds, and game details without copying pages by hand.
- Give an AI tool access to sports research with ESPN MCP Server.
- Save sports data for apps and reports with ESPN API.
- Check games across leagues with ESPN Scores.
- Get a current or dated board with ESPN Scoreboard.
- Review league or team games with ESPN Schedule.
- Compare team records with ESPN Standings.
- Find recent league stories with ESPN News.
- Get supported polls and lists with ESPN Rankings.
📦 Returned data
Each sports entry is one dataset row. Rows can hold game IDs, dates, scores, teams, standings, athletes, news, rankings, odds, and ESPN links. ESPN does not provide every field for every sport or league. Missing values are not guessed.
🚀 Running the Actor
- Open the Actor input.
- Choose one
target. - Fill in the options for that target. Options for other targets are ignored.
- For a league target, choose a
sportand add ESPN league slugs. - Run the Actor and open Sports results.
🎛️ Input
| Field | Type | What it does |
|---|---|---|
target | string | Required. Chooses scoreboards, schedules, standings, teams, roster, gameAnalysis, odds, athlete, news, rankings, or search. |
scoreboardDate | string | Gets games on this date. Leave it empty for the current scoreboard. |
scheduleTeamId | string | Limits a schedule to one ESPN team ID. Leave it empty for the full league schedule. |
scheduleStartDate | string | Gets schedule rows on or after this date. |
scheduleEndDate | string | Gets schedule rows on or before this date. |
rosterTeamId | string | Sets the ESPN team ID for a roster. |
gameId | string | Sets the ESPN game ID for game analysis. |
oddsGameId | string | Sets the ESPN game ID for available odds and win chance. |
athleteQuery | string | Finds an athlete by name or gets details by ESPN athlete ID. |
newsKeywords | string[] | Narrows ESPN news. Leave it empty for recent league news. |
rankingType | string | Chooses a supported college, MMA, boxing, or tennis ranking. |
searchQuery | string | Searches ESPN for a player, team, or league. |
sport | string | Sets the sport for league-based targets. |
leagues | string[] | Sets one or more ESPN league slugs for a league-based target. |
Successful default-input QA run:
{"target": "scoreboards","sport": "football","leagues": ["nfl","college-football"],"scoreboardDate": "2025-11-29"}
📤 Output
The dataset uses the shape for the chosen target. Optional fields appear only when ESPN provides them.
Scoreboard row
| Field | Type | What it does |
|---|---|---|
resultType | string | Is scoreboard. |
eventId | string | ESPN game ID. |
sport | string | Sport slug. |
league | string | League slug. |
name | string | Game name. |
date | string | Game date and time. |
status | string | Game status. |
competitors | object[] | Teams in the game. |
competitors.teamId | string | ESPN team ID. |
competitors.name | string | Team name. |
competitors.abbreviation | string | Team short name. |
competitors.homeAway | string | Home or away side. |
competitors.score | string | Team score. |
competitors.winner | boolean | Whether the team won. |
venue | object | Game venue. |
venue.name | string | Venue name. |
venue.city | string | Venue city. |
venue.state | string | Venue state. |
venue.country | string | Venue country. |
sourceUrl | string | ESPN game link. |
{"resultType": "scoreboard","eventId": "401752921","sport": "football","league": "college-football","name": "Ohio State Buckeyes at Michigan Wolverines","date": "2025-11-29T17:00Z","status": "Final","competitors": [{"teamId": "130","name": "Michigan Wolverines","abbreviation": "MICH","homeAway": "home","score": "9","winner": false},{"teamId": "194","name": "Ohio State Buckeyes","abbreviation": "OSU","homeAway": "away","score": "27","winner": true}],"venue": {"name": "Michigan Stadium","city": "Ann Arbor","state": "MI","country": "USA"},"sourceUrl": "https://www.espn.com/college-football/game/_/gameId/401752921/ohio-state-michigan"}
Schedule row
| Field | Type | What it does |
|---|---|---|
resultType | string | Is schedule. |
eventId | string | ESPN game ID. |
sport | string | Sport slug. |
league | string | League slug. |
teamId | string | Team filter ID, when used. |
name | string | Game name. |
date | string | Game date and time. |
status | string | Game status. |
competitors | object[] | Teams in the game. |
competitors.teamId | string | ESPN team ID. |
competitors.name | string | Team name. |
competitors.abbreviation | string | Team short name. |
competitors.homeAway | string | Home or away side. |
competitors.score | string | Team score. |
competitors.winner | boolean | Whether the team won. |
venue | object | Game venue. |
venue.name | string | Venue name. |
venue.city | string | Venue city. |
venue.state | string | Venue state. |
venue.country | string | Venue country. |
sourceUrl | string | ESPN game link. |
{"resultType": "schedule","eventId": "401772891","sport": "football","league": "nfl","name": "Green Bay Packers at Detroit Lions","date": "2025-11-27T18:00Z","status": "Final","competitors": [{"teamId": "8","name": "Detroit Lions","abbreviation": "DET","homeAway": "home","score": "24","winner": false},{"teamId": "9","name": "Green Bay Packers","abbreviation": "GB","homeAway": "away","score": "31","winner": true}],"venue": {"name": "Ford Field","city": "Detroit","state": "MI","country": "USA"},"sourceUrl": "https://www.espn.com/nfl/game/_/gameId/401772891/packers-lions"}
Standing row
| Field | Type | What it does |
|---|---|---|
resultType | string | Is standing. |
sport | string | Sport slug. |
league | string | League slug. |
group | string | Conference or other group. |
position | number | Team place in the group. |
teamId | string | ESPN team ID. |
teamName | string | Team name. |
teamAbbreviation | string | Team short name. |
record | string | Win-loss record. |
stats | object | League-specific standing facts. |
sourceUrl | string | ESPN team link. |
{"resultType": "standing","sport": "football","league": "nfl","group": "American Football Conference","position": 1,"teamId": "2","teamName": "Buffalo Bills","teamAbbreviation": "BUF","record": "0-0","stats": {"differential": 0,"gamesBehind": 0,"losses": 0,"playoffSeed": 0,"pointDifferential": 0,"pointsAgainst": 0,"pointsFor": 0,"streak": 0,"ties": 0,"winPercent": 0,"wins": 0,"divisionLosses": 0,"divisionRecord": 0,"divisionTies": 0,"divisionWins": 0,"overall": "0-0","Home": "0-0","Road": "0-0","vs. Div.": "0-0","vs. Conf.": "0-0"},"sourceUrl": "https://www.espn.com/nfl/team/_/name/buf/buffalo-bills"}
Team row
| Field | Type | What it does |
|---|---|---|
resultType | string | Is team. |
sport | string | Sport slug. |
league | string | League slug. |
teamId | string | ESPN team ID. |
teamName | string | Team name. |
abbreviation | string | Team short name. |
location | string | Team place. |
color | string | Team color code. |
logoUrl | string | Team logo link. |
sourceUrl | string | ESPN team link. |
{"resultType": "team","sport": "hockey","league": "nhl","teamId": "25","teamName": "Anaheim Ducks","abbreviation": "ANA","location": "Anaheim","color": "fc4c02","logoUrl": "https://a.espncdn.com/i/teamlogos/nhl/500/ana.png","sourceUrl": "https://www.espn.com/nhl/team/_/name/ana/anaheim-ducks"}
Roster row
| Field | Type | What it does |
|---|---|---|
resultType | string | Is roster. |
sport | string | Sport slug. |
league | string | League slug. |
teamId | string | ESPN team ID. |
teamName | string | Team name. |
athleteId | string | ESPN athlete ID. |
athleteName | string | Athlete name. |
position | string | Playing position. |
jersey | string | Jersey number. |
headshotUrl | string | Headshot link. |
sourceUrl | string | ESPN athlete link. |
{"resultType": "roster","sport": "basketball","league": "nba","teamId": "13","teamName": "Los Angeles Lakers","athleteId": "5113969","athleteName": "Cameron Carr","position": "Guard","headshotUrl": "https://a.espncdn.com/i/headshots/nba/players/full/5113969.png","sourceUrl": "https://www.espn.com/nba/player/_/id/5113969/cameron-carr"}
Game analysis row
| Field | Type | What it does |
|---|---|---|
resultType | string | Is gameAnalysis. |
eventId | string | ESPN game ID. |
sport | string | Sport slug. |
league | string | League slug. |
name | string | Game name. |
date | string | Game date and time. |
status | string | Game status. |
venue | object | Venue with name, city, state, and country. |
attendance | integer | Reported crowd size. |
officials | string[] | Game officials. |
competitors | object[] | Teams and box-score facts. |
competitors.teamId | string | ESPN team ID. |
competitors.name | string | Team name. |
competitors.score | string | Team score. |
competitors.winner | boolean | Whether the team won. |
competitors.statistics | object | Team statistics. |
leaders | object[] | Leaders with category, athleteId, name, and value. |
playerStatistics | object[] | Player rows with athleteId, athleteName, teamName, and statistics. |
scoringPlays | object[] | Plays with period, clock, text, and score. |
sourceUrl | string | ESPN game link. |
{"resultType": "gameAnalysis","eventId": "401810171","sport": "football","league": "nfl","name": "Game","officials": [],"competitors": [],"leaders": [],"playerStatistics": [],"scoringPlays": []}
Odds row
| Field | Type | What it does |
|---|---|---|
resultType | string | Is odds. |
eventId | string | ESPN game ID. |
sport | string | Sport slug. |
league | string | League slug. |
provider | string | Odds provider. |
details | string | Odds text. |
spread | number | Point spread. |
overUnder | number | Total line. |
homeMoneyline | number | Home moneyline. |
awayMoneyline | number | Away moneyline. |
homeWinProbability | number | Home win chance from 0 to 1. |
awayWinProbability | number | Away win chance from 0 to 1. |
sourceUrl | string | ESPN game link. |
{"resultType": "odds","eventId": "401810171","sport": "football","league": "nfl"}
Athlete row
| Field | Type | What it does |
|---|---|---|
resultType | string | Is athlete. |
athleteId | string | ESPN athlete ID. |
athleteName | string | Athlete name. |
sport | string | Sport slug. |
league | string | League slug. |
teamId | string | ESPN team ID. |
teamName | string | Team name. |
position | string | Playing position. |
jersey | string | Jersey number. |
headshotUrl | string | Headshot link. |
profile | object | Profile facts. |
profile.displayName | string | Display name. |
profile.age | integer | Age. |
profile.height | string | Height. |
profile.weight | string | Weight. |
profile.birthPlace | string | Birthplace. |
profile.status | string | Athlete status. |
seasonStatistics | object[] | Season facts with name, value, and displayValue. |
careerStatistics | object[] | Career facts with name, value, and displayValue. |
gameLog | object[] | Games with eventId, date, opponent, and statistics. |
splits | object[] | Splits with name and statistics. |
sourceUrl | string | ESPN athlete link. |
{"resultType": "athlete","athleteId": "1966","athleteName": "LeBron James","sport": "basketball","league": "nba","profile": {"displayName": "LeBron James"},"sourceUrl": "https://www.espn.com/nba/player/_/id/1966/lebron-james"}
News row
| Field | Type | What it does |
|---|---|---|
resultType | string | Is news. |
sport | string | Sport slug. |
league | string | League slug. |
headline | string | Story headline. |
description | string | Story summary. |
publishedAt | string | Publish date and time. |
byline | string | Writer or desk. |
imageUrl | string | Story image link. |
sourceUrl | string | ESPN story link. |
keyword | string | First keyword that found the saved story. |
{"resultType": "news","sport": "baseball","league": "mlb","headline": "Fantasy baseball lineup advice for Saturday: Brewers' Gasser offers upside","description": "Everything you need to know to set your fantasy baseball lineups for Saturday's MLB action.","publishedAt": "2026-07-24T19:40:20Z","byline": "ESPN Fantasy","imageUrl": "https://a.espncdn.com/photo/2026/0724/r1693310_608x342_16-9.jpg"}
Ranking row
| Field | Type | What it does |
|---|---|---|
resultType | string | Is ranking. |
rankingType | string | Ranking family. |
rank | number | Current rank. |
previousRank | number | Prior rank. |
name | string | Ranked name. |
entityId | string | ESPN entity ID. |
record | string | Team record. |
points | number | Ranking points. |
sourceUrl | string | ESPN link. |
{"resultType": "ranking","rankingType": "collegeFootball","rank": 1,"previousRank": 1,"name": "Hoosiers","entityId": "84","record": "16-0","points": 1650,"sourceUrl": "https://www.espn.com/college-football/team/_/id/84/indiana-hoosiers"}
Search row
| Field | Type | What it does |
|---|---|---|
resultType | string | Is search. |
entityType | string | Athlete, team, or league. |
entityId | string | ESPN entity ID. |
name | string | Entity name. |
sport | string | Sport slug. |
league | string | League slug. |
description | string | Entity details. |
imageUrl | string | Entity image link. |
sourceUrl | string | ESPN link. |
{"resultType": "search","entityType": "team","entityId": "2","name": "Boston Celtics","sport": "basketball","league": "nba","sourceUrl": "https://www.espn.com/nba/team/_/name/bos/boston-celtics"}
💳 Pricing
This Actor uses pay-per-event pricing. You pay for each ESPN sports row saved to the dataset. A run with no saved sports rows does not create this charge. Cost depends on how many rows the chosen target returns.
🔌 Integrations
Use the dataset with the Apify API, downloads, schedules, webhooks, and supported Apify integrations. This guide shows how to connect an Actor to other tools:
❓ FAQ
Do I need an ESPN account or API key?
No ESPN account or ESPN API key is needed for this public sports research.
Can it place bets or give betting advice?
No. It only returns ESPN odds data when available. It does not place bets, make picks, or promise an outcome.
Why are some fields missing?
ESPN data differs by sport, league, game, and date. The Actor keeps available data and does not make up missing values.
Can I request several unrelated targets in one run?
No. Choose one target for each run. You can add several league slugs of the same sport to supported league targets.
Can I use the output outside an MCP client?
Yes. A regular Actor run saves structured rows to an Apify dataset for viewing and export.
📝 Changelog
0.0: Initial release
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Sofascore Live Events Scraper — Get live events, dated fixtures, teams, players, managers, and supported match pages from Sofascore.
Made with ❤️ by Maxime Dupré