---
title: "List a Substack publication's public post archive"
method: GET
path: "/substack/publication/posts"
tags: ["Substack"]
---

# List a Substack publication's public post archive

`GET /substack/publication/posts`

## Request

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

Returns one page of a publication's public post archive with title, subtitle, canonical URL, publish date, engagement counts, and whether each post is paywalled. search filters the publication's own posts full-text; a query with no matches returns an empty list rather than the unfiltered archive.

## Query parameters

- `publication` string, required
- `search` string
- `sort` 'new' | 'top' | 'community'
- `offset` integer
- `limit` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- SubstackPostsResponseDoc
  - `code` integer
  - `data` SubstackPostsResult
    - `limit` integer
    - `offset` integer
    - `posts` SubstackPost[]
      - `audience` string
      - `comment_count` integer
      - `cover_image_url` string
      - `description` string
      - `id` integer
      - `paywalled` boolean
      - `published_at` string
      - `reaction_count` integer
      - `slug` string
      - `subtitle` string
      - `title` string
      - `type` string
      - `url` string
    - `publication` string
    - `search` string
    - `sort` string
  - `msg` string

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `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)
