ESPN News Scraper avatar

ESPN News Scraper

Pricing

Pay per event

Go to Apify Store
ESPN News Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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/nfl
  • basketball/nba
  • baseball/mlb
  • hockey/nhl
  • football/college-football
  • basketball/mens-college-basketball
  • soccer/eng.1

You can add more feeds by passing objects with sport, league, and an optional label.

Data you can extract

FieldDescription
idESPN article ID
headlineArticle headline
descriptionShort article summary
urlESPN web article URL
mobileUrlESPN mobile URL when available
apiUrlESPN article API URL when available
sportESPN sport path used for the feed
leagueESPN league path used for the feed
bylineESPN author or reporter byline
publishedAtArticle publish timestamp
lastModifiedAtLast modified timestamp
premiumWhether ESPN marks the article as premium
imageUrlLead image URL
categoriesTeam, league, athlete, and topic labels
scrapedAtTime 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

  1. Open the actor on Apify.
  2. Keep the default ESPN feeds or add your own sport/league pairs.
  3. Set maxArticles to the number of articles you want.
  4. Optionally add date filters.
  5. Run the actor.
  6. 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 ApifyClient
client = 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().items
print(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.

You may also be interested in other Automation Lab sports, news, search, and monitoring actors on Apify:

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.