# MarketWatch Scraper (`maximedupre/marketwatch`) Actor

Collect MarketWatch articles from sections, search pages, or story URLs. Get headlines, links, authors, dates, summaries, article text, images, keywords, and tickers. You can also collect stock quotes with related news.

- **URL**: https://apify.com/maximedupre/marketwatch.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** News, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $17.10 / 1,000 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/actors/running/actors-in-store.md#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

### 📰 MarketWatch news and quotes for daily research

Built for investors, analysts, researchers, and news teams, this Actor collects MarketWatch articles from editorial sections, search pages, and direct story URLs. It can also return stock quotes with related news. You get structured headlines, links, authors, dates, summaries, article text, images, keywords, tickers, and quote fields for review or downstream work.

- Review **[Nasdaq today](https://apify.com/maximedupre/marketwatch/examples/nasdaq-today)** in a MarketWatch article dataset.
- Find **[AMD news](https://apify.com/maximedupre/marketwatch/examples/amd-news)** for a focused company review.
- Check **[why is the stock market going down today](https://apify.com/maximedupre/marketwatch/examples/why-is-the-stock-market-going-down-today)** against current MarketWatch stories.
- Collect **[stock market news today](https://apify.com/maximedupre/marketwatch/examples/stock-market-news-today)** for a daily market review.
- Explore **[why is AMD stock falling today](https://apify.com/maximedupre/marketwatch/examples/why-is-amd-stock-falling-today)** through related MarketWatch coverage.
- Review **[stock market close today](https://apify.com/maximedupre/marketwatch/examples/stock-market-close-today)** after trading ends.
- Gather **[AppLovin stock news](https://apify.com/maximedupre/marketwatch/examples/applovin-stock-news)** for company research.

#### 📦 MarketWatch article and stock quote data

Each saved row is either a MarketWatch article or a stock quote. Article rows can include the headline, canonical URL, author, section, publish and update times, summary, description, lead image, available text, paragraphs, keywords, and stock tickers. Stock quote rows include a symbol, company, price changes, quote time, and related news links. Optional fields can be `null`, and optional arrays can be empty when the source does not provide them. If the same article is found more than once, the Actor saves the first eligible match and skips later copies.

#### ▶️ Run a MarketWatch collection

1. Choose one target: `sections`, `searchPages`, `storyUrls`, or `stockQuotes`.
2. Add the matching section URL list, search page URL, story URL list, or stock symbol list.
3. For article targets, set an article limit or leave it empty to return all available articles until the source is exhausted. The article limit does not limit stock quotes.
4. Click **Start**. Open the dataset when the run ends.

#### ⚙️ Input

Choose one `target` for each run and fill only the fields for that target.

| Field | Type | What it does |
| --- | --- | --- |
| `target` | string | Chooses editorial sections, search pages, direct story URLs, or stock quotes. |
| `sectionUrls` | array of URL objects | Adds MarketWatch section URLs when `target` is `sections`. |
| `searchPageUrl` | string | Adds one MarketWatch search results URL when `target` is `searchPages`. The Actor follows later pages until the article limit is reached or no more results are found. |
| `storyUrls` | array of URL objects | Adds exact MarketWatch article URLs when `target` is `storyUrls`. |
| `stockSymbols` | array of strings | Adds stock symbols when `target` is `stockQuotes`. The Actor returns quote data and related news for each symbol. |
| `maxItems` | integer | Stops after this many saved articles for article targets. Leave it empty to return all available articles until the source is exhausted. It does not limit stock quotes. |

**Default input**

This is the public input from a successful current-beta run:

```json
{
  "target": "sections",
  "sectionUrls": [
    {
      "url": "https://www.marketwatch.com/latest-news"
    }
  ],
  "maxItems": 1
}
```

#### 🧾 Output

Results are saved in the default dataset. The dataset can contain article rows or stock quote rows, depending on the target you choose. Optional article fields may be `null`, and optional arrays may be empty.

**Article rows**

| Field | Type | What it does |
| --- | --- | --- |
| `resultType` | string | Always `article` for an article row. |
| `headline` | string | Article headline. |
| `articleUrl` | string | Canonical MarketWatch article URL. |
| `author` | string or null | Author when shown. |
| `section` | string or null | MarketWatch editorial section. |
| `publishedAt` | date-time string or null | Publish date and time in ISO 8601 form. |
| `updatedAt` | date-time string or null | Last update date and time when shown. |
| `summary` | string or null | Short article summary when shown. |
| `description` | string or null | Article description when provided. |
| `imageUrl` | string or null | Lead image URL when available. |
| `articleText` | string or null | Available article text. |
| `paragraphs` | array of strings | Available article text split into paragraphs in source order. |
| `keywords` | array of strings | Keywords linked to the article by MarketWatch. |
| `tickers` | array of strings | Stock ticker symbols linked to the article by MarketWatch. |

The article row below is shortened. The long `articleText`, `paragraphs`, and `keywords` values use `"..."` as omission markers.

```json
{
  "resultType": "article",
  "headline": "There’s so much betting against long-term bonds that a turnaround could catch investors off guard, says Citadel Securities",
  "articleUrl": "https://www.marketwatch.com/story/wall-streets-massive-bet-against-long-term-bonds-is-a-recipe-for-a-painful-bearish-unwind-says-citadel-securities-430dc145",
  "author": "Barbara Kollmeyer",
  "section": "Markets",
  "publishedAt": "2026-08-26T11:07:00.000Z",
  "updatedAt": "2026-08-26T13:36:00.000Z",
  "summary": "Citadel Securities’ strategist Frank Flight says a bet that appears to be one-sided against long-term bonds could be setting up for a painful unwind.",
  "description": "Citadel Securities’ strategist Frank Flight says a bet that appears to be one-sided against long-term bonds could be setting up for a painful unwind.",
  "imageUrl": "https://images.mktw.net/im-21144169?width=1280&size=1.5",
  "articleText": "...",
  "paragraphs": [
    "..."
  ],
  "keywords": [
    "..."
  ],
  "tickers": [
    "CL.1",
    "BRN00",
    "NVDA",
    "META",
    "CRM",
    "SNPS",
    "CRWD",
    "HPQ",
    "INTU",
    "ZM"
  ]
}
```

**Stock quote rows**

| Field | Type | What it does |
| --- | --- | --- |
| `resultType` | string | Always `stockQuote` for a stock quote row. |
| `symbol` | string | MarketWatch stock symbol. |
| `company` | string | Company name shown for the quote. |
| `currentPrice` | number | Current stock price in the quote. |
| `pointChange` | number | Change in the stock price in points. |
| `percentageChange` | number | Change in the stock price as a percentage. |
| `quoteTime` | date-time string | Time shown for the stock quote in ISO 8601 form. |
| `relatedNews` | array of objects | Latest related MarketWatch news for the stock. |
| `relatedNews[].headline` | string | Related news headline. |
| `relatedNews[].articleUrl` | string | MarketWatch URL for the related news article. |

```json
{
  "resultType": "stockQuote",
  "symbol": "AAPL",
  "company": "Apple Inc.",
  "currentPrice": 313.45,
  "pointChange": 3.55,
  "percentageChange": 1.15,
  "quoteTime": "2026-08-26T20:00:00.000Z",
  "relatedNews": [
    {
      "headline": "08/26 What to know about Hugging Face, the open-source AI startup reportedly catching Nvidia’s eye",
      "articleUrl": "https://www.marketwatch.com/story/what-to-know-about-hugging-face-the-open-source-ai-startup-reportedly-catching-nvidias-eye-243771f8?mod=mw_latestnews"
    },
    {
      "headline": "08/26 ‘My main goal is to help people’: I’m single, 74, with $10 million burning a hole in my pocket. What should I do?",
      "articleUrl": "https://www.marketwatch.com/story/my-main-goal-is-to-help-people-im-single-74-with-10-million-burning-a-hole-in-my-pocket-what-should-i-do-0e6112e1?mod=mw_latestnews"
    },
    {
      "headline": "08/26 CrowdStrike’s stock soars after AI fuels the cybersecurity company’s ‘best quarter in history’",
      "articleUrl": "https://www.marketwatch.com/story/crowdstrikes-stock-soars-after-ai-fuels-the-cybersecurity-companys-best-quarter-ever-6aeae1d5?mod=mw_latestnews"
    },
    {
      "headline": "08/26 Fed’s Lisa Cook denies committing mortgage fraud, says Trump has no grounds to remove her from office",
      "articleUrl": "https://www.marketwatch.com/story/feds-lisa-cook-denies-committing-mortgage-fraud-says-trump-has-no-grounds-to-remove-her-from-office-4ea60c9d?mod=mw_latestnews"
    },
    {
      "headline": "08/26 Salesforce’s stock gets an Anthropic boost — and more highlights from earnings",
      "articleUrl": "https://www.marketwatch.com/story/salesforces-stock-surges-as-ai-momentums-fuel-revenue-growth-8c96eef3?mod=mw_latestnews"
    },
    {
      "headline": "08/26 Am I too old for Roth conversions? I’m 84 and my wife is 77. We have $8 million saved.",
      "articleUrl": "https://www.marketwatch.com/story/am-i-too-old-for-roth-conversions-im-84-and-my-wife-is-77-we-have-8-million-saved-fb08fccd?mod=mw_latestnews"
    },
    {
      "headline": "08/26 I just had my first baby and don’t want to go back to work. Is quitting for a year a bad idea?",
      "articleUrl": "https://www.marketwatch.com/story/i-just-had-my-first-baby-and-dont-want-to-go-back-to-work-is-quitting-for-a-year-a-bad-idea-780122e6?mod=mw_latestnews"
    },
    {
      "headline": "08/26 ‘There is considerable tension’: My grandmother, 99, wants to cut my mother out of her will. Should I intervene?",
      "articleUrl": "https://www.marketwatch.com/story/there-is-considerable-tension-my-grandmother-99-wants-to-cut-my-mother-out-of-her-will-should-i-intervene-5e8f408e?mod=mw_latestnews"
    },
    {
      "headline": "08/26 Meta dodges ‘Big Tobacco’ nightmare with $18 billion settlement in child-safety lawsuit",
      "articleUrl": "https://www.marketwatch.com/story/metas-stock-rises-as-the-company-settles-in-social-media-addiction-trial-78abdfbf?mod=mw_latestnews"
    },
    {
      "headline": "08/26 I’m turning 70. Here’s how I’m making this decade the richest of my retirement.",
      "articleUrl": "https://www.marketwatch.com/story/im-turning-70-heres-how-im-making-this-decade-the-richest-of-my-retirement-ae351f90?mod=mw_latestnews"
    }
  ]
}
```

#### 💳 Pricing

You pay for each MarketWatch article saved to the dataset. A story found more than once is saved and charged only for its first eligible match. Check the pricing panel for the current tier prices.

#### 🔌 Integrations

Open the Apify dataset after a run, export its rows in supported formats, or read them through the Apify API. Schedule repeat runs in Apify when you want a recurring news or quote check.

https://www.youtube.com/watch?v=bNACk1\_S\_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

#### ❓ FAQ

##### Which target should I choose?

Use sections for a broad MarketWatch feed, search pages for a topic or company, story URLs for known articles, and stock quotes for symbol data with related news. Choose one target per run.

##### Can I collect articles and stock quotes in one run?

No. Choose one target for each run and fill only its matching fields.

##### Does the article limit apply to stock quotes?

No. `maxItems` caps saved articles for article targets. Leave it empty to return all available articles until the source is exhausted. It does not limit stock quotes.

##### What happens when an article has missing details?

The Actor keeps useful article data when optional fields such as the author, image, or update time are missing. Those fields can be `null`, and optional arrays can be empty.

##### What happens when the same article appears more than once?

The Actor saves the first eligible match and skips later copies of that article.

##### Does it collect live charts or historical prices?

No. It collects MarketWatch articles and stock quote fields. It does not provide historical prices, company fundamentals, or live charts.

##### Does it need a MarketWatch login?

No. It collects publicly reachable MarketWatch data and does not bypass paywalls or access controls.

##### Can I download the data in other formats?

Yes. Apify datasets support JSON, CSV, Excel, XML, and other available formats.

### 📝 Changelog

**1.0: Stock quotes and streamlined MarketWatch research**

- Collect stock quotes with related MarketWatch news alongside article results.
- Use one search page URL and follow subsequent result pages automatically.
- Identify article and stock quote rows by their result type.

**v0.0**

- Collect MarketWatch articles from editorial sections, search pages, and direct story URLs.
- Export article text, metadata, images, keywords, and stock tickers.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~marketwatch/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Related Actors

- [Morningstar Scraper](https://apify.com/maximedupre/morningstar-scraper): Compare MarketWatch articles with public stock, fund, and ETF research.
- [SEC 13F Manager Quarterly Report Scraper](https://apify.com/maximedupre/sec-13f-manager-quarterly-report-scraper): Review manager holdings beside company news.
- [Stocktwits Scraper](https://apify.com/maximedupre/stocktwits-scraper): Add public ticker messages and sentiment for another view of market talk.
- [Barchart](https://apify.com/maximedupre/barchart): Compare MarketWatch stories with financial news and options snapshots.
- [OpenInsider](https://apify.com/maximedupre/openinsider): Review public SEC Form 4 trades beside company news.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `target` (type: `string`):

Choose whether to collect MarketWatch articles or stock quotes.

## `sectionUrls` (type: `array`):

Add MarketWatch section URLs when target is Editorial sections, for example `https://www.marketwatch.com/latest-news`.

## `searchPageUrl` (type: `string`):

Enter one MarketWatch search results URL. The Actor follows later pages until it reaches the article limit or finds no more results.

## `storyUrls` (type: `array`):

Add MarketWatch article URLs when target is Direct story URLs.

## `stockSymbols` (type: `array`):

Add one or more stock symbols, such as `AAPL`, for MarketWatch quote data and related news.

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

Stop after saving this many articles for article targets. Leave it empty to return all available articles until the source is exhausted. This does not limit stock quotes.

## Actor input object example

```json
{
  "target": "sections",
  "sectionUrls": [
    {
      "url": "https://www.marketwatch.com/latest-news"
    }
  ],
  "maxItems": 1
}
```

# Actor output Schema

## `results` (type: `string`):

Open the dataset with saved articles and stock quotes.

# 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 = {
    "target": "sections",
    "sectionUrls": [
        {
            "url": "https://www.marketwatch.com/latest-news"
        }
    ],
    "maxItems": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/marketwatch").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 = {
    "target": "sections",
    "sectionUrls": [{ "url": "https://www.marketwatch.com/latest-news" }],
    "maxItems": 1,
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/marketwatch").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "target": "sections",
  "sectionUrls": [
    {
      "url": "https://www.marketwatch.com/latest-news"
    }
  ],
  "maxItems": 1
}' |
apify call maximedupre/marketwatch --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,maximedupre/marketwatch"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/5MIf4y6ewpCnZa3vY/builds/19XHJJOPwUeNfjIYz/openapi.json
