All endpoints
Substack Category Feed

Substack Category Feed API

Get a Substack category's feed: the posts and notes Substack shows for the topic, top, newest or posts only. Each item is tagged note or post. Supports fetching multiple pages in a single API call.

Price: $0.003 per page
Free tier: 50 requests/month
Endpoint
GET /v1/substack/category/feed

Parameters

category *
Category ID or slug, e.g. 4 or technology. See /docs/substack-category-ids
sort_by
Sort order: top, most_recent, posts (default: top)
pages
Number of pages to fetch, 1-250 (default: 1). Each page returns about 11 items; you are billed per page returned.

Response fields

items
Array of feed items
type
note or post
note_id
Note ID
body
Note text
date
Date and time posted (UTC)
author
Author's handle
author_name
Author's display name
author_id
Author's user ID
author_url
Link to the author's profile
source
"Substack"
domain
"substack.com"
likes
Number of likes
replies
Number of replies
restacks
Number of restacks
reactions
Reaction counts by emoji
author_pic_url
Author's profile picture URL
author_bestseller_tier
Author's bestseller badge tier: 0, 100, 1000 or 10000
lang
Language code
attachments
Media and quoted items. Each has type (image, video, link, post, note, publication) and url, plus title or dimensions where relevant
publication
The author's primary publication
url
Direct link to the note
post_type
For post items: newsletter, podcast, video or thread; post items otherwise carry the post fields documented on User Posts (https://apidirect.io/docs/substack-user-posts)
category
The category (category_id, name)
sort_by
The sort order used
pages
Number of pages returned
count
Number of items returned

Example Request

curl "https://apidirect.io/v1/substack/category/feed?category=technology&pages=1"   -H "X-API-Key: YOUR_API_KEY"

Example Response

{
  "category": {
    "category_id": 4,
    "name": "Technology"
  },
  "count": 10,
  "items": [
    {
      "attachments": [],
      "author": "sifuyik",
      "author_bestseller_tier": 0,
      "author_id": "73134922",
      "author_name": "Sifu Yik Chan",
      "author_pic_url": "",
      "author_url": "https://substack.com/@sifuyik",
      "body": "50 legendary websites that feel like the internet’s hidden toolbox 🧰\n\n1. http://unpaywall.org — Free research papers\n\n2.…",
      "date": "2026-09-23 04:15:17",
      "domain": "substack.com",
      "lang": "en",
      "likes": 16089,
      "note_id": "343671380",
      "publication": "Sifu Yik's Substack",
      "reactions": {
        "❤": 16089
      },
      "replies": 89,
      "restacks": 4337,
      "source": "Substack",
      "type": "note",
      "url": "https://substack.com/@sifuyik/note/c-343671380"
    },
    {
      "audience": "everyone",
      "audio_url": "",
      "author": "chrisarmitage1",
      "author_id": "370292293",
      "author_name": "Christopher Armitage",
      "author_url": "https://substack.com/@chrisarmitage1",
      "authors": [
        {
          "name": "Christopher Armitage",
          "url": "https://substack.com/@chrisarmitage1",
          "user_id": "370292293",
          "username": "chrisarmitage1"
        }
      ],
      "comments": 87,
      "cover_image_url": "https://substackcdn.com/image/fetch/$s_!skDu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.…",
      "date": "2026-10-11 22:08:52",
      "domain": "substack.com",
      "is_paid": false,
      "lang": "en",
      "likes": 700,
      "podcast_duration": 0,
      "podcast_image_url": "",
      "podcast_url": "",
      "post_id": "219921886",
      "post_type": "newsletter",
      "publication": "The Existentialist Republic",
      "publication_id": "5818316",
      "publication_url": "https://cmarmitage.substack.com",
      "reactions": {
        "❤": 700
      },
      "replies": 0,
      "restacks": 306,
      "slug": "ukraine-is-successfully-bombing-the",
      "snippet": "Yandex answers 70% of Russian searches, and Ukraine hit three of its five data centers in four days.",
      "source": "Substack",
      "subtitle": "Yandex answers 70% of Russian searches, and Ukraine hit three of its five data centers in four days.",
      "tags": [
        "Christopher Armitage ",
        "campaign",
        "American fascism",
        "activism",
        "ukraine"
      ],
      "title": "Ukraine is Successfully Bombing the Heart of Russia’s Online Disinformation Machine.",
      "type": "post",
      "url": "https://cmarmitage.substack.com/p/ukraine-is-successfully-bombing-the",
      "video_duration": 0,
      "wordcount": 1573
    }
  ],
  "pages": 1,
  "sort_by": "top"
}

Frequently asked questions

What do the sorts mean?

top is what Substack features for the topic, most_recent is newest first, and posts leaves out the notes.

How is this different from Category Publications?

Category Publications ranks publications; this returns the individual posts and notes in the topic's feed.

How does pricing work?

You only pay for successful requests. The Substack Category Feed API costs $0.003 per page. There are no monthly fees or commitments. You get 50 free requests per endpoint every month.

Do I need a credit card to start?

No. You can sign up and use the free tier (50 requests/endpoint/month) without adding a payment method. You only need to add a card when you want to exceed the free tier.

Are there rate limits?

Yes, there's a concurrency limit of 10 simultaneous requests per endpoint per user. If you need more, just get in touch.

Start using the Substack Category Feed API

Get your API key and start making requests in minutes. 50 requests/month free every month.

Get API Key