Scrape Substack publications, posts, and search
scrape_substackRead Substack publications and posts, or search by keyword to collect publication details, subscriber counts, paid plan prices, and per-post metrics such as likes and comments.
Instructions
Read Substack publications and posts, or search Substack by keyword. Give publications as URLs, domains, substack.com profiles, or bare Substack names (for example lenny.substack.com, https://www.notboring.co, lenny). Each publication returns one publication row (name, author, subscriber count as Substack shows it, subscriber tier text, paid plan prices) and its newest posts, one row each with date, free or paid audience, likes, comments, restacks, word count, bylines, and tags. Search queries return matching posts with their publication and subscriber count, or one row per publication when search_output is publications. Input with nothing to run returns one free row whose error_reason starts with input_invalid:. A run that does not succeed is returned as an error with its run ID. Read-only; requires an APIFY_TOKEN; Apify charges per post row and per publication row.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| proxy_mode | No | How pages are fetched. Default auto. | |
| since_days | No | Optional. Skip posts older than this many days. 0 or empty keeps every post up to the max. Default 0. | |
| include_body | No | true to add the post text (up to 20,000 characters) to each post row of a listed publication. A paid post gives its free preview. Reads one more page per post; no extra charge. Default false. | |
| publications | No | Substack publications, one per line, up to 100: a URL (https://www.lennysnewsletter.com), a domain (lenny.substack.com), a profile (substack.com/@lenny), or a bare Substack name (lenny). Each one returns a publication row and its newest posts. | |
| search_output | No | What a search query returns. Default posts. | |
| max_charge_usd | No | Optional. The run stops before it would charge more than this. | |
| search_queries | No | Keywords to search across Substack posts, one per line, up to 20. Each query returns matching posts, or the publications behind them when Search output is publications. | |
| max_search_results | No | Rows returned per search query, 1 to 1000. Default 50. | |
| include_publication_row | No | true to return one publication row per listed publication (name, author, subscribers, paid plan prices), billed as a publication row. false returns only post rows. Default true. | |
| max_posts_per_publication | No | Newest posts returned per publication, 0 to 1000. 0 returns only the publication row. Default 20. |