# Substack

> Read public Substack publications through their official RSS feeds. List and search recent posts (with full content), fetch publication metadata, and track podcast episodes. Read-only and keyless: no Substack account or API key is required.

App · Publishing & Community · 4 actions. Web page: https://docs.lodol.com/docs/integrations/substack

## Actions

### Get Substack publication info

Look up a Substack publication's public feed metadata: its title, description, homepage URL, author, cover image, language, and how many posts are currently in the feed. Useful for confirming a publication exists and grabbing its display details before pulling posts.

**Inputs**

- Publication (`publication`, text, required): The Substack publication to read. Use the subdomain (e.g. 'platformer'), the full Substack URL (e.g. 'https://newsletter.pragmaticengineer.com'), or a custom domain. A trailing '/feed' is optional.

**Outputs**: Channel-level metadata for the publication feed.

- `author` (text): Publication author / managing editor. May be empty.
- `description` (text): Publication tagline / description.
- `feed_url` (text): The resolved RSS feed URL that was fetched.
- `image_url` (text): Publication cover/logo image URL. May be empty.
- `language` (text): Feed language code, e.g. 'en'. May be empty.
- `last_build_date` (text): When the feed was last built (RFC 822). May be empty.
- `post_count_in_feed` (number): Number of posts currently present in the feed.
- `title` (text): Publication name.
- `url` (text): Publication homepage URL.

**Example output**

```json
{
  "author": "Casey Newton",
  "description": "Casey Newton on the intersection of tech and democracy.",
  "feed_url": "https://www.platformer.news/feed",
  "image_url": "https://substackcdn.com/image/fetch/platformer-logo.png",
  "language": "en",
  "last_build_date": "Wed, 15 Jul 2026 14:03:11 GMT",
  "post_count_in_feed": 20,
  "title": "Platformer",
  "url": "https://www.platformer.news"
}
```

### List recent Substack posts

List the most recent posts from a Substack publication, newest first, with each post's title, URL, author, publish date, summary, and full content (as both HTML and plain text). Use this to pull a newsletter's latest articles into a workflow, for example to summarize the newest post or repost it elsewhere.

**Inputs**

- Publication (`publication`, text, required): The Substack publication to read. Use the subdomain (e.g. 'platformer'), the full Substack URL (e.g. 'https://newsletter.pragmaticengineer.com'), or a custom domain. A trailing '/feed' is optional.
- Limit (`limit`, number): Maximum number of items to return, from 1 to 50. Defaults to 10. Substack feeds usually carry only the ~20 most recent posts, so higher values are capped by what the feed exposes. From 1 to 50.

**Outputs**: Recent posts with full content, newest first. Paywalled posts include only their free preview in content_html/content_text.

- `count` (number): Number of posts returned.
- `feed_url` (text)
- `posts` (list)
- `publication` (object)

**Example output**

```json
{
  "count": 2,
  "feed_url": "https://www.platformer.news/feed",
  "posts": [
    {
      "author": "Casey Newton",
      "content_html": "<p>This week, the first wave of truly autonomous agents shipped...</p>",
      "content_text": "This week, the first wave of truly autonomous agents shipped...",
      "guid": "https://www.platformer.news/p/ai-agent-reckoning",
      "is_podcast": false,
      "published": "Wed, 15 Jul 2026 14:03:11 GMT",
      "summary": "What happens when agents start doing real work.",
      "title": "The AI agent reckoning arrives",
      "url": "https://www.platformer.news/ai-agent-reckoning"
    },
    {
      "author": "Casey Newton",
      "content_html": "<p>The major platforms unveiled...</p>",
      "content_text": "The major platforms unveiled...",
      "guid": "https://www.platformer.news/p/platforms-election",
      "is_podcast": false,
      "published": "Mon, 13 Jul 2026 13:00:00 GMT",
      "summary": "New policies, familiar problems.",
      "title": "How platforms handle the election",
      "url": "https://www.platformer.news/platforms-election"
    }
  ],
  "publication": {
    "title": "Platformer",
    "url": "https://www.platformer.news"
  }
}
```

