# Economic News Aggregator (`amdcode/economic-news-scraper`) Actor

Aggregates international economic and financial news from multiple trusted RSS feeds (BBC, The Guardian, CNBC, MarketWatch, Investing.com) into a single structured dataset.

- **URL**: https://apify.com/amdcode/economic-news-scraper.md
- **Developed by:** [Amos Dorceus](https://apify.com/amdcode) (community)
- **Categories:** News, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.20 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

**Economic News Aggregator** collects the latest **economic and financial news** from multiple trusted international sources — including BBC Business, The Guardian Economics, CNBC Economy, MarketWatch, and Investing.com — and returns them as a single, clean, structured dataset. Instead of visiting five different news sites and copy-pasting headlines, you get one API call that returns normalized, deduplicated articles ready to plug into a dashboard, a newsletter, a trading signal pipeline, or a research workflow. Try it directly from the [Input tab](https://apify.com) with the default sources, or point it at your own list of RSS feeds.

Running on the [Apify platform](https://apify.com) gives you programmatic API access, scheduling (e.g. run every hour to catch breaking news), integrations with Zapier/Make/Slack, automatic proxy handling if you add more sources later, and full run monitoring — without maintaining any scraping infrastructure yourself.

### Why use Economic News Aggregator?

- **Market monitoring** — feed fresh economic headlines into a trading dashboard or algorithm without building and maintaining your own RSS parsers.
- **Newsletters & content curation** — automatically pull the day's top economic stories for a daily digest.
- **Research & sentiment analysis** — collect a normalized stream of financial news text for NLP or sentiment models.
- **Competitive/media monitoring** — track how multiple outlets are covering a specific economic topic (inflation, interest rates, a named company) using the keyword filter.
- **No maintenance overhead** — RSS feeds are structured and stable by design, so this Actor is far less likely to break than a scraper depending on a website's HTML layout.

### How to use Economic News Aggregator

1. Click **Try for free** (or **Start**) on the Actor page.
2. Keep the default list of 5 RSS feeds, or replace it with your own feeds in the **RSS feed URLs** field.
3. Optionally set **Keywords filter** to only keep articles matching specific topics (e.g. `inflation`, `interest rate`, `Federal Reserve`).
4. Optionally set **Max article age (hours)** if you plan to run the Actor on a schedule and only want fresh news each time.
5. Click **Start** and wait for the run to finish.
6. Open the **Dataset** tab to view, filter, and export the results.

### Input

The Actor accepts a JSON input with the following fields (see the **Input** tab for the full form):

| Field | Type | Description |
|---|---|---|
| `feedUrls` | array of strings | RSS feeds to aggregate. Defaults to 5 major economic/financial news feeds. |
| `maxItemsPerFeed` | integer | Maximum number of articles to keep per feed (default: 50). |
| `keywords` | array of strings | Only keep articles whose title or summary contains one of these words. Leave empty to keep everything. |
| `maxAgeHours` | integer | Only keep articles published in the last N hours. `0` disables the filter (default). |

Example input:

```json
{
  "feedUrls": [
    "http://feeds.bbci.co.uk/news/business/rss.xml",
    "https://www.cnbc.com/id/20910258/device/rss/rss.html"
  ],
  "maxItemsPerFeed": 50,
  "keywords": ["inflation", "interest rate"],
  "maxAgeHours": 24
}
```

### Output

Each dataset item is one news article:

```json
{
  "title": "U.S. job creation cools in June with payrolls growth of just 57,000",
  "link": "https://www.cnbc.com/2026/07/02/job-seekers...",
  "source": "Economy",
  "publishedAt": "2026-07-02T18:31:00+00:00",
  "summary": "Job creation slowed sharply in June as the unemployment rate ticked up...",
  "author": null,
  "guid": "https://www.cnbc.com/2026/07/02/job-seekers..."
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

#### Data fields

| Field | Description |
|---|---|
| title | Article headline |
| link | URL to the full article |
| source | Name of the publishing outlet/feed |
| publishedAt | Publication date/time in ISO 8601 (UTC) |
| summary | Short description/excerpt, HTML tags stripped |
| author | Author name, if provided by the feed |
| guid | Unique identifier used for deduplication |

### Pricing / Cost estimation

This Actor performs lightweight HTTP requests to RSS feeds (no browser, no heavy compute), so runs are fast and cheap — typically a few seconds per run for the default 5 feeds. Actual cost depends on the pricing model configured on the Actor page (e.g. pay-per-result or pay-per-usage); check the **Pricing** tab for exact rates. A free tier is available for new Apify accounts to try the Actor before committing.

### Tips or advanced options

- Add or remove feeds in `feedUrls` to focus on the outlets that matter to you — any standard RSS 2.0 feed should work.
- Combine `keywords` with a scheduled run (e.g. hourly) and `maxAgeHours` to build a near real-time alert pipeline on a specific topic.
- If a feed occasionally returns an error (rate limiting, temporary outage, or an anti-bot block), the Actor logs a warning and continues with the remaining feeds — a single broken source never fails the whole run.

### FAQ, disclaimers, and support

This Actor only reads publicly available RSS feeds, which are explicitly published by news outlets for automated syndication. It does not scrape paywalled or login-protected content. Content and formatting are controlled by the source publishers and may change without notice; some publishers may occasionally block automated requests (see run logs for skipped feeds). Always respect the terms of use of any additional feed you add. If you have suggestions, run into an issue, or need a custom version of this Actor (e.g. additional sources, sentiment scoring, or webhook alerts), open an issue in the Actor's **Issues** tab.

# Actor input Schema

## `feedUrls` (type: `array`):

RSS feeds to aggregate economic/financial news from

## `maxItemsPerFeed` (type: `integer`):

Maximum number of articles to keep from each RSS feed

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

Only keep articles whose title or summary contains at least one of these keywords (case-insensitive). Leave empty to keep everything.

## `maxAgeHours` (type: `integer`):

Only keep articles published within the last N hours. 0 means no age filter.

## Actor input object example

```json
{
  "feedUrls": [
    "http://feeds.bbci.co.uk/news/business/rss.xml",
    "https://www.theguardian.com/business/economics/rss",
    "https://www.cnbc.com/id/20910258/device/rss/rss.html",
    "https://feeds.content.dowjones.io/public/rss/mw_topstories",
    "https://www.investing.com/rss/news_25.rss"
  ],
  "maxItemsPerFeed": 50,
  "keywords": [],
  "maxAgeHours": 0
}
```

# Actor output Schema

## `results` (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 = {
    "feedUrls": [
        "http://feeds.bbci.co.uk/news/business/rss.xml",
        "https://www.theguardian.com/business/economics/rss",
        "https://www.cnbc.com/id/20910258/device/rss/rss.html",
        "https://feeds.content.dowjones.io/public/rss/mw_topstories",
        "https://www.investing.com/rss/news_25.rss"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("amdcode/economic-news-scraper").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 = { "feedUrls": [
        "http://feeds.bbci.co.uk/news/business/rss.xml",
        "https://www.theguardian.com/business/economics/rss",
        "https://www.cnbc.com/id/20910258/device/rss/rss.html",
        "https://feeds.content.dowjones.io/public/rss/mw_topstories",
        "https://www.investing.com/rss/news_25.rss",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("amdcode/economic-news-scraper").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 '{
  "feedUrls": [
    "http://feeds.bbci.co.uk/news/business/rss.xml",
    "https://www.theguardian.com/business/economics/rss",
    "https://www.cnbc.com/id/20910258/device/rss/rss.html",
    "https://feeds.content.dowjones.io/public/rss/mw_topstories",
    "https://www.investing.com/rss/news_25.rss"
  ]
}' |
apify call amdcode/economic-news-scraper --silent --output-dataset

```

## MCP server setup

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

```

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/PfxACBon0VmA7agjX/builds/URZ5uXujjO0R7nfDz/openapi.json
