# ESPN News Monitor: Keyword Alerts (`getascraper/espn-news-monitor`) Actor

Monitor public ESPN news for keyword matches across sports and leagues. Export new and updated articles with match snippets for media intelligence, SEO research, and automated alerts.

- **URL**: https://apify.com/getascraper/espn-news-monitor.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** News, SEO tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.33 / 1,000 news articles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🏈 ESPN News Monitor: Keyword Alerts

<table width="100%"><tr><td style="padding:24px 28px;background:#EEF5FF;border:1px solid #B8D5FA;border-top:4px solid #1D4ED8;border-radius:12px"><span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Track the ESPN stories that matter to your work.</span><br><span style="font-size:15px;color:#475569;line-height:1.6">Find public ESPN articles about teams, athletes, leagues, injuries, transfers, and topics. Run a one-off search or monitor new matches on a schedule.</span></td></tr></table>

<table width="100%"><tr><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B8D5FA;border-radius:10px 0 0 10px;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1D4ED8">🔎 Keyword matches</span><br><span style="font-size:12px;color:#475569">See the exact terms and snippets that made an article relevant.</span></td><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B8D5FA;border-left:none;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1D4ED8">📡 New-story alerts</span><br><span style="font-size:12px;color:#475569">Keep a named monitor and return only new or changed matches.</span></td><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B8D5FA;border-left:none;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1D4ED8">🏷️ Sports context</span><br><span style="font-size:12px;color:#475569">Keep league, team, athlete, topic, and publication details together.</span></td><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B8D5FA;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1D4ED8">📄 Clean exports</span><br><span style="font-size:12px;color:#475569">Use one flat article row in spreadsheets, databases, and alert workflows.</span></td></tr></table>

Use this ESPN news scraper to collect current public stories from the feeds you choose. Match words or phrases in headlines, descriptions, or eligible public article text. The output keeps the source link and context so you can decide what deserves attention.

### 🎯 What you can do

- **I am a sports editor** tracking player, transfer, and injury news before I plan coverage.
- **I am a fantasy or betting analyst** watching team and athlete mentions without manually opening every current feed.
- **I am a media analyst** collecting article links and publication times for a sports news dashboard.
- **I am a data product manager** adding current ESPN news signals to an existing workflow without maintaining a source-specific collector.

### 🚀 How to use it

<table width="100%"><tr><td style="padding:16px 14px;width:33%;background:#EEF5FF;border:1px solid #B8D5FA;border-radius:10px 0 0 10px;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 1</span><br><span style="font-size:14px;font-weight:700;color:#1C1917">Choose feeds</span><br><span style="font-size:12px;color:#475569">Select an ESPN sport and league feed, such as NFL or NBA.</span></td><td style="padding:16px 14px;width:33%;background:#EEF5FF;border:1px solid #B8D5FA;border-left:none;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 2</span><br><span style="font-size:14px;font-weight:700;color:#1C1917">Set your signal</span><br><span style="font-size:12px;color:#475569">Add keywords, exclusions, and the parts of each article you want checked.</span></td><td style="padding:16px 14px;width:33%;background:#EEF5FF;border:1px solid #B8D5FA;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 3</span><br><span style="font-size:14px;font-weight:700;color:#1C1917">Monitor changes</span><br><span style="font-size:12px;color:#475569">Reuse a state name on scheduled runs to receive only fresh or updated matches.</span></td></tr></table>

Leave `keywords` empty for a safe first run that returns current articles from the chosen feed. Add keywords once you know the signal you want to track.

### 🧭 Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `keywords` | array of strings | No | Words or phrases to find. Leave it empty to export the selected current feed without a keyword filter. |
| `feeds` | array of objects | No | ESPN sport and league feeds to scan. The form starts with the NFL feed. |
| `matchFields` | array of strings | No | Choose whether matching checks headlines, descriptions, or public article text. |
| `matchMode` | enum | No | Return an article when any keyword matches, or only when every keyword matches. |
| `caseSensitive` | boolean | No | Enable only when the capitalization of your terms matters. |
| `excludeKeywords` | array of strings | No | Skip articles containing any excluded word or phrase. |
| `includeArticleBody` | boolean | No | Check eligible public article text for matches and snippets. Premium article text is not collected. |
| `publishedAfter` | string | No | Keep only articles published on or after an ISO date or date-time. |
| `publishedBefore` | string | No | Keep only articles published on or before an ISO date or date-time. |
| `monitoringStateName` | string | No | Name a persistent monitor. Reuse the same name on scheduled runs. |
| `onlyNewMatches` | boolean | No | With a monitoring state, omit articles that have not changed since the last successful run. |
| `maxItems` | integer | No | Set a safe cap on matching article records across every selected feed. |

