input | string | object | Input The publication, post URL or @handle this record belongs to. |
recordType | string | Record type post (charged) or summary (one per input, with the publication profile; free). e.g. "post" |
position | integer | Position Post number within its input in this run (1 = first). |
status | string | Status ok | not_found | error | skipped_invalid | skipped_budget | skipped_free_plan | skipped_unmetered e.g. "ok" |
charged | boolean | Charged Whether this record incurred a pay-per-event charge. |
chargedEvent | string | Charged event Pay-per-event event charged for this record (present only when charged). |
chargedCount | integer | Events charged Events actually charged when the charge came back short of the requested count (present only then; a warning explains it). |
source | string | Source Upstream data source. |
fetchedAt | string | Fetched at ISO timestamp. |
error | object | Error { code, message, provider?, status? } when status is not ok. Codes set by the runtime: budget_exhausted, free_plan_limit, unmetered, aborted, charge_failed, record_too_large, invalid_record, dataset_push_failed; upstream codes: rate_limit, timeout, network, server, client, invalid_response, not_found; this Actor: invalid_input, not_substack. |
warnings | array | Warnings Notes about this record, e.g. a cap or the budget that stopped an input early. |
postId | integer | Post ID Substack's post id. |
title | string | null | Title Post title. |
subtitle | string | null | Subtitle Post subtitle. |
slug | string | null | Slug URL slug (…/p/<slug>). |
url | string | null | URL Canonical post URL. |
publishedAt | string | null | Published at ISO 8601 UTC. |
updatedAt | string | null | Updated at Last edit (post URLs only). |
type | string | null | Type newsletter | podcast | thread | video … |
audience | string | null | Audience everyone | only_free | only_paid | founding |
isPaywalled | boolean | Paywalled Not readable by everyone (subscriber-only or paid). |
authors | array | Authors Bylines as published: [{ name, handle, profileUrl }]. |
likes | integer | null | Likes All reactions (Substack's likes). |
reactions | object | Reactions Reaction counts by emoji. |
restacks | integer | null | Restacks Restacks (shares within Substack). |
commentsCount | integer | null | Comments Comment count. |
wordcount | integer | null | Word count Words in the post. |
description | string | null | Description The post's description (social/SEO text). |
excerpt | string | null | Excerpt The public excerpt from the archive. |
bodyMarkdown | string | null | Full text (markdown) The full post as markdown: posts everyone can read, with includeBody. |
coverImage | string | null | Cover image Cover image URL. |
section | string | null | Section Publication section. |
tags | array | Tags Post tags. |
language | string | null | Language Post language code. |
podcastUrl | string | null | Podcast audio Audio URL of a podcast post. |
podcastDurationSecs | integer | null | Podcast duration Seconds. |
publicationId | integer | null | Publication ID Substack's publication id. |
publicationHost | string | Publication host Host the post was read from (name.substack.com or the custom domain). |
raw | object | Raw Substack's post object without the HTML body (only with includeRaw). |
publication | string | Publication Summary records: the publication host. |
publicationName | string | null | Publication name Summary records. |
publicationUrl | string | Publication URL Summary records. |
subdomain | string | null | Subdomain Summary records: <subdomain>.substack.com. |
customDomain | string | null | Custom domain Summary records. |
publicationDescription | string | null | Publication description Summary records: the tagline. |
logoUrl | string | null | Logo Summary records. |
coverPhotoUrl | string | null | Cover photo Summary records. |
authorName | string | null | Author Summary records: the publication's main author as published. |
authorHandle | string | null | Author handle Summary records. |
createdAt | string | null | Created at Summary records: when the publication was created. |
firstPostDate | string | null | First post Summary records. |
subscriberCount | integer | null | Subscribers Summary records: subscribers when the publication shows the count, else null. |
subscriberCountText | string | null | Subscribers (as shown) Summary records: e.g. 460,000. |
paidSubscribersRange | string | null | Paid subscribers Summary records: Substack's band, e.g. Tens of thousands of paid subscribers. |
bestsellerTier | integer | null | Bestseller tier Summary records: Substack's bestseller badge tier (100, 1000, 10000). |
paymentsEnabled | boolean | Paid subscriptions Summary records: the publication sells subscriptions. |
hasPodcast | boolean | Podcast Summary records. |
podcastFeedUrl | string | null | Podcast feed Summary records. |
sections | array | Sections Summary records. |
resultsDelivered | integer | Posts delivered Summary records: charged post rows of this input. |
stopReason | string | Stop reason Summary records: limit | free_plan | end | budget | aborted | deadline | empty_pages | max_pages | error. |