### List Substack podcast episodes

List a Substack publication's most recent podcast episodes: the feed items that carry an audio file. Each episode includes its title, URL, publish date, summary, and audio details (direct file URL, MIME type, size, duration, and episode/season numbers). Useful for tracking a Substack podcast or pulling the latest episode's audio into a workflow.

**Inputs**

- Publication (`publication`, text, required): The Substack publication to read. Use the subdomain (e.g. 'platformer'), the full Substack URL (e.g. 'https://newsletter.pragmaticengineer.com'), or a custom domain. A trailing '/feed' is optional.
- Limit (`limit`, number): Maximum number of items to return, from 1 to 50. Defaults to 10. Substack feeds usually carry only the ~20 most recent posts, so higher values are capped by what the feed exposes. From 1 to 50.

**Outputs**: Recent podcast episodes (feed items with an audio enclosure), newest first.

- `count` (number)
- `episodes` (list)
- `feed_url` (text)
- `publication` (object)

**Example output**

```json
{
  "count": 1,
  "episodes": [
    {
      "audio": {
        "duration": "58:12",
        "episode": 123,
        "length_bytes": 48210432,
        "season": 4,
        "type": "audio/mpeg",
        "url": "https://api.substack.com/feed/podcast/ep123.mp3"
      },
      "author": "Ezra Klein",
      "guid": "https://www.ezraklein.substack.com/p/ai-boom-workers",
      "is_podcast": true,
      "published": "Tue, 14 Jul 2026 09:00:00 GMT",
      "summary": "A conversation about labor and automation.",
      "title": "What the AI boom means for workers",
      "url": "https://www.ezraklein.substack.com/ai-boom-workers"
    }
  ],
  "feed_url": "https://www.ezraklein.substack.com/feed",
  "publication": {
    "title": "The Ezra Klein Show",
    "url": "https://www.ezraklein.substack.com"
  }
}
```

### Search Substack posts

Search a Substack publication's recent posts for a keyword or phrase. Matches the title, summary, author, and full text of each post in the feed (case-insensitive) and returns the matching posts. Because Substack's feed only carries the most recent ~20 posts, this searches recent posts, not the full archive.

**Inputs**

- Publication (`publication`, text, required): The Substack publication to read. Use the subdomain (e.g. 'platformer'), the full Substack URL (e.g. 'https://newsletter.pragmaticengineer.com'), or a custom domain. A trailing '/feed' is optional.
- Search query (`query`, text, required): The keyword or phrase to look for across recent posts.
- Limit (`limit`, number): Maximum number of items to return, from 1 to 50. Defaults to 10. Substack feeds usually carry only the ~20 most recent posts, so higher values are capped by what the feed exposes. From 1 to 50.

**Outputs**: Posts from the feed whose text contains the query. Heavy content_html is omitted from search hits; fetch it with 'List recent Substack posts' once the target post is known.

- `count` (number)
- `feed_url` (text)
- `posts` (list)
- `publication` (object)
- `query` (text)

**Example output**

```json
{
  "count": 1,
  "feed_url": "https://www.platformer.news/feed",
  "posts": [
    {
      "author": "Casey Newton",
      "content_text": "This week, the first wave of truly autonomous agents shipped...",
      "guid": "https://www.platformer.news/p/ai-agent-reckoning",
      "is_podcast": false,
      "published": "Wed, 15 Jul 2026 14:03:11 GMT",
      "summary": "What happens when agents start doing real work.",
      "title": "The AI agent reckoning arrives",
      "url": "https://www.platformer.news/ai-agent-reckoning"
    }
  ],
  "publication": {
    "title": "Platformer",
    "url": "https://www.platformer.news"
  },
  "query": "agent"
}
```
