Get a Substack post by id or URL, with the full free body or paid preview.
GET /v1/substack/posts/{post}
x-api-key* string header
API key (`sfk_...`)
post* string required path
A post: its numeric id (`223208969`) or its URL (`https://www.astralcodexten.com/p/...`). Post comments need the URL form.
min 1 chars · max 2000 chars
Response fields 217 Expand all Collapse all Collapse all Endpoint-specific response payload.
Whether the post was found.
The post when `lookupStatus` is `found`; otherwise null.
data . post . publicationId
integer nullable
Numeric publication id.
data . post . slug
string nullable
The post's URL slug.
data . post . title
string nullable
The post's title.
data . post . subtitle
string nullable
The post's subtitle.
data . post . description
string nullable
The post's short description.
data . post . kind
string nullable
`newsletter`, `podcast`, `video` or `restack`.
data . post . audience
string nullable
`everyone`, `only_paid`, `only_subscribers` or another value Substack uses.
data . post . isPaywalled
boolean nullable
Whether the post is paid.
data . post . url
string nullable
Canonical post URL.
data . post . publishedAt
string nullable
ISO 8601 timestamp, or null when Substack does not publish one.
data . post . updatedAt
string nullable
ISO 8601 timestamp, or null when Substack does not publish one.
data . post . language
string nullable
The post's language code.
data . post . bodyHtml
string nullable
Full body HTML for a free post; the preview only when `bodyIsPreview` is true.
data . post . bodyIsPreview
boolean
True when the audience is not `everyone`.
data . post . previewText
string nullable
The public preview text.
data . post . wordCount
integer nullable
The post's word count.
data . post . commentCount
integer nullable
The number of comments on the post.
data . post . replyCount
integer nullable
Replies to comments on the post.
data . post . reactionCount
integer nullable
The number of reactions to the post.
data . post . reactions
object
Emoji to reaction count.
data . post . restackCount
integer nullable
The number of restacks.
data . post . commentPermission
string nullable
Who may comment on the post.
data . post . coverImageUrl
string nullable
The post's cover image URL.
data . post . coverImageIsSquare
boolean nullable
Whether the cover image is square.
data . post . coverImageIsExplicit
boolean nullable
Whether the cover image is explicit.
data . post . isGeoblocked
boolean nullable
Whether the post is geoblocked.
data . post . blockedCountries array
Countries where the post is blocked.
data . post . blockedCountries []
string optional
data . post . liveStreamId
string nullable
The live stream id, when the post is a live stream.
data . post . isPublished
boolean nullable
Whether the post is published.
data . post . isPinned
boolean nullable
Whether the post is pinned.
data . post . seoTitle
string nullable
The title shown to search engines.
data . post . seoDescription
string nullable
The description shown to search engines.
data . post . socialTitle
string nullable
The title used for social previews.
data . post . previousSlug
string nullable
The previous post's slug.
data . post . nextSlug
string nullable
The next post's slug.
The section the post belongs to.
data . post . section . id
integer nullable
Numeric section id.
data . post . section . name
string nullable
The section's name.
data . post . section . slug
string nullable
The section's URL slug.
data . post . tags [] . id
integer nullable
Numeric tag id.
data . post . tags [] . name
string nullable
The tag's name.
data . post . tags [] . slug
string nullable
The tag's URL slug.
data . post . tags [] . hidden
boolean nullable
Whether the tag is hidden.
data . post . authors [] . id
integer nullable
Numeric user id.
data . post . authors [] . name
string nullable
The name shown for the author.
data . post . authors [] . handle
string nullable
The author's handle.
data . post . authors [] . slug
string nullable
The author's profile slug.
data . post . authors [] . bio
string nullable
The author's short biography.
data . post . authors [] . photoUrl
string nullable
The author's profile photo URL.
data . post . authors [] . badge object nullable
The author's main badge, when there is one.
data . post . authors [] . badge . type
string nullable
The kind of badge, such as `bestseller`.
data . post . authors [] . badge . tier
integer nullable
The badge tier, when it has one.
data . post . authors [] . badge . handle
string nullable
The handle the badge belongs to.
data . post . authors [] . badge . service
string nullable
The service the badge comes from.
data . post . authors [] . badge . url
string nullable
A link for the badge, when it has one.
data . post . authors [] . badges
object nullable
The author's reader status fields, when available.
data . post . authors [] . bestsellerTier
integer nullable
The author's bestseller tier.
data . post . authors [] . primaryPublication object nullable
The author's primary publication, when there is one.
data . post . authors [] . primaryPublication . id
integer nullable
Numeric publication id.
data . post . authors [] . primaryPublication . name
string nullable
The publication's name.
data . post . authors [] . primaryPublication . subdomain
string nullable
The publication's Substack subdomain.
data . post . authors [] . primaryPublication . customDomain
string nullable
The publication's custom domain, when it has one.
data . post . authors [] . primaryPublication . logoUrl
string nullable
The publication's logo URL.
Podcast metadata, when the post is an episode.
data . post . podcast . episodeNumber
integer nullable
The episode number.
data . post . podcast . seasonNumber
integer nullable
The season number.
data . post . podcast . episodeType
string nullable
The episode type.
Audio, when the post has any.
data . post . audio . url
string nullable
Audio file URL.
data . post . audio . durationSeconds
number nullable
Audio length in seconds.
data . post . audio . fileSizeBytes
integer nullable
Audio file size in bytes.
data . post . audio . mediaType
string nullable
The upload's media label, such as `audio`.
data . post . audio . episodeImageUrl
string nullable
Artwork for the episode.
Generated or uploaded audio items.
data . post . audio . items [] . postId
integer nullable
Numeric post id.
data . post . audio . items [] . voiceId
string nullable
The voice used for generated audio.
data . post . audio . items [] . audioUrl
string nullable
The audio file URL.
data . post . audio . items [] . type
string nullable
`tts` or Substack's own audio type.
data . post . audio . items [] . status
string nullable
The audio item's status.
Video, when the post has any.
data . post . video . durationSeconds
number nullable
Video length in seconds.
data . post . video . width
integer nullable
Video width in pixels.
data . post . video . height
integer nullable
Video height in pixels.
data . post . video . playbackId
string nullable
The playback id of the hosted video stream.
data . post . video . isMux
boolean nullable
Whether the video uses Substack's hosted player.
The publication the post belongs to.
data . publication . id
integer
Numeric publication id.
data . publication . name
string nullable
The publication's name.
data . publication . subdomain
string nullable
The publication's Substack subdomain.
data . publication . customDomain
string nullable
The publication's custom domain, when it has one.
data . publication . apexDomain
string nullable
The publication's apex domain, when it has one.
data . publication . url
string nullable
The publication's canonical base URL.
data . publication . host
string nullable
The host its pages are served from.
data . publication . description
string nullable
The publication's description.
data . publication . language
string nullable
The publication's language code.
data . publication . kind
string nullable
`newsletter`, `podcast` or Substack's own type.
data . publication . createdAt
string nullable
ISO 8601 timestamp, or null when Substack does not publish one.
data . publication . firstPostAt
string nullable
ISO 8601 timestamp, or null when Substack does not publish one.
data . publication . hasPosts
boolean nullable
Whether the publication has posts.
data . publication . isExplicit
boolean nullable
Whether the publication is marked explicit.
data . publication . isInviteOnly
boolean nullable
Whether the publication is invite-only.
data . publication . isFlagged
boolean nullable
Whether the publication is flagged.
data . publication . noIndex
boolean nullable
Whether search engines are asked not to index it.
data . publication . isOnSubstack
boolean nullable
Whether the publication is hosted by Substack.
data . publication . commentsEnabled
boolean nullable
Whether comments are enabled.
data . publication . notesEnabled
boolean nullable
Whether Notes are enabled.
data . publication . defaultCommentSort
string nullable
The default comment order.
data . publication . annualDisabled
boolean nullable
Whether annual plans are disabled.
data . publication . monthlyDisabled
boolean nullable
Whether monthly plans are disabled.
data . publication . paymentsState
string nullable
The publication's payments state.
data . publication . freeTrialEnabled
boolean nullable
Whether a free trial is offered.
data . publication . pausedUntil
string nullable
ISO 8601 timestamp, or null when Substack does not publish one.
data . publication . emailBannerUrl
string nullable
The email banner image URL.
data . publication . copyright
string nullable
The copyright line the publication prints.
data . publication . logoUrl
string nullable
The publication's logo URL.
data . publication . wideLogoUrl
string nullable
The publication's wide logo URL.
data . publication . coverImageUrl
string nullable
The publication's cover image URL.
data . publication . foundingPlanName
string nullable
The name of the founding-member plan.
data . publication . hasRecommendations
boolean nullable
Whether the publication recommends others.
data . publication . benefits object
The benefit lists for each subscription tier.
data . publication . benefits . free array
Benefits for free subscribers.
data . publication . benefits . free []
string optional
data . publication . benefits . paid array
Benefits for paid subscribers.
data . publication . benefits . paid []
string optional
data . publication . benefits . founding array
Benefits for founding members.
data . publication . benefits . founding []
string optional
The publication's main author.
data . publication . author . id
integer nullable
Numeric user id.
data . publication . author . name
string nullable
The name shown for the author.
data . publication . author . handle
string nullable
The author's handle.
data . publication . author . slug
string nullable
The author's profile slug.
data . publication . author . bio
string nullable
The author's short biography.
data . publication . author . photoUrl
string nullable
The author's profile photo URL.
data . publication . author . badge object nullable
The author's main badge, when there is one.
data . publication . author . badge . type
string nullable
The kind of badge, such as `bestseller`.
data . publication . author . badge . tier
integer nullable
The badge tier, when it has one.
data . publication . author . badge . handle
string nullable
The handle the badge belongs to.
data . publication . author . badge . service
string nullable
The service the badge comes from.
data . publication . author . badge . url
string nullable
A link for the badge, when it has one.
data . publication . author . badges
object nullable
The author's reader status fields, when available.
data . publication . author . bestsellerTier
integer nullable
The author's bestseller tier.
data . publication . author . primaryPublication object nullable
The author's primary publication, when there is one.
data . publication . author . primaryPublication . id
integer nullable
Numeric publication id.
data . publication . author . primaryPublication . name
string nullable
The publication's name.
data . publication . author . primaryPublication . subdomain
string nullable
The publication's Substack subdomain.
data . publication . author . primaryPublication . customDomain
string nullable
The publication's custom domain, when it has one.
data . publication . author . primaryPublication . logoUrl
string nullable
The publication's logo URL.
data . publication . audience object
Approximate audience figures the publication prints. These are bands, not counts.
data . publication . audience . paidLabel
string nullable
The band Substack displays for paid subscribers.
data . publication . audience . paidOrderOfMagnitude
integer nullable
The order of magnitude behind the paid band.
data . publication . audience . totalLabel
string nullable
The band Substack displays for all subscribers.
data . publication . audience . totalOrderOfMagnitude
integer nullable
The order of magnitude behind the total band.
data . publication . audience . freeLabel
string nullable
The band Substack displays for free subscribers.
data . publication . audience . freeShort
string nullable
The short free-subscriber band.
data . publication . audience . chatMembersLabel
string nullable
The band Substack displays for chat members.
data . publication . contributors array
People with a byline on the publication.
data . publication . contributors [] . id
integer nullable
Numeric user id.
data . publication . contributors [] . name
string nullable
The contributor's name.
data . publication . contributors [] . handle
string nullable
The contributor's handle.
data . publication . contributors [] . role
string nullable
The contributor's role on the publication.
data . publication . contributors [] . owner
boolean nullable
Whether the contributor owns the publication.
data . publication . contributors [] . photoUrl
string nullable
The contributor's photo URL.
data . publication . contributors [] . bio
string nullable
The contributor's short biography.
data . publication . contributors [] . badge object nullable
The contributor's badge.
data . publication . contributors [] . badge . type
string nullable
The kind of badge, such as `bestseller`.
data . publication . contributors [] . badge . tier
integer nullable
The badge tier, when it has one.
data . publication . contributors [] . badge . handle
string nullable
The handle the badge belongs to.
data . publication . contributors [] . badge . service
string nullable
The service the badge comes from.
data . publication . contributors [] . badge . url
string nullable
A link for the badge, when it has one.
data . publication . contributors [] . bestsellerTier
integer nullable
The contributor's bestseller tier.
data . publication . sections array
The publication's sections.
data . publication . sections [] . id
integer nullable
Numeric section id.
data . publication . sections [] . name
string nullable
The section's name.
data . publication . sections [] . description
string nullable
The section's description.
data . publication . sections [] . slug
string nullable
The section's URL slug.
data . publication . sections [] . isPodcast
boolean nullable
Whether the section is a podcast.
data . publication . sections [] . isLive
boolean nullable
Whether the section is a live stream.
data . publication . sections [] . isDefaultOn
boolean nullable
Whether the section is on by default.
data . publication . sections [] . logoUrl
string nullable
The section's logo URL.
data . publication . sections [] . coverImageUrl
string nullable
The section's cover image URL.
data . publication . sections [] . hideFromNavbar
boolean nullable
Whether the section is hidden from navigation.
data . publication . sections [] . hidePostsFromPubListings
boolean nullable
Whether the section's posts are hidden from publication lists.
Links the publication shows.
data . publication . links [] . id
integer nullable
Numeric link id.
data . publication . links [] . url
string
The link.
data . publication . links [] . platform
string nullable
`apple_podcasts`, `spotify`, `youtube` or another label Substack uses.
data . publication . links [] . sectionId
integer nullable
The section the link belongs to, when it has one.
The subscription plans the publication offers.
data . publication . plans [] . id
string nullable
The plan's id.
data . publication . plans [] . nickname
string nullable
The plan's display name.
data . publication . plans [] . amount
integer nullable
Price in the currency's minor unit.
data . publication . plans [] . currency
string nullable
Currency code for the price.
data . publication . plans [] . interval
string nullable
`month`, `year` or Substack's own value.
data . publication . plans [] . intervalCount
integer nullable
How many intervals one charge covers.
data . publication . plans [] . active
boolean nullable
Whether the plan is on sale.
data . publication . plans [] . founding
boolean
Whether this is a founding-member plan.
The publication's podcast, when it has one.
data . publication . podcast . exists
boolean nullable
Whether the publication has a podcast.
data . publication . podcast . hasFreeEpisodes
boolean nullable
Whether free episodes are available.
data . publication . podcast . hasPaidEpisodes
boolean nullable
Whether paid episodes are available.
data . publication . podcast . artUrl
string nullable
The podcast artwork URL.
data . publication . podcast . byline
string nullable
The podcast byline.
data . publication . podcast . description
string nullable
The podcast description.
data . publication . podcast . feedUrl
string nullable
The podcast feed URL.
data . publication . podcast . title
string nullable
The podcast title.
data . publication . podcast . paidEpisodeArtUrl
string nullable
Artwork for paid episodes.
Metadata describing the request and billing outcome.
Unique request identifier for tracing this API call.
meta . creditsCharged
integer
Credits charged for this request.
Public API version that served the response.