How to Monitor Many RSS and Atom News Feeds in One Run and Export New Items to a Spreadsheet

Tracking competitor blogs, industry news and press releases by hand means opening a dozen sites every morning. Almost all of them publish an RSS or Atom feed. The NanoScrape RSS Feed Reader on Apify reads many feeds in one run, returns one row per article with title, link, date, author, summary, image and categories, and lets you download the result as CSV or Excel. We ran it on 14 public AI and data blogs: 234 items in about three seconds for $0.029.

Difficulty: Beginner
Time: 5 minutes
Cost: $0.001 per run plus $0.002 per feed; no charge per item
Tools: Apify, NanoScrape RSS Feed Reader
Open the RSS Feed Reader on Apify See pricing details

In this tutorial

  1. What you get
  2. Prerequisites
  3. Step 1: Collect the feed URLs
  4. Step 2: Configure the run
  5. Step 3: Run and export
  6. Run it on a schedule
  7. Connect to AI agents via MCP
  8. Copy-paste prompt for Claude
  9. Example: industry news
  10. Key output fields
  11. What it costs
  12. FAQ

What you get

The NanoScrape RSS Feed Reader takes a list of feed URLs and returns structured records. It detects RSS 2.0, Atom 1.0 and JSON Feed automatically, so you can mix them in one run. For every article you get the title, link, publication date, author, summary, categories, featured image and, when the feed ships it, the full HTML body. It also adds one summary row per feed with the item count and the newest and oldest dates, and a failed feed does not stop the others.

It reads the feed file only. It does not open the article pages, so what you get is what each publisher puts into its feed.

Prerequisites

STEP 1

Collect the feed URLs

  1. List the sources you care about: competitor blogs, industry news sites, vendor release notes, press-release pages.
  2. Open each feed URL in a browser once. You should see XML or JSON text, not a login page.
  3. Skip sources whose feed returns an error. In our test, four candidate feeds were not usable from a plain request (two returned 404, one 403, one 429), so we swapped them for other blogs before the run.
STEP 2

Configure the run

Open the actor on Apify, click Try for free and fill the input form. The same input as JSON:

{
  "feedUrls": [
    "https://blog.apify.com/rss/",
    "https://hnrss.org/frontpage"
  ],
  "maxItemsPerFeed": 30,
  "includeContent": true,
  "filterByDate": "2026-10-14"
}
STEP 3

Run and export

  1. Click Start. A run with 14 feeds finished in about three seconds on our machine.
  2. Open the Dataset tab. Each article has type set to feed_item; each feed has one feed_summary row.
  3. Filter to feed_item and use Export to download CSV or Excel for Google Sheets or Excel. JSON and XML are also available.
Use item_guid or item_link as the unique key in your spreadsheet. The same article shows up again on the next run, and this is how you spot rows you already have.

Run it on a schedule

In Apify Console open the actor and choose Schedules, then pick daily or hourly. Set filterByDate to the day of your last run so you only receive new items. The actor keeps no memory between runs, so the date filter and the item key above are how you avoid duplicates. Send the dataset on to Google Sheets, a webhook or the Apify API to append new rows automatically.

Connect to AI agents via MCP

The actor is available as an MCP (Model Context Protocol) tool. Paste this server URL into an MCP-compatible client such as Claude Desktop, Claude.ai, Cursor or VS Code:

https://mcp.apify.com?tools=santamaria-automations/rss-feed-reader

Then ask in plain English, for example "Read these five competitor blog feeds and list everything published this week."

Copy-paste prompt for Claude

With the MCP server connected, this prompt asks Claude to tell you the cost first and wait for your OK. Replace the feed URLs with your own.

Use the Apify MCP server. Run the actor santamaria-automations/rss-feed-reader with the feed URLs https://blog.apify.com/rss/ and https://openai.com/news/rss.xml, maxItemsPerFeed 20.
Before you start the run, tell me what it will cost and wait for my OK.
When it's done, give me a table with feed, title, link and publication date for items from the last 7 days, newest first.

Example: industry news

14 AI and data blogs: 234 items, 156 from the last 7 days

Situation: you follow the AI and data industry and want one table of what the main vendors and news sites published this week, instead of opening 14 sites.

We read 14 public feeds (company engineering blogs and AI sections of tech news sites), at most 30 items per feed, full text on. It was our own local test run on 2026-10-21, from a normal home connection, with no proxy. The week is the 7 days before the run, from 2026-10-14 15:07 UTC. Sources are named by their web host because several feeds call themselves just "AI".

