Open in ChatGPT
Coding with AI?
Connect your agent to our MCP and let it integrate any endpoint for you in one shot.

Substack Category Feed

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.

Endpoint

GET /v1/substack/category/feed

Price: $0.003 per page Free tier: 50 requests/month

Parameters

Parameter Required Description
category Yes Category ID or slug, e.g. 4 or technology. See Category IDs
sort_by No Sort order: top, most_recent, posts (default: top)
pages No Number of pages to fetch, 1-250 (default: 1). Each page returns about 11 items; you are billed per page returned.

Response Fields

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

Example Request

cURL

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

Python

import requests

response = requests.get(
    "https://apidirect.io/v1/substack/category/feed",
    headers={"X-API-Key": "YOUR_API_KEY"},
    params={"category": "technology", "pages": 1}
)
print(response.json())

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"
}