{"uid":"cap_QFHq7PV5N0xZoQ5KmI0me","slug":"substack-post-newsletter-scraper-a91d4114","name":"Substack Post & Newsletter Scraper","description":"Pay-per-call structured web data. Failed or empty runs are not charged.","url":"https://api.scrapeforagents.tech/v1/substack?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"urls":{"type":"array","default":[],"description":"Publication homepages, archive pages, custom domains, or individual public post URLs."},"endDate":{"type":"string","description":"Include posts on or before this publication date in YYYY-MM-DD format."},"keywords":{"type":"array","default":[],"description":"Search public posts across Substack by topic. You may combine keywords with URLs."},"maxItems":{"type":"integer","default":0,"minimum":0,"description":"Hard cap across all URLs and keywords. Set 0 for no total cap."},"onlyFree":{"type":"boolean","default":false,"description":"Exclude posts whose full content requires a subscription."},"startDate":{"type":"string","description":"Include posts on or after this publication date in YYYY-MM-DD format."},"contentType":{"enum":["all","newsletter","podcast","thread"],"type":"string","default":"all","description":"Only return the selected post type, or all public types."},"includeContent":{"type":"boolean","default":true,"description":"Fetch post detail and include the full HTML body when it is publicly available. Paid posts retain metadata and a public preview only."},"includeComments":{"type":"boolean","default":false,"description":"Fetch public comments and nested replies for each post."},"maxCommentsPerPost":{"type":"integer","default":20,"minimum":0,"description":"Maximum public comments including nested replies per post. Set 0 for all comments returned by the public endpoint."},"maxPostsPerNewsletter":{"type":"integer","default":100,"minimum":0,"description":"Maximum output posts from each publication URL. Set 0 to continue until the public archive ends."},"includePublicationInfo":{"type":"boolean","default":true,"description":"Include public subscriber count, description, and publication author when available."},"maxSearchResultsPerKeyword":{"type":"integer","default":20,"maximum":100,"minimum":1,"description":"Maximum matching posts to return for each keyword."}}},"responseSchema":{"type":"json","example":{"count":1,"items":[{"url":null,"slug":null,"title":null,"postId":null,"postType":null,"subtitle":null,"updatedAt":null,"publishedAt":null}],"product":"substack"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.025","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.025/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.025","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.025","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_bYT2kiNMbb9CeG-FaLnXW","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.025","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Scrapes structured post data, publication metadata, and comments from Substack newsletters and search results","exampleAgentPrompt":"Pull all free newsletter posts from 'stratechery.substack.com' published between 2024-01-01 and 2024-06-30, include the full content and up to 10 comments per post, and cap it at 50 posts total.","exampleUseCases":[{"title":"Research newsletter coverage on a topic","prompt":"Search Substack for public posts about 'AI regulation' published after 2024-03-01, return up to 30 results per keyword, and include the full post content where it's free."},{"title":"Monitor a publication's latest posts","prompt":"Fetch the 20 most recent posts from 'platformer.news' on Substack, including publication info like subscriber count and author, and only return free posts with full content."},{"title":"Aggregate posts across multiple newsletters","prompt":"Scrape posts from both 'thediff.co' and 'noahpinion.substack.com' published in the last month, limit to 50 posts per newsletter, and include comments with up to 5 replies each."}],"resultDescription":"Returns a JSON object with a count of items and an array of post records, each containing URL, slug, title, post ID, post type, subtitle, updated timestamp, and published timestamp. When includeContent is true, full HTML body is included for free posts (preview only for paid). When includePublicationInfo is true, subscriber count, description, and author are included. When includeComments is true, nested public comment threads are appended to each post.","failureModes":["Empty result if the Substack publication URL is invalid or the newsletter has no public posts","Paid posts return only metadata and preview when full content requires a subscription","Rate limits or blocks from Substack may cause partial results","Invalid date format (non-YYYY-MM-DD) may cause a parsing error","maxSearchResultsPerKeyword is capped at 100; exceeding it will be silently clamped","No charge on failed or empty runs"],"whenToPreferThis":"Use this endpoint when you need structured, pay-per-call access to Substack content — including full post HTML, publication metadata, subscriber counts, and comments — without building your own scraper. It is particularly well-suited when you need to search across Substack by keyword, filter by date range or content type, or handle multiple publications in a single call. Prefer it over generic web scrapers when you specifically need Substack-native data structures like post slugs, post IDs, and subscription tiers distinguished in the output.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-02T00:46:33.620Z","isFirstParty":false,"canonicalSlug":"substack-post-newsletter-scraper-a91d4114"}