Cost: 1 run start at $0.001 plus 14 feeds at $0.002 = $0.029 on the Free plan. The 234 articles cost nothing extra.

Show the per-source counts

The exact input:

{
  "feedUrls": [
    "https://blog.apify.com/rss/",
    "https://openai.com/news/rss.xml",
    "https://huggingface.co/blog/feed.xml",
    "https://www.databricks.com/feed",
    "https://aws.amazon.com/blogs/machine-learning/feed/",
    "https://blog.google/technology/ai/rss/",
    "https://engineering.fb.com/feed/",
    "https://netflixtechblog.com/feed",
    "https://blog.cloudflare.com/rss/",
    "https://github.blog/feed/",
    "https://towardsdatascience.com/feed",
    "https://techcrunch.com/category/artificial-intelligence/feed/",
    "https://www.technologyreview.com/topic/artificial-intelligence/feed",
    "https://www.theverge.com/rss/ai-artificial-intelligence/index.xml"
  ],
  "maxItemsPerFeed": 30,
  "includeContent": true,
  "fetchTimeoutSeconds": 30
}

Claude prompt (set up the MCP server as in Connect to AI agents via MCP):

Use the Apify MCP server. Run the actor santamaria-automations/rss-feed-reader with these 14 feed URLs: https://blog.apify.com/rss/, https://openai.com/news/rss.xml, https://huggingface.co/blog/feed.xml, https://www.databricks.com/feed, https://aws.amazon.com/blogs/machine-learning/feed/, https://blog.google/technology/ai/rss/, https://engineering.fb.com/feed/, https://netflixtechblog.com/feed, https://blog.cloudflare.com/rss/, https://github.blog/feed/, https://towardsdatascience.com/feed, https://techcrunch.com/category/artificial-intelligence/feed/, https://www.technologyreview.com/topic/artificial-intelligence/feed, https://www.theverge.com/rss/ai-artificial-intelligence/index.xml. Set maxItemsPerFeed to 30 and includeContent to true.
Before you start the run, tell me what it will cost and wait for my OK.
When it's done, ignore the feed_summary rows and use only the feed_item rows. Give me a table with one row per feed: the feed host, the number of items, and the number published in the last 7 days. Then tell me how many items have item_content and how many have item_image, as counts and percentages, and name the feeds that never include full text. Finally list the 10 newest items with feed, title, link and publication date.

Do the 7-day count in the spreadsheet or in Claude after the run, as above. If you only ever want the last week, set filterByDate in the input instead and the actor skips older items.

Key output fields

What it costs

The actor uses pay-per-event billing on Apify:

Examples at these prices: 14 feeds in one run cost $0.029; the same run once a day for 30 days costs $0.87. A run with 100 feeds costs $0.201.

Compliance note. Feeds are published for syndication, but article text and images are still protected by copyright. Use the data for monitoring, research and internal summaries, check each publisher's terms before you republish content, and link back to the source. Author names in feeds are personal data under GDPR; do not build profiles of individuals from them.

FAQ

Does the actor fetch the full article text from the article page?

No. It reads what the feed itself contains. Some feeds ship the full article in the item body, others only a one-paragraph summary. In our run of 14 feeds, 8 included full text in every item and 6 included none. For the missing ones you would pass the item_link URLs to a page extractor in a second step.

How do I get only new items on each scheduled run?

Set filterByDate to an ISO date, for example 2026-10-14 or 2026-10-14T00:00:00Z, and update it to the date of your last run. Items older than that date are skipped. The actor does not remember earlier runs on its own, so keep item_guid or item_link in your spreadsheet and drop rows you already have.

What does it cost to read 14 feeds?

One run costs $0.001 for the start plus $0.002 per feed that was parsed successfully, so 14 feeds cost $0.029. There is no charge per item. Feeds that fail to load are not charged. These are the Apify Free-plan prices on the Store page.

Which feed formats does it read?

RSS 2.0, Atom 1.0 and JSON Feed 1.0 and 1.1. The format is detected automatically, so you can mix them in one feedUrls list, and the feed_type field tells you which one each feed was.

Is there a limit on items per feed?

maxItemsPerFeed caps how many items are read from each feed, starting from the top of the feed. The cap is applied before the date filter, so with a low cap and filterByDate you only look at the newest items. Most blog feeds list only 10 to 30 items anyway.

Can I schedule it?

Yes. In Apify Console open the actor, choose Schedules and pick an interval such as daily or hourly. Connect the dataset to Google Sheets, a webhook or the Apify API to push new rows to your spreadsheet.

Related resources

Open the RSS Feed Reader on Apify Browse all actors