ESPN News Scraper
Pricing
Pay per event
ESPN News Scraper
Extract ESPN sports news articles from public ESPN APIs across NFL, NBA, MLB, NHL, college sports, and soccer feeds.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract ESPN sports news articles from public ESPN feeds across NFL, NBA, MLB, NHL, college sports, and soccer.
Use this actor to monitor league news, collect article metadata, power sports dashboards, and feed downstream fantasy, betting, media, or analytics workflows.
What does ESPN News Scraper do?
ESPN News Scraper reads ESPN's public sports news API and saves one dataset item per article.
It captures headlines, descriptions, ESPN article links, publish dates, bylines, sport/league context, lead images, category tags, and ESPN identifiers.
The actor is HTTP/API based, so it does not need browser automation, login, cookies, or manual ESPN access.
Who is it for?
Sports media teams use it to watch breaking league stories.
Fantasy and betting analysts use it to track player, injury, and team news signals.
Content teams use it to aggregate ESPN article links for editorial calendars.
Data teams use it to backfill sports news metadata into warehouses, BI tools, and alerting systems.
Developers use it when they need a repeatable ESPN news extractor instead of custom cron scripts.
Why use this ESPN sports news scraper?
- 🏈 Multi-league collection in one run.
- 🏀 Clean dataset rows with stable field names.
- ⚾ Public ESPN API extraction without browser overhead.
- 🏒 Date filters for monitoring windows.
- ⚽ Optional raw ESPN payloads for advanced pipelines.
- 📊 Ready for exports to CSV, JSON, Excel, Google Sheets, and APIs.
ESPN feeds supported
The input accepts any ESPN public API sport and league path that exposes a news feed.
Common examples include:
football/nflbasketball/nbabaseball/mlbhockey/nhlfootball/college-footballbasketball/mens-college-basketballsoccer/eng.1
You can add more feeds by passing objects with sport, league, and an optional label.
Data you can extract
| Field | Description |
|---|---|
id | ESPN article ID |
headline | Article headline |
description | Short article summary |
url | ESPN web article URL |
mobileUrl | ESPN mobile URL when available |
apiUrl | ESPN article API URL when available |
sport | ESPN sport path used for the feed |
league | ESPN league path used for the feed |
byline | ESPN author or reporter byline |
publishedAt | Article publish timestamp |
lastModifiedAt | Last modified timestamp |
premium | Whether ESPN marks the article as premium |
imageUrl | Lead image URL |
categories | Team, league, athlete, and topic labels |
scrapedAt | Time the actor saved the row |
How much does it cost to scrape ESPN news?
This actor uses pay-per-event pricing.
There is a small run start charge and a per-article charge for every ESPN news article saved to the dataset.
The default pricing is designed for inexpensive monitoring runs and will be finalized from cloud cost measurements before publication.
Quick start
- Open the actor on Apify.
- Keep the default ESPN feeds or add your own sport/league pairs.
- Set
maxArticlesto the number of articles you want. - Optionally add date filters.
- Run the actor.
- Export the dataset or connect it to your workflow.
Input options
feeds
Array of ESPN sport/league feed objects.
Example:
[{ "sport": "football", "league": "nfl", "label": "NFL" },{ "sport": "basketball", "league": "nba", "label": "NBA" }]
maxArticles
Maximum unique ESPN articles to save across all selected feeds.
Use a small value for quick checks and a larger value for league monitoring jobs.
publishedAfter
Optional ISO date or date-time. Articles older than this value are skipped.
publishedBefore
Optional ISO date or date-time. Articles newer than this value are skipped.
includeImages
When enabled, the actor saves lead image URL, caption, and credit fields.
includeRawArticle
When enabled, the actor includes the original ESPN article object in each row.
Use this for debugging or custom downstream transforms.
Example input
{"feeds": [{ "sport": "football", "league": "nfl", "label": "NFL" },{ "sport": "basketball", "league": "nba", "label": "NBA" },{ "sport": "baseball", "league": "mlb", "label": "MLB" },{ "sport": "hockey", "league": "nhl", "label": "NHL" }],"maxArticles": 100,"includeImages": true,"includeRawArticle": false}
Example output
{"id": "49272641","headline": "Sources: Patrick Ewing joins Brian Keefe's Wizards staff as assistant","description": "Georgetown and New York Knicks legend Patrick Ewing has agreed to become an assistant coach...","url": "https://www.espn.com/nba/story/_/id/49272641/...","sport": "basketball","league": "nba","byline": "Shams Charania","publishedAt": "2026-07-05T01:00:00Z","premium": false,"source": "ESPN site API"}
Monitoring workflows
Run the actor hourly with publishedAfter set to your last collection window.
Push new rows to Slack, Discord, email, Google Sheets, or a warehouse.
Use league-specific feeds to create alerts for fantasy football, NBA trades, MLB injuries, NHL roster updates, or soccer transfer news.
Sports analytics workflows
Combine ESPN headlines with team schedules, betting odds, player stats, or social media data.
Use categories to identify teams, athletes, and leagues mentioned by ESPN.
Use timestamps to build article velocity metrics and news freshness dashboards.
Integrations
Common integrations include:
- Google Sheets for editorial trackers.
- BigQuery or Snowflake for sports data warehouses.
- Slack alerts for breaking headlines.
- Zapier or Make for no-code workflows.
- Custom Node.js or Python services through the Apify API.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/espn-news-scraper').call({feeds: [{ sport: 'football', league: 'nfl', label: 'NFL' }],maxArticles: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/espn-news-scraper').call(run_input={'feeds': [{'sport': 'basketball', 'league': 'nba', 'label': 'NBA'}],'maxArticles': 50,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~espn-news-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"feeds":[{"sport":"football","league":"nfl","label":"NFL"}],"maxArticles":50}'
MCP usage
Use Apify MCP to call this actor from Claude Desktop, Claude Code, or other MCP clients.
MCP server URL:
https://mcp.apify.com/?tools=automation-lab/espn-news-scraper
Claude Code setup:
$claude mcp add apify-espn-news "https://mcp.apify.com/?tools=automation-lab/espn-news-scraper"
Claude Desktop JSON config:
{"mcpServers": {"apify-espn-news": {"url": "https://mcp.apify.com/?tools=automation-lab/espn-news-scraper"}}}
Example prompts:
- "Run the ESPN News Scraper for NFL and NBA headlines today."
- "Get the latest ESPN NHL articles and summarize the categories."
- "Monitor ESPN MLB news and return article URLs published after midnight UTC."
Tips for best results
Keep maxArticles realistic for your feed count.
Use date filters for recurring monitoring runs.
Turn on includeRawArticle only when you need ESPN's original payload.
If a custom ESPN feed returns no results, verify the sport and league path in ESPN's public URL structure.
Troubleshooting
Why did my run return fewer articles than maxArticles?
ESPN may expose fewer current articles for a specific feed, or duplicate articles may appear across feeds and be de-duplicated.
Why does a custom sport/league fail?
The sport/league pair may not expose the same public news endpoint. Try a known feed such as football/nfl or basketball/nba first.
Data freshness
The actor returns whatever ESPN exposes at run time.
For near-real-time monitoring, schedule the actor every 15 to 60 minutes and use publishedAfter to avoid reprocessing old headlines.
Limitations
The actor collects article metadata from ESPN public feeds.
It does not bypass paywalls, log into ESPN, or scrape full premium article bodies.
Some ESPN feeds may use different paths or expose fewer fields than major league feeds.
Legality
This actor extracts publicly accessible ESPN news metadata.
Users are responsible for complying with ESPN terms, applicable law, and their own data usage policies.
Do not use the actor to republish copyrighted article bodies without permission.
Related scrapers
You may also be interested in other Automation Lab sports, news, search, and monitoring actors on Apify:
- https://apify.com/automation-lab/google-news-scraper
- https://apify.com/automation-lab/rss-feed-scraper
- https://apify.com/automation-lab/news-scraper
FAQ
Can I scrape multiple leagues in one run?
Yes. Add multiple objects to feeds. The actor de-duplicates overlapping ESPN articles.
Does this need proxies?
No proxy is required for the standard public ESPN API feeds tested during development.
Can I get full article text?
The actor focuses on metadata available in ESPN's public news feed. It includes article URLs for downstream reading or enrichment.
Can I use it for fantasy football alerts?
Yes. Use the NFL feed, schedule recurring runs, and filter new rows by publishedAt, categories, and headline keywords.
Can I export to CSV?
Yes. Apify datasets can be exported as CSV, JSON, Excel, XML, RSS, or accessed through the API.