GET
/
posts
/
search
curl --request GET \
  --url https://api.substackapi.dev/posts/search \
  --header 'X-API-Key: <api-key>'
[
  {
    "slug": "my-post",
    "url": "https://example.substack.com/p/my-post",
    "title": "My Post",
    "description": "This is a description of my post",
    "excerpt": "This is an excerpt of my post",
    "body_html": "<p>This is the body of my post</p>",
    "reading_time_minutes": 5,
    "audio_url": "https://example.com/my-post.mp3",
    "date": "2025-03-20T15:30:00Z",
    "likes": 100,
    "paywall": false,
    "cover_image": {
      "original": "https://example.com/my-post.jpg",
      "og": "https://example.com/my-post.jpg",
      "small": "https://example.com/my-post.jpg",
      "medium": "https://example.com/my-post.jpg",
      "large": "https://example.com/my-post.jpg"
    },
    "cover_image_color_palette": {
      "vibrant": "rgb(0, 0, 0)",
      "light_vibrant": "rgb(0, 0, 0)",
      "dark_vibrant": "rgb(0, 0, 0)",
      "muted": "rgb(0, 0, 0)",
      "light_muted": "rgb(0, 0, 0)",
      "dark_muted": "rgb(0, 0, 0)"
    },
    "author": "John Doe",
    "author_image": {
      "original": "https://example.com/my-post.jpg",
      "small": "https://example.com/my-post.jpg",
      "medium": "https://example.com/my-post.jpg",
      "large": "https://example.com/my-post.jpg"
    }
  }
]

Authorizations

X-API-Key
string
header
required

Test key: sk_test_9b0j6a1bdbf4f38b1 Get production key at auth.substackapi.dev

Query Parameters

publication_url
string
required

The URL of the publication to retrieve posts from (e.g. example.substack.com)

query
string
required

The query to search for (e.g. 'AI', 'machine learning', 'data science')

limit
integer
default:10

The maximum number of results to return (default: 10)

Required range: 1 <= x <= 50
offset
integer
default:0

The offset of the results to return (default: 0)

Required range: x >= 0

Response

200
application/json
A list of posts
slug
string
Example:

"my-post"

url
string
Example:

"https://example.substack.com/p/my-post"

title
string
Example:

"My Post"

description
string
Example:

"This is a description of my post"

excerpt
string | null
Example:

"This is an excerpt of my post"

body_html
string | null
Example:

"<p>This is the body of my post</p>"

reading_time_minutes
number | null
Example:

5

audio_url
string | null
Example:

"https://example.com/my-post.mp3"

date
string
Example:

"2025-03-20T15:30:00Z"

likes
number
Example:

100

paywall
boolean
Example:

false

cover_image
object
cover_image_color_palette
object
author
string
Example:

"John Doe"

author_image
object