Substack New-Post Monitor avatar

Substack New-Post Monitor

Under maintenance

Pricing

from $2.00 / 1,000 new posts

Go to Apify Store
Substack New-Post Monitor

Substack New-Post Monitor

Under maintenance

Watch your favorite Substack newsletters and get alerted only when something new is published. Built-in cross-run dedup means scheduled re-runs push nothing and cost ~nothing when nothing changed. Pay only per new post detected.

Pricing

from $2.00 / 1,000 new posts

Rating

0.0

(0)

Developer

Delta Tools

Delta Tools

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Watches your favorite Substack newsletters and reports only genuinely new posts. Schedule it daily or hourly: runs where nothing new was published push zero rows and cost nothing beyond the Actor start — you pay per new post detected, never per scan.

How it works

  1. For each publication you configure, the Actor fetches the latest public posts from Substack's public API (/api/v1/archive) — no auth, no key, no proxy.
  2. It compares them against a saved snapshot in a named key-value store (substack-monitor-state), namespaced per stateKey, so separate monitors never share or clobber baselines.
  3. Posts it has never seen are pushed to the dataset and billed once each (new-substack-post event). Everything else — including scheduled re-runs with zero new posts — pushes nothing and bills nothing.
  4. Only public post metadata is read (title, subtitle, public excerpt, published date, author, URL, audience). For paywalled posts the Actor sets paywalled: true and reports the public metadata only — it never attempts to read paid content.

Input

{
"publications": [
{ "url": "https://platformer.substack.com", "maxPosts": 10 },
{ "url": "https://astralcodexten.substack.com", "maxPosts": 20 }
],
"stateKey": "default",
"reportInitialAsNew": true
}
  • publications — one entry per newsletter. Use the publication's substack.com URL, e.g. https://platformer.substack.com. Custom-domain publications serve their public API on the underlying substack.com URL, so use that instead.
  • stateKey — namespace for the snapshot. Change it to start a fresh baseline. The prefilled default key rotates daily so the free trial always shows recent posts; use your own key for persistent monitoring.
  • reportInitialAsNew — first run reports everything as new (builds the baseline while reporting); turn off to silently establish the baseline.

Output (dataset)

One row per genuinely new post:

fieldmeaning
publicationName, publicationUrlwhich newsletter
postIdstable Substack post id (dedup key)
title, subtitle, excerptpublic metadata
urlcanonical post URL
publishedDateISO timestamp
author, authorHandlebyline
postTypee.g. newsletter, podcast
paywalledtrue when audience is not everyone (public metadata only)
detectedAtwhen this Actor first saw it

A run receipt (substack-monitor-state → state-v1-<stateKey>-last-receipt) records per-publication status, fetch counts, and errors for auditing.

Pricing (pay-per-event)

  • Actor start: $0.001 (tiered: Bronze $0.0009, Silver $0.0008, Gold/Platinum/Diamond $0.0007)
  • New post detected: $0.0025 (tiered: Bronze $0.0023, Silver $0.0021, Gold/Platinum/Diamond $0.0020)

Storefront shows "from $2.00 / 1,000 new posts". Compare with one-shot scrapers: a daily scheduled one-shot re-run bills per scanned post every day; this monitor bills only when there is genuinely something new — a quiet week costs ~$0.007.

A daily monitor that finds 3 new posts in a week costs roughly 7 × $0.001 + 3 × $0.0025 = $0.0145. Runs that find nothing cost just the start event. (All prices are the FREE-tier event price; Apify's tiered discounts apply at higher plans.)

Limits & honesty

  • Public API only. If Substack removes or gates an endpoint, affected publications report status: "error" in the run receipt instead of failing the run.
  • Invalid URLs and nonexistent publications are reported per-publication with a clear message; the rest of the run continues.