### 📊 Data table

| Field | Type | Description |
| --- | --- | --- |
| `articleId` | string | Stable ESPN identifier used for deduplication and monitoring. |
| `headline` | string | Public article headline. |
| `description` | string | Public summary when ESPN provides one. |
| `url` | string | Source article link. |
| `sport` and `league` | string | ESPN feed context that returned the article. |
| `teams`, `athletes`, and `topics` | array | Public context labels supplied with the article. |
| `publishedAt` and `lastModifiedAt` | string | Source publication and update times when available. |
| `premium` | boolean | Whether ESPN marks the article as premium. |
| `matchedKeywords` | array | Your words or phrases that matched the article. |
| `keywordMatches` and `snippets` | array | Match location, occurrence count, and a short source excerpt. |
| `changeType` | string | `NEW`, `UPDATED`, or `UNCHANGED` when a named monitor is used. |
| `firstSeenAt` and `lastSeenAt` | string | Monitoring provenance, present only for named monitoring runs. |
| `scrapedAt` | string | Time this Actor collected the record. |

Example output:

```json
{
  "articleId": "49486537",
  "headline": "Eddie Howe set to leave Newcastle - sources",
  "url": "https://www.espn.com/soccer/story/_/id/49486537/eddie-howe-set-leave-newcastle-sources",
  "sport": "soccer",
  "league": "all",
  "teams": ["Newcastle United"],
  "matchedKeywords": ["Newcastle"],
  "headlineMatchCount": 1,
  "premium": false,
  "scrapedAt": "2026-07-30T08:45:00.000Z"
}
```

### 🗂️ Output views

- `📰 Matched articles`: a concise current-news table for daily research.
- `🏷️ Match details`: the keywords, counts, and snippets behind every match.
- `📡 Monitoring status`: change states and first-seen or last-seen times for scheduled work.

### 💰 Pricing

Pricing is based on saved article records. Empty runs cost nothing, and there are no subscriptions. The price is shown in the Apify run panel before you start a paid run.

### ⭐ Enjoying ESPN News Monitor: Keyword Alerts?

<table width="100%"><tr><td style="padding:20px 24px 14px;background:#EEF5FF;border:1px solid #B8D5FA;border-left:5px solid #1D4ED8;border-radius:10px 10px 0 0"><span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br><span style="font-size:17px;font-weight:800;color:#1C1917">Did the monitor help you spot an ESPN story before it slipped past?</span><br><span style="font-size:14px;color:#475569">A rating helps sports researchers and media teams find this Actor. It also shows us which monitoring workflows to improve next.</span></td></tr><tr><td style="padding:0;background:#1D4ED8;border:1px solid #B8D5FA;border-top:none;border-radius:0 0 10px 10px;text-align:center"><a href="https://apify.com/getascraper/espn-news-monitor/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a></td></tr></table>

### ❓ FAQ

##### Can I scrape ESPN news by keyword?

Yes. Add one or more words or phrases and choose where they should be checked. The Actor returns the matched terms and short snippets so you can review why each article appeared.

##### Can I monitor new ESPN injury, transfer, or team news?

Yes. Give the run a `monitoringStateName`, reuse it on a schedule, and switch on `onlyNewMatches`. The first successful run creates the baseline. Later runs return new or updated matching articles.

##### Does this include ESPN+ article text?

No. The Actor keeps public metadata for an article marked premium, but it does not collect premium article text.

##### How much ESPN history can I collect?

ESPN's public feeds are current and bounded. This Actor is designed for ongoing monitoring and current-news collection, not a complete historical archive.

### ⚖️ Public-data scope

This Actor collects publicly available ESPN news metadata and eligible public text. Keep source links and attribution in downstream work. You are responsible for following ESPN terms, copyright rules, and applicable law.

