{"uid":"cap_ZSE5GItlgreD_-LSFyhmd","slug":"api-direct-substack-user-posts-96348472","name":"API Direct – Substack User Posts","description":"Get an author's posts across all their publications, newest first.","url":"https://x402.apidirect.io/v1/substack/user/posts?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET","HEAD","DELETE"],"type":"string"},"queryParams":{"type":"object","required":[],"properties":{"url":{"type":"string","maxLength":500,"description":"Profile URL, e.g. https://substack.com/@lenny (max 500 characters). Provide one of username, user_id or url."},"pages":{"type":"integer","default":1,"maximum":60,"minimum":1,"description":"Number of pages to fetch and merge into one response (1-60, billed per page returned). Each page returns up to 50 posts. Fetching stops early when there are no more results."},"user_id":{"type":"string","description":"Numeric Substack user ID, as returned in user_id. Provide one of username, user_id or url."},"username":{"type":"string","maxLength":100,"description":"Substack handle, e.g. lenny, with or without a leading @ (max 100 characters). Provide one of username, user_id or url."},"get_sentiment":{"type":"boolean","default":false,"description":"Set to true to add AI emotion analysis (Plutchik's Wheel) to each result. Adds +$0.001 per page to the cost. Returns emotion scores, dominant emotion, intensity, and polarity."}}}},"additionalProperties":false}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.004","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.004/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.004","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.004","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_HtgIq0XpQLXu2Kp7OcHAz","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.004","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Retrieves all posts by a Substack author across their publications, sorted newest first, with optional AI sentiment analysis.","exampleAgentPrompt":"Can you pull all the recent Substack posts by the author with handle 'lenny' — grab 3 pages worth and include the AI sentiment analysis for each post?","exampleUseCases":[{"title":"Research a newsletter writer's output","prompt":"I'm evaluating whether to hire a writer — can you fetch the last 2 pages of Substack posts by the author at https://substack.com/@packyM and tell me how many they've published and what the overall tone is? Include sentiment analysis."},{"title":"Monitor a Substack author's latest articles","prompt":"What are the newest posts published by the Substack user with ID 123456? Just grab the first page so I can see what they've written recently."},{"title":"Competitive content analysis for a newsletter","prompt":"I want to analyze the writing style and emotional tone of all posts from the Substack author 'stratechery' — pull 5 pages of their posts with sentiment scores included so I can compare their content strategy to mine."}],"resultDescription":"Returns a paginated list of posts (up to 50 per page) from all of the author's Substack publications, sorted newest first. Each post includes metadata such as title, publication date, publication name, and post URL. When sentiment analysis is enabled, each post also includes Plutchik's Wheel emotion scores, dominant emotion, intensity rating, and polarity (positive/negative/neutral).","failureModes":["Invalid or non-existent username/user_id/url returns an error or empty result set","No identifier provided (username, user_id, or url all missing) causes a validation error","Pages parameter exceeding 60 results in a schema validation error","Author has no posts, returning an empty list","Rate limiting or upstream Substack API unavailability causes request failure","Malformed profile URL format returns an error","Payment failure (insufficient USDC balance) blocks the request"],"whenToPreferThis":"Choose this endpoint when you need to retrieve post history for a specific known Substack author by username, numeric ID, or profile URL — especially when you want multi-publication aggregation or AI-powered sentiment/emotion analysis per post. Prefer it over general Substack search endpoints when you already know the author identity and want their actual content rather than author discovery.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-30T19:05:23.741Z","isFirstParty":false,"canonicalSlug":"api-direct-substack-user-posts-96348472"}