RSS to Agentic Summary Digest avatar

RSS to Agentic Summary Digest

Pricing

Pay per usage

Go to Apify Store
RSS to Agentic Summary Digest

RSS to Agentic Summary Digest

Fetches RSS feeds, analyzes content with AI summaries, and generates a structured digest.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

CQ

CQ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

RSS to Summary Digest

Fetches one or more RSS / Atom feeds, extracts each item, and produces a concise summary per item as a structured dataset.

How it works

  1. Fetches each feed URL (follows redirects, 30s default timeout, browser-like User-Agent).
  2. Parses RSS 2.0, Atom, and RDF feeds with a tolerant XML parser.
  3. For each item it produces a summary using one of two methods:
    • Extractive (default, free): a deterministic, dependency-free summarizer that selects the leading sentences of the item content. No API key and no paid LLM calls — the only network requests are the RSS/Atom feed fetches themselves.
    • LLM (optional): if you supply an OpenAI-compatible API key, summaries are generated by a chat model (default gpt-4o-mini).

The default run requires no API key and makes no paid LLM calls — it returns real summaries from the built-in extractive summarizer (the actor still fetches the RSS feeds you provide over the network).

Usage example

Minimal input (free extractive mode, no API key):

{
"rssUrls": ["https://rss.nytimes.com/services/xml/rss/nyt/Technology.xml"],
"summaryLength": "medium",
"maxItemsPerFeed": 10
}

With LLM summaries (supply an OpenAI-compatible key as a secret input, or set the OPENAI_API_KEY environment variable):

{
"rssUrls": ["https://feeds.arstechnica.com/arstechnica/index"],
"summaryLength": "short",
"maxItemsPerFeed": 5,
"openaiApiKey": "sk-...",
"model": "gpt-4o-mini",
"openaiBaseUrl": "https://api.openai.com/v1"
}

Input

FieldTypeDefaultNotes
rssUrlsstring[]NYT Technology feedRSS/Atom feed URLs (http/https).
summaryLengthenummediumshort (1 sentence), medium (3), long (6).
maxItemsPerFeedinteger10Cap per feed (1–100). Controls cost/time.
openaiApiKeystring (secret)Optional. Enables LLM summaries. Can also use the OPENAI_API_KEY env var.
modelstringgpt-4o-miniLLM model (when key is set).
openaiBaseUrlstringhttps://api.openai.com/v1OpenAI-compatible base URL.
requestTimeoutSecsinteger30Per-request timeout (1–120).

Output

Each dataset record:

{
"feedUrl": "https://rss.nytimes.com/services/xml/rss/nyt/Technology.xml",
"feedTitle": "NYT > Technology",
"title": "Article title",
"link": "https://www.nytimes.com/...",
"pubDate": "Fri, 20 Jun 2026 12:00:00 +0000",
"summary": "Concise summary text.",
"summaryLength": "medium",
"summaryMethod": "extractive",
"scrapedAt": "2026-06-20T12:00:00.000Z"
}

summaryMethod is one of extractive, llm:<model>, or extractive (llm-fallback) (used when an LLM call fails so the run still produces output).

Cost & reliability notes

  • Without an API key there is no LLM cost.
  • With an API key, cost scales with feeds × maxItemsPerFeed. Keep maxItemsPerFeed low to bound spend.
  • Feeds that fail to fetch, are empty, or are malformed are skipped with a warning; the run continues with the remaining feeds.
  • If an LLM call fails (rate limit, bad key, timeout) the item falls back to the extractive summary instead of crashing the run.

Limitations

  • The extractive summarizer selects the leading sentence(s) of each item's content; it does not paraphrase or abstract. Summary quality depends on the feed providing usable content:encoded/description text (some feeds give only titles, in which case the summary is derived from the title).
  • LLM summaries require your own OpenAI-compatible API key; cost and rate limits are governed by your provider, not this actor.
  • If every supplied feed fails to fetch/parse or has no items, the run reports a warning and pushes 0 records. If no valid http(s) feed URL is supplied at all, the run fails cleanly with an explanatory message.
  • maxItemsPerFeed is capped at 100 and requestTimeoutSecs at 120, regardless of higher values passed.