### 🔗 Other actors

- [Cricket Data API: ESPNcricinfo StatsGuru Export](https://apify.com/getascraper/espncricinfo-statsguru-scraper) ↗ - export structured cricket records and player statistics.
- [⚽ SofaScore Scraper: Live scores, stats and fixtures](https://apify.com/getascraper/sofascore-live-events-scraper) ↗ - collect live events, fixtures, and sports statistics.
- [🛰️ Telegram Channel Delta Monitor](https://apify.com/getascraper/telegram-channel-delta-monitor) ↗ - track new public channel posts and changes over time.
- [🧵 Threads Monitor: Public Post Changes](https://apify.com/getascraper/threads-mention-delta-monitor) ↗ - monitor public Threads mentions and post updates.
- [Layoff Signal Monitor: Unified Corporate Disclosures & WARN Act Tracking](https://apify.com/getascraper/layoff-signal-monitor) ↗ - track business signals through recurring public-disclosure monitoring.

# Actor input Schema

## `feeds` (type: `array`):

Sport and league news feeds to scan. ESPN provides a current public feed window for each selection.

## `keywords` (type: `array`):

Words or exact phrases to find. Matching supports Unicode text. Leave empty to export the selected feeds without a keyword filter.

## `matchFields` (type: `array`):

Choose where keywords are matched. Public article text requires Article body enrichment to be enabled.

## `matchMode` (type: `string`):

Match Any returns an article when one keyword matches. Match All requires every keyword to match.

## `excludeKeywords` (type: `array`):

Skip an article when any excluded word or phrase is present.

## `publishedAfter` (type: `string`):

Keep articles published on or after this date.

## `publishedBefore` (type: `string`):

Keep articles published on or before this date.

## `caseSensitive` (type: `boolean`):

Keep this off for normal searches. Enable it only when capitalization matters to your query.

## `includeArticleBody` (type: `boolean`):

Check eligible public article text for better matching and snippets. Premium article text is never collected.

## `monitoringStateName` (type: `string`):

Name a persistent monitor. Reuse the same name on scheduled runs to classify articles as NEW, UPDATED, or UNCHANGED.

## `onlyNewMatches` (type: `boolean`):

With a Monitoring state name, omit unchanged articles after the first successful baseline run.

## `maxItems` (type: `integer`):

Maximum matching article records saved across every selected feed.

## Actor input object example

```json
{
  "feeds": [
    {
      "sport": "football",
      "league": "nfl"
    }
  ],
  "keywords": [],
  "matchFields": [
    "headline",
    "description"
  ],
  "matchMode": "any",
  "excludeKeywords": [],
  "caseSensitive": false,
  "includeArticleBody": false,
  "onlyNewMatches": false,
  "maxItems": 10
}
```

# Actor output Schema

## `matchedArticles` (type: `string`):

No description

## `matchDetails` (type: `string`):

No description

## `monitoringStatus` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "feeds": [
        {
            "sport": "football",
            "league": "nfl"
        }
    ],
    "keywords": [],
    "matchFields": [
        "headline",
        "description"
    ],
    "matchMode": "any",
    "excludeKeywords": [],
    "caseSensitive": false,
    "includeArticleBody": false,
    "onlyNewMatches": false,
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/espn-news-monitor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "feeds": [{
            "sport": "football",
            "league": "nfl",
        }],
    "keywords": [],
    "matchFields": [
        "headline",
        "description",
    ],
    "matchMode": "any",
    "excludeKeywords": [],
    "caseSensitive": False,
    "includeArticleBody": False,
    "onlyNewMatches": False,
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/espn-news-monitor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "feeds": [
    {
      "sport": "football",
      "league": "nfl"
    }
  ],
  "keywords": [],
  "matchFields": [
    "headline",
    "description"
  ],
  "matchMode": "any",
  "excludeKeywords": [],
  "caseSensitive": false,
  "includeArticleBody": false,
  "onlyNewMatches": false,
  "maxItems": 10
}' |
apify call getascraper/espn-news-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=getascraper/espn-news-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/oHUXMbAAYHzdnTGq3/builds/GNJjKnUzvuKqw1UY3/openapi.json
