A complete rewrite.
- Full post text as HTML, plain text and Markdown, with
isPaywalled / isTruncated flags for paid posts.
- The whole archive, not just the latest ~20 posts (
maxPostsPerPublication).
- Any input: publication URLs, custom domains, subdomain names, single post URLs and
@author handles.
- Filters: date range (absolute or relative), free or paid, post type, keyword search, newest or most popular first.
- One row per post (previously one row per substack with a nested
posts array), with publication data such as subscriber counts on every row.
- Error rows (
"type": "error") explain any input that couldn't be scraped, instead of the run silently returning nothing.
- Faster and more reliable: plain HTTP instead of a headless browser, with automatic pacing when Substack rate-limits.
Breaking change: the output format changed (see above). The old substacks input field still works.
The original version: a profile and the latest ~20 posts per substack (title, date, stats, preview), without post text.