# Substack API: List newsletter posts

> Finds a Substack newsletter by name or web address and returns its latest public posts with dates, authors, access level and engagement counts.

Unofficial. Not affiliated with or endorsed by Substack.

- Page: https://fous.com/methods/substack.com/list-newsletter-posts
- Method: `substack.com/list_newsletter_posts`, version 1
- Website: substack.com
- Returns: newsletter name and link, and per post: title, subtitle, authors, date, access, type, likes, comments, cover image, link and id
- Effect: read (it gets data and changes nothing)
- Sign-in: none needed
- Cost: 1 credit per completed run (1¢ with pay as you go); failed runs are free
- Verified: Nov 2, 2026

## Inputs

| Field | Type | Required | In the run below | Description |
|---|---|---|---|---|
| `newsletter` | string | yes | `"Lenny's Newsletter"` | The newsletter name or web address, for example Lenny's Newsletter or lenny.substack.com. |
| `max_results` | integer | no |  | The maximum number of posts to return, for example 20. Default 20. |

## Output

From a run on Oct 23, 2026, shortened. Its input:

```json
{
  "newsletter": "Lenny's Newsletter"
}
```

Its output:

```json
{
  "posts": [
    {
      "likes": 355,
      "title": "How to tell if a startup has a moat ",
      "access": "paid",
      "authors": "Dan Hockenmaier",
      "post_id": 219482066,
      "subtitle": "A framework for assessing whether the company you’re considering joining is built to last",
      "post_link": "https://www.lennysnewsletter.com/p/how-to-tell-if-a-startup-has-a-moat",
      "post_type": "article",
      "comment_count": 2,
      "published_date": "2026-10-13",
      "cover_image_link": "https://substackcdn.com/image/fetch/$s_!7Uce!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb5a8d5c-1e31-45f5-b9f8-93426e87a971_1456x970.png"
    },
    {
      "likes": 291,
      "title": "All of the Lenny & Friends Summit talks are now online!",
      "access": "free",
      "authors": "Lenny Rachitsky",
      "post_id": 215694124,
      "subtitle": "Plus, some reflections and takeaways from the day",
      "post_link": "https://www.lennysnewsletter.com/p/all-of-the-lenny-and-friends-summit",
      "post_type": "article",
      "comment_count": 7,
      "published_date": "2026-09-29",
      "cover_image_link": "https://substack-post-media.s3.amazonaws.com/public/images/9fed347c-0e02-4190-a590-1236719b99de_9213x6142.jpeg"
    },
    {
      "likes": 369,
      "title": "Advanced evals: How to find (and fix) hidden AI failures in your product",
      "access": "paid",
      "authors": "Hamel Husain, Shreya Shankar",
      "post_id": 216168140,
      "subtitle": "Why you should never skip error discovery",
      "post_link": "https://www.lennysnewsletter.com/p/advanced-evals-how-to-find-and-fix",
      "post_type": "article",
      "comment_count": 4,
      "published_date": "2026-09-22",
      "cover_image_link": "https://substackcdn.com/image/fetch/$s_!0_d7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f6018cf-fa53-4f40-99d9-b1c9980dd031_1456x970.png"
    }
  ],
  "newsletter_link": "https://www.lennysnewsletter.com",
  "newsletter_name": "Lenny's Newsletter"
}
```

## Run it

From code, with a Fous API key in `FOUS_API_KEY`; the answer's `data` holds the output:

```bash
curl https://api.fous.com/v1/runs \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"method":"substack.com/list_newsletter_posts","input":{"newsletter":"Lenny'\''s Newsletter"}}'
```

From an AI agent connected to the Fous MCP server: its `run` with the same method and input. To connect one, give it `set up https://fous.com/SKILL.md`.

## Ask your agent

- Show me the latest 10 posts from Lenny's Newsletter with likes and comment counts
- What are the recent articles on lenny.substack.com, and who wrote them?
- Find the most recent posts from the Stratechery newsletter including dates and whether they are paid
- I want the last 25 public posts from a tech newsletter called Ben's Bites, with cover images and links
- Pull up the newest entries for the Platformer newsletter and tell me which ones are free to read

## Input schema

```json
{
  "type": "object",
  "required": [
    "newsletter"
  ],
  "properties": {
    "newsletter": {
      "type": "string",
      "description": "The newsletter name or web address, for example Lenny's Newsletter or lenny.substack.com."
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "The maximum number of posts to return, for example 20."
    }
  }
}
```

## Output schema

```json
{
  "type": "object",
  "required": [
    "newsletter_name",
    "newsletter_link",
    "posts"
  ],
  "properties": {
    "posts": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "title",
          "subtitle",
          "authors",
          "published_date",
          "access",
          "post_type",
          "likes",
          "comment_count",
          "cover_image_link",
          "post_link",
          "post_id"
        ],
        "properties": {
          "likes": {
            "type": [
              "integer",
              "null"
            ]
          },
          "title": {
            "type": "string"
          },
          "access": {
            "enum": [
              "free",
              "paid"
            ],
            "type": "string"
          },
          "authors": {
            "type": [
              "string",
              "null"
            ],
            "description": "Author names, separated by commas."
          },
          "post_id": {
            "type": "integer"
          },
          "subtitle": {
            "type": [
              "string",
              "null"
            ]
          },
          "post_link": {
            "type": "string"
          },
          "post_type": {
            "enum": [
              "article",
              "podcast",
              "video"
            ],
            "type": "string"
          },
          "comment_count": {
            "type": [
              "integer",
              "null"
            ]
          },
          "published_date": {
            "type": "string",
            "format": "date"
          },
          "cover_image_link": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    },
    "newsletter_link": {
      "type": "string"
    },
    "newsletter_name": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
```

## See more

- [Substack API: Search newsletters](https://fous.com/methods/substack.com/search-newsletters.md): Finds public Substack newsletters matching a topic, in Substack's search order. Subscriber counts are null when Substack does not display one.
- [Medium API: List a writer's or publication's latest articles](https://fous.com/methods/medium.com/list-author-articles.md): Lists the latest public articles by a Medium writer or publication (by username, publication name or Medium link), with dates, reading times, claps, member-only labels and tags.
- [The Verge API: List headlines](https://fous.com/methods/theverge.com/list-headlines.md): Lists The Verge story headlines, including quick posts, in the order shown on a section page. Archive pages are added when more stories are needed.
- [Bluesky API: List recent posts](https://fous.com/methods/bsky.app/list-recent-posts.md): Lists an account's latest public Bluesky posts, newest first. Replies and reposts are left out unless requested; a repost's time is when the account reposted it.
- [Hacker News API: List stories](https://fous.com/methods/news.ycombinator.com/list-front-page.md): Lists current Hacker News stories in rank order from the top, newest, best, Ask HN, Show HN or jobs list.
- [Threads API: List recent posts](https://fous.com/methods/threads.com/list-recent-posts.md): Lists an account's latest public Threads posts, newest first, with text, engagement counts, thumbnails and links. Only posts shown without logging in are returned.
- [Mastodon API: List recent posts](https://fous.com/methods/mastodon.social/list-recent-posts.md): Lists a Mastodon account's latest public posts, newest first. Replies and boosts are optional. Private and unlisted posts are left out.
- [TechCrunch API: List headlines](https://fous.com/methods/techcrunch.com/list-headlines.md): Lists the latest TechCrunch story headlines in a section, in page order. Skips video, podcast and event promotion cards.
- [All Substack methods](https://fous.com/methods/substack.com.md)
