ESPN Sports News Scraper - Headlines & Stories by League
Pricing
from $0.50 / 1,000 results
ESPN Sports News Scraper - Headlines & Stories by League
$0.5/1K ๐ฅ Fast ESPN news scraper! Sports headlines & stories by league โ title, byline, image & link. No key. JSON, CSV, Excel or API in seconds. Pull the news for aggregation, fan apps & media monitoring โก
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
ninhothedev
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
ESPN Sports News Scraper
Fetch the latest ESPN news feed for selected leagues. Each result contains a headline, available description, byline, timestamps, article URL, image and categories. Descriptions are source excerpts, capped at 3,000 characters; full article bodies and historical pagination are not provided. League availability depends on ESPN's public site API. No API key is required.
First run
The default {} input requests up to five NFL articles. A small explicit example:
{"mode":"news","leagues":["football/nfl"],"limit":5,"maxItems":5}
| Input | Default | Meaning |
|---|---|---|
mode | news | Only news is supported. |
leagues | ["football/nfl"] | 1โ30 sport/league paths. Legacy string input is accepted. Repeated paths are normalized and deduplicated. |
limit | 5 | Requested articles per league, integer 1โ100. The source may return fewer. |
maxItems | 5 | Strict global dataset cap across leagues and resumed runs, integer 1โ2000. |
Other example paths: basketball/nba, baseball/mlb, hockey/nhl, soccer/eng.1, soccer/esp.1. These are source paths, not a guarantee that every feed is available. Input order determines which leagues are reached before the global or charge budget cap.
Output and coverage
Existing fields remain: league, headline, description, byline, published, last_modified, type, url, image, image_caption, categories, source, scraped_at. Additive fields are id and source_url. The ID uses ESPN's article ID, falling back to a normalized URL hash, and stays the same when an article appears in multiple leagues. Only the first encountered league is recorded. Missing optional fields and invalid source dates are null; categories default to []. Valid dates and capture time use ISO-8601 UTC.
{"id":"espn:123456","league":"football/nfl","headline":"Example headline","description":null,"byline":null,"published":null,"last_modified":null,"type":null,"url":"https://www.espn.com/nfl/story/_/id/123456/example","image":null,"image_caption":null,"categories":[],"source":"espn","scraped_at":"2026-09-05T20:00:00+00:00","source_url":"https://site.api.espn.com/apis/site/v2/sports/football/nfl/news?limit=5"}
RUN_SUMMARY in the default key-value store records requested leagues, fetched/empty/failed feeds, delivered count and complete, limit_reached or partial_error status. An explicit empty articles array is a valid zero-result response. HTTP errors, timeouts, malformed response shapes and articles missing a usable identity or headline cause a failed run; already delivered valid articles are retained. There are no automatic source retries. Requests time out after 15 seconds.
The default dataset is read on resurrection: existing rows count against maxItems and article IDs/URLs prevent duplicate rows and repeated result charges in that dataset. A new run with a new dataset is an independent collection. Feed contents can change between attempts; this is not a historical archive or a guarantee of complete league coverage. Budget checks occur before each fetch and write.
Pricing
Current configured standard event prices, checked 5 September 2026: $0.0005 per delivered article ($0.50 per 1,000) and $0.00005 Actor Start, charged per GB with a one-event minimum. At 512 MB, 5 / 100 / 1,000 delivered articles correspond to $0.00255 / $0.05005 / $0.50005 in these events. Consult the live pricing panel for account-specific pricing and any platform charges. Empty feeds and rejected articles do not create result events. No proxy is configured by this Actor.
Development
Install requirements.txt into a virtual environment, run python -m unittest discover -s tests -p 'test_*.py', then use apify run for a local source test. The committed dependency lock uses Apify SDK 4 with automatic default-dataset result charging. Local storage is not uploaded to Apify. Cloud source access and billing must be validated on the exact candidate build before release.