---
title: "Browse the public Substack Notes feed"
method: GET
path: "/substack/notes"
tags: ["Substack"]
---

# Browse the public Substack Notes feed

`GET /substack/notes`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/substack/notes`
- Auth: API key in header `x-api-key`

Returns one page of the public Notes feed for one tab. tab and type come as a pair from the Notes feed tabs endpoint. Pagination is cursor-based: pass the previous response's next_cursor back as cursor. Post-only rows in the upstream feed are omitted; every returned row is a Note.

## Query parameters

- `tab` string
- `type` 'base' | 'secondary' | 'category'
- `cursor` string

## Headers

- `x-api-key` string, required

## Response `200`

OK

- SubstackNotesFeedResponseDoc
  - `code` integer
  - `data` SubstackNotesFeedResult
    - `has_more` boolean
    - `next_cursor` string
    - `notes` SubstackNote[]
      - `attached_post` SubstackNotePost
        - `id` integer
        - `title` string
        - `url` string
      - `author_bestseller_tier` integer
      - `author_handle` string
      - `author_id` integer
      - `author_name` string
      - `author_photo_url` string
      - `author_url` string
      - `body` string
      - `edited_at` string
      - `id` integer
      - `is_ai_generated` boolean
      - `language` string
      - `published_at` string
      - `reaction_count` integer
      - `reactions` object
      - `reply_count` integer
      - `restack_count` integer
      - `url` string
    - `tab` string
    - `type` string
  - `msg` string

## Other responses

- `400`: Bad Request
- `429`: Too Many Requests
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/afac9b012a27?raw)
