Substack RSS Feed Extractor & Newsletter Monitor avatar

Substack RSS Feed Extractor & Newsletter Monitor

Pricing

from $1.40 / 1,000 substack posts

Go to Apify Store
Substack RSS Feed Extractor & Newsletter Monitor

Substack RSS Feed Extractor & Newsletter Monitor

Extract structured newsletter posts from official public Substack RSS feeds without browser scraping. Users are responsible for lawful access and downstream use.

Pricing

from $1.40 / 1,000 substack posts

Rating

0.0

(0)

Developer

Tugelbay Konabayev

Tugelbay Konabayev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Substack RSS feed extractor for public newsletters: submit authorized publication feeds and receive post URL, title, author, categories, summary, content, media metadata, status, and publishedAt as structured JSON for monitoring and research.

This Actor intentionally reads the RSS interface that Substack documents for public publications. It does not crawl publication pages, discover feeds, use a private API, access paywalled content, collect comments or Notes, or bypass access controls. You provide the feeds you are authorized to process.

Why use it and features

  • Accepts up to 50 official https://publication.substack.com/feed URLs per run.
  • Parses RSS publication metadata and public post fields.
  • Returns title, canonical URL, GUID, publication date, author, categories, summary, content text, image metadata, and podcast enclosure metadata when present.
  • Deduplicates posts by canonical URL or GUID.
  • Filters posts with an optional publishedAfter ISO 8601 date-time.
  • Limits results per feed and caps large content fields.
  • Processes feeds sequentially with configurable polite pacing.
  • Retries rate limits and temporary server errors with bounded backoff.
  • Stops after 3 redirect hops, 20 total retries, or 540 seconds per run.
  • Produces visible feedError dataset rows for HTTP, network, or XML failures.
  • Uses no browser and no proxy by default, keeping runs fast and inexpensive.

Input

FieldTypeDefaultDescription
feedUrlsarrayrequiredOfficial public Substack RSS URLs in request-list format.
maxItemsPerFeedinteger20Newest matching items returned per feed, from 1 to 100.
publishedAfterstringemptyOptional ISO 8601 cutoff date-time.
includeContentHtmlbooleanfalseInclude the HTML supplied in the RSS item.
maxContentCharsinteger5000Character cap for content text and optional HTML.
requestDelaySecsnumber1Delay between sequential feed requests.

Example input:

{
"feedUrls": [
{ "url": "https://thedatacollector.substack.com/feed" }
],
"maxItemsPerFeed": 10,
"publishedAfter": "2026-07-01T00:00:00Z",
"includeContentHtml": false
}

Output data fields

Each successful dataset row represents one public RSS post:

{
"recordType": "post",
"feedUrl": "https://publication.substack.com/feed",
"publicationTitle": "Publication name",
"publicationUrl": "https://publication.substack.com",
"postTitle": "Post title",
"postUrl": "https://publication.substack.com/p/post-slug",
"guid": "https://publication.substack.com/p/post-slug",
"publishedAt": "2026-07-13T10:00:00Z",
"author": "Author name",
"categories": ["AI", "Data"],
"summary": "Plain-text summary",
"contentText": "Plain-text RSS content",
"status": "ok"
}

If a feed is unavailable or malformed, the Actor stores a diagnostic-style row with recordType: "feedError", the feed URL, and a concise error. Successful posts use the substack-post pay-per-event name; feedError records and Actor starts do not emit a billable event. The OUTPUT key-value-store record summarizes feeds, posts, errors, downloaded bytes, retries, 429 responses, billable event count, and runtime.

Pricing

Billing deduplication is scoped to a single feed response in a single run. Re-running the same feed can emit and charge for the same posts again. The FREE-tier list price is $2 per 1,000 successful posts ($0.002 per substack-post event). The hard maximum is 5,000 billable post events per run (50 feeds × 100 posts), so the maximum list-price result charge for one run is $10. Store tier discounts can only reduce that amount. Failed feeds and Actor starts do not emit a billable event.

How to run and use the feed extractor

  1. Start with one authorized public publication.substack.com/feed URL and a small item limit.
  2. Inspect canonical post URLs, publishedAt, content fields, and any explicit feedError row.
  3. Schedule only the validated feed and persist the last successful cutoff in your own workflow.

Use the Actor from Apify Console, API, schedules, webhooks, Make, Zapier, or any integration that consumes the default dataset. For monitoring, schedule periodic runs and set publishedAfter to the previous successful checkpoint in your own workflow. RSS feeds normally expose only a recent window, so this Actor is not a historical archive.

Substack RSS comparison

RouteBest forTrade-off
This ActorBounded multi-feed JSON in Apify datasets, schedules, webhooks, and integrationsOnly the public RSS window and fields are available
Direct RSS clientOne feed inside your own applicationYou maintain retries, XML normalization, storage, and run summaries
Page scraper/private APIFields absent from RSSOutside this Actor's safety boundary; paywalls and access controls must not be bypassed

Use the direct feed when your application already owns the ingestion stack. Use this Actor when Apify orchestration and normalized error rows remove maintenance.

FAQ

Does this read paid or subscriber-only posts?

No. It returns only content present in the public RSS response and does not access subscriber sessions or paywalls.

Can it discover a publication feed for me?

No. You provide direct authorized Substack publication feed URLs; unrestricted URL fetching is intentionally rejected.

Can the same post be billed again?

Yes. Deduplication is run-local. Re-running the same feed can return and bill the same public post again.

Validation evidence and Substack terms (2026-07-14)

Validation on 2026-07-14 preserves the RSS-only boundary:

  • Substack's current Terms of Use and Privacy Policy remain authoritative.
  • Results retain feed/post URLs, GUID, status, and publishedAt; unavailable or malformed feeds produce explicit non-billable feedError rows.
  • Strict Actor QA validates URL restrictions, schemas, bounded retries, links, metadata, Docker configuration, and the substack-post PPE event before release.
  • Only feeds you are authorized to process should be submitted; copyright, privacy, and republication obligations remain with the user.

This evidence does not guarantee feed availability, historical completeness, subscriber content, rankings, traffic, or AI citations.

Limits and responsible use

Only direct Substack publication subdomains are accepted in this first release. Custom-domain feeds are intentionally rejected because an unrestricted URL fetcher would introduce server-side request forgery risk. The Actor cannot return content absent from the public RSS response, recover deleted posts, access subscriber-only pages, or guarantee that every publication exposes the same fields.

Respect publishers' rights, applicable law, Substack terms, and reasonable request frequency. Do not use the output for spam, unauthorized republication, personal-data enrichment, or attempts to evade access restrictions.

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Substack. Substack is a third-party service, so feed availability and behavior can change without notice. Only submit feeds you are authorized to access and process. RSS output can contain third-party copyrighted material; you are responsible for ensuring that storage, analysis, republication, and other downstream use is lawful and authorized.

The Actor stops a feed after bounded retries and reports 429 responses in OUTPUT. Operational policy: if 429 responses affect 20% or more of feed requests in monitored public runs, pause public traffic and review the integration rather than adding proxies or increasing retries. Sustained Substack blocking is a stop condition, not a signal to bypass controls.

Support

When reporting an issue, include the public feed URL, sanitized Actor input, run ID, and the error message. Never send account credentials, cookies, or private publication data.