If you are an AI agent, LLM, or automated tool, a clean markdown version of this page is available at https://www.socialfetch.dev/docs/api/v1/substack/publications/publication/posts/search/get.mdx.
A publication: its numeric id (`89120`), its Substack subdomain (`astralcodexten`), its host (`www.astralcodexten.com`) or its URL. A numeric id is refused with a 400 on the routes that need a subdomain, host or URL.
min 1 chars · max 400 chars
query*stringrequiredquery
Text to search for inside the publication.
min 1 chars · max 200 chars
pageintegeroptionalquery
Page number, 0 to 20; ten results a page.
≥ 0 · ≤ 20
Response fields
229
Endpoint-specific response payload.
data.lookupStatus
string
Whether the publication was found.
one of: found, not_found, restricted
data.restrictedReason
stringnullable
Why the publication is restricted, when it is.
one of: invite_only, flagged, paid, null
data.publicationId
integernullable
Numeric publication id.
data.query
string
The query that was searched.
Matching posts with highlighted snippets.
The matching post.
data.results[].post.id
integer
Numeric post id.
data.results[].post.publicationId
integernullable
Numeric publication id.
data.results[].post.slug
stringnullable
The post's URL slug.
data.results[].post.title
stringnullable
The post's title.
data.results[].post.subtitle
stringnullable
The post's subtitle.
data.results[].post.description
stringnullable
The post's short description.
data.results[].post.kind
stringnullable
`newsletter`, `podcast`, `video` or `restack`.
data.results[].post.audience
stringnullable
`everyone`, `only_paid`, `only_subscribers` or another value Substack uses.
data.results[].post.isPaywalled
booleannullable
Whether the post is paid.
data.results[].post.url
stringnullable
Canonical post URL.
data.results[].post.publishedAt
stringnullable
ISO 8601 timestamp, or null when Substack does not publish one.
data.results[].post.updatedAt
stringnullable
ISO 8601 timestamp, or null when Substack does not publish one.
data.results[].post.language
stringnullable
The post's language code.
data.results[].post.bodyHtml
stringnullable
Full body HTML for a free post; the preview only when `bodyIsPreview` is true.
data.results[].post.bodyIsPreview
boolean
True when the audience is not `everyone`.
data.results[].post.previewText
stringnullable
The public preview text.
data.results[].post.wordCount
integernullable
The post's word count.
data.results[].post.commentCount
integernullable
The number of comments on the post.
data.results[].post.replyCount
integernullable
Replies to comments on the post.
data.results[].post.reactionCount
integernullable
The number of reactions to the post.
data.results[].post.reactions
object
Emoji to reaction count.
data.results[].post.restackCount
integernullable
The number of restacks.
data.results[].post.commentPermission
stringnullable
Who may comment on the post.
data.results[].post.coverImageUrl
stringnullable
The post's cover image URL.
data.results[].post.coverImageIsSquare
booleannullable
Whether the cover image is square.
data.results[].post.coverImageIsExplicit
booleannullable
Whether the cover image is explicit.
data.results[].post.isGeoblocked
booleannullable
Whether the post is geoblocked.
Countries where the post is blocked.
data.results[].post.blockedCountries[]
stringoptional
data.results[].post.liveStreamId
stringnullable
The live stream id, when the post is a live stream.
data.results[].post.isPublished
booleannullable
Whether the post is published.
data.results[].post.isPinned
booleannullable
Whether the post is pinned.
data.results[].post.seoTitle
stringnullable
The title shown to search engines.
data.results[].post.seoDescription
stringnullable
The description shown to search engines.
data.results[].post.socialTitle
stringnullable
The title used for social previews.
data.results[].post.previousSlug
stringnullable
The previous post's slug.
data.results[].post.nextSlug
stringnullable
The next post's slug.
The section the post belongs to.
data.results[].post.section.id
integernullable
Numeric section id.
data.results[].post.section.name
stringnullable
The section's name.
data.results[].post.section.slug
stringnullable
The section's URL slug.
The post's tags.
data.results[].post.tags[].id
integernullable
Numeric tag id.
data.results[].post.tags[].name
stringnullable
The tag's name.
data.results[].post.tags[].slug
stringnullable
The tag's URL slug.
data.results[].post.tags[].hidden
booleannullable
Whether the tag is hidden.
The post's authors.
data.results[].post.authors[].id
integernullable
Numeric user id.
data.results[].post.authors[].name
stringnullable
The name shown for the author.
data.results[].post.authors[].handle
stringnullable
The author's handle.
data.results[].post.authors[].slug
stringnullable
The author's profile slug.
data.results[].post.authors[].bio
stringnullable
The author's short biography.
data.results[].post.authors[].photoUrl
stringnullable
The author's profile photo URL.
The author's main badge, when there is one.
data.results[].post.authors[].badge.type
stringnullable
The kind of badge, such as `bestseller`.
data.results[].post.authors[].badge.tier
integernullable
The badge tier, when it has one.
data.results[].post.authors[].badge.handle
stringnullable
The handle the badge belongs to.
data.results[].post.authors[].badge.service
stringnullable
The service the badge comes from.
data.results[].post.authors[].badge.url
stringnullable
A link for the badge, when it has one.
data.results[].post.authors[].badges
objectnullable
The author's reader status fields, when available.
data.results[].post.authors[].bestsellerTier
integernullable
The author's bestseller tier.
The author's primary publication, when there is one.