社交内容 · 数据 API

Substack

Substack API

按专栏、作者、文章与 Notes 区分 Substack 数据对象,说明公开摘要、评论及付费标记的读取边界,便于规划订阅内容资料的整理方式。 调用 POST /api/v1/social ;返回结构化 JSON,$1.39 / 千次;失败不计费。

7

个能力

$1.39 / 千次

能力价格

同步

调用模式

1 个

一把 Key 通用 89 个平台

Substack 能力清单

action必填参数可选参数单次条数模式单价返回字段
searchkeyword—默认 10 · 最多 30同步$1.39 / 千次id · handle · name · url · custom_domain · bio · language · subscriber_count · payments_enabled · avatar_url · cover_url · platform · author_name · author_username · top_posts
publicationurl——同步$1.39 / 千次id · handle · name · url · custom_domain · bio · language · subscriber_count · payments_enabled · avatar_url · cover_url · platform · author_name · author_username · top_posts
publication_postsurlcontent_type, since, until默认 10 · 最多 30同步$1.39 / 千次id · url · title · subtitle · text · author_name · author_username · publication_name · publication_handle · publication_url · like_count · comment_count · repost_count · word_count · reading_time_minutes · post_type · audience · is_paid · podcast_url · image_url · posted_at · updated_at · tags · platform
posturl——同步$1.39 / 千次id · url · title · subtitle · text · author_name · author_username · publication_name · publication_handle · publication_url · like_count · comment_count · repost_count · word_count · reading_time_minutes · post_type · audience · is_paid · podcast_url · image_url · posted_at · updated_at · tags · platform
commentsurl—默认 20 · 最多 100同步$1.39 / 千次id · text · author_name · author_username · like_count · reply_count · reply_to_id · is_reply · is_pinned · is_author · posted_at · platform
profileusername——同步$1.39 / 千次user_id · username · display_name · bio · avatar_url · twitter_username · platform · publications
notesusername—默认 25 · 最多 200同步$1.39 / 千次id · kind · text · author_username · author_name · like_count · posted_at · platform · restacked_post · attachment_urls

Substack 每个接口分别做什么

下面逐个解释 action、必填参数、可选筛选项和允许值。 请求都发到 POST /api/v1/social, 切换 action 时,也要按对应接口调整参数。 同名参数在不同平台、不同接口中可能指向不同对象;请以该条说明中的格式和适用范围为准。

下方只展示平台官方资料,用于核对对象与术语,不表示平台对 EveryInfra 的授权或背书。 本接口接受的参数、字段与能力边界以各条说明为准,不与平台官方 API 直接等同。

怎么调用 Substack 出版物或专栏 API?

publication

使用 platform="substack"、action="publication" 调用“出版物或专栏”能力;返回单个对象,主要包含 id、handle、name、url、custom_domain、bio 等 15 个字段。

Substack publication 的参数分别是什么意思?

url必填
Substack 专栏主页 URL;需要能从 *.substack.com 地址提取专栏 handle,自定义域名不能保证被识别。

Substack 作者 handle 对应 substack.com/@handle,而专栏网站还可采用 subdomain.substack.com。此处只核对对象和地址区别;是否可解析自定义域名仍以本页对应 action 的参数边界为准。官方来源:Substack:作者主页与专栏网站不是同一地址对象来源核查:

Substack 特有返回字段与含义(5)
custom_domain
自定义域名,配了说明作者有意长期经营。
handle
用户短名。
subscriber_count
订阅数。Substack 只对部分账号公开,null 不等于 0。
payments_enabled
该出版物是否开通了付费订阅。
cover_url
封面图。

怎么调用 Substack 出版物文章 API?

publication_posts

使用 platform="substack"、action="publication_posts" 调用“出版物文章”能力;返回列表,默认 10 条、单次最多 30 条,主要包含 id、url、title、subtitle、text、author_name 等 24 个字段。

Substack publication_posts 的参数分别是什么意思?

url必填
Substack 专栏主页 URL;用于列出该专栏文章,可直接使用完整自定义域 URL。
content_type可选
专栏文章类型过滤:all_types 不限、newsletter_posts_only 文章、podcast_episodes_only 播客、threads_only 讨论串。

Substack 将文本、音频和视频发布列为不同内容形态,公开资料与私有文章也分开。本页 content_type 是自己的允许值,不据此增加视频类型或声称每个执行路径的过滤与读取都已验证。官方来源:Substack:文章、音频和视频与内容权限分开来源核查:

查看全部 4 个允许值

all_typesnewsletter_posts_onlypodcast_episodes_onlythreads_only

since可选
专栏文章日期窗口起点,格式 YYYY-MM-DD;只列出该日期之后发布的文章。
until可选
专栏文章日期窗口终点,格式 YYYY-MM-DD;只列出该日期之前发布的文章。
Substack 特有返回字段与含义(11)
publication_name
出版物(Newsletter)名称。
publication_handle
出版物短名。
publication_url
出版物链接。
audience
受众范围(everyone/paid 等)。
is_paid
是否为付费内容。
post_type
内容类型(newsletter/podcast/thread 等)。
subtitle
副标题。
word_count
正文字数。
reading_time_minutes
预计阅读时长,分钟。
podcast_url
播客音频链接。
updated_at
更新时间。

怎么调用 Substack 单条内容 API?

post

使用 platform="substack"、action="post" 调用“单条内容”能力;返回单个对象,主要包含 id、url、title、subtitle、text、author_name 等 24 个字段。

Substack post 的参数分别是什么意思?

url必填
具体 Substack /p/文章链接;返回该单篇文章,不接受专栏主页代替。

Substack 允许作者给付费文章设置免费预览和付费墙位置。因此 text 非空不证明全文已获得,is_paid 或筛选付费内容也不会授予阅读权限。官方来源:Substack:免费预览不等于付费文章全文来源核查:

Substack 特有返回字段与含义(11)
publication_name
出版物(Newsletter)名称。
publication_handle
出版物短名。
publication_url
出版物链接。
audience
受众范围(everyone/paid 等)。
is_paid
是否为付费内容。
post_type
内容类型(newsletter/podcast/thread 等)。
subtitle
副标题。
word_count
正文字数。
reading_time_minutes
预计阅读时长,分钟。
podcast_url
播客音频链接。
updated_at
更新时间。

怎么调用 Substack 评论 API?

comments

使用 platform="substack"、action="comments" 调用“评论”能力;返回列表,默认 20 条、单次最多 100 条,主要包含 id、text、author_name、author_username、like_count、reply_count 等 12 个字段。

Substack comments 的参数分别是什么意思?

url必填
具体 Substack /p/文章链接;返回该文章的评论树,不是专栏级评论搜索。

Substack 的 Reply Rules 可隐藏文章评论或 Notes 回复而非永久删除。公开结果缺少一条评论,不足以认定其被删除;本接口没有访问审核后台、恢复隐藏内容或修改规则的能力。官方来源:Substack:隐藏评论与删除评论不是同一状态来源核查:

Substack 特有返回字段与含义(4)
is_pinned
是否置顶。
is_reply
是否为回复(Notes 场景)。
reply_to_id
被回复内容的 ID。
is_author
评论者是否为文章作者本人。

怎么调用 Substack 主页或对象详情 API?

profile

使用 platform="substack"、action="profile" 调用“主页或对象详情”能力;返回单个对象,主要包含 user_id、username、display_name、bio、avatar_url、twitter_username 等 8 个字段。

Substack profile 的参数分别是什么意思?

username必填
Substack 作者 handle,可传 @作者 或 substack.com/@作者 链接;返回作者资料,不是专栏资料。

Substack 的唯一 handle 用于构成作者主页链接,显示名称和 bio 可另行编辑。本页据此区分 username 与 display_name,不声称能读取被隐藏的订阅或点赞活动。官方来源:Substack:作者 Handle、显示名称与公开资料来源核查:

Substack 特有返回字段与含义(1)
twitter_username
关联的 Twitter 用户名。

怎么调用 Substack 文章与笔记列表 API?

notes

使用 platform="substack"、action="notes" 调用“文章与笔记列表”能力;返回列表,默认 25 条、单次最多 200 条,主要包含 id、kind、text、author_username、author_name、like_count 等 10 个字段。

Substack notes 的参数分别是什么意思?

username必填
Substack 作者 handle,可传 @作者 或 substack.com/@作者 链接;返回作者 Notes 短动态,不是专栏长文章。

Substack 将 Notes 定义为短内容活动,Restack 是在 Notes 中分享内容;它与 newsletter 的逐篇邮件发送不同。官方发布、互动及收入统计功能不等于本页 notes 读取接口已具备这些操作或指标。官方来源:Substack:Notes 与 Restack 的定义来源核查:

Substack 特有返回字段与含义(1)
kind
条目类别。
Substack search 调用流程一次 Substack search 调用的全过程:向 POST /api/v1/social 发送 platform="substack"、action="search",以及必填参数 keyword;返回结构化 JSON,含 id、handle、name、url、custom_domain 等字段;返回列表,单次最多 30 条,计费 $1.39 / 千次,失败与空结果不计费。1 · 请求POST /api/v1/socialplatform: "substack"action: "search"keywordEveryInfra$1.39 / 千次2 · 响应 · 列表idhandlenameurlcustom_domain
一次 Substack search 调用的全过程:向 POST /api/v1/social 发送 platform="substack"、action="search",以及必填参数 keyword;返回结构化 JSON,含 id、handle、name、url、custom_domain 等字段;返回列表,单次最多 30 条,计费 $1.39 / 千次,失败与空结果不计费。

Substack 原始字段名

EveryInfra 统一字段名

左边是 Substack 数据里原本的字段名,右边是我们统一后的。点任意一行看对应关系。89 个平台复用通用字段命名,减少重复适配; 切换平台仍需核对参数、字段集合、类型与空值含义。这里展示映射关系,不是目标的实时返回数据。

Substack 的独有字段名(当前目录)

全站 89 个平台的当前目录中,这 14 个字段名只在 Substack 出现。 这是字段命名的分布,不代表其他平台没有同类信息,也不保证每次响应都含这些字段;具体含义和返回条件仍需逐接口核对。

  • custom_domain
  • payments_enabled
  • top_posts
  • publication_handle
  • publication_url
  • word_count
  • audience
  • is_paid
  • podcast_url
  • is_author
  • twitter_username
  • publications
  • restacked_post
  • attachment_urls

返回字段含义

通用字段采用统一命名;切换平台时仍需核对目标格式、字段是否存在、类型、空值与平台特有含义。 机器可读版:/api/v1/social/fields

id
该记录在原平台上的唯一标识。仅在同一平台内唯一,跨平台可能重复。
handle
用户短名。
name
名称。用于账号/商品/商家类能力,指该对象本身的名字。
url
该记录在原平台上的可访问链接。
custom_domain
自定义域名,配了说明作者有意长期经营。
bio
个人简介,账号自己填写的文本。可能含换行和 emoji。
language
内容语言代码(如 zh、en),由平台判定,可能不准。
subscriber_count
订阅数。Substack 只对部分账号公开,null 不等于 0。
payments_enabled
该出版物是否开通了付费订阅。
avatar_url
头像图片链接。部分平台给的是带尺寸参数的 CDN 链接,可能有时效。
cover_url
封面图。
platform
数据来源平台标识,与请求里的 platform 一致(如 xiaohongshu、tiktok)。
author_name
作者昵称(显示名)。
author_username
作者用户名(@handle),通常可用于拼 URL。
title
标题。平台无标题概念时(如纯文本帖)为 null。
subtitle
副标题。
text
正文内容,已去除 HTML 标签。长文可能被截断。
publication_name
出版物(Newsletter)名称。
publication_handle
出版物短名。
publication_url
出版物链接。
like_count
点赞数。null 表示该平台或该接口不公开此数据,不等于 0。
comment_count
评论数。null 表示不公开,不等于 0。
repost_count
转发数(区别于引用转发)。null 表示不公开。
word_count
正文字数。
reading_time_minutes
预计阅读时长,分钟。
post_type
内容类型(newsletter/podcast/thread 等)。
audience
受众范围(everyone/paid 等)。
is_paid
是否为付费内容。
podcast_url
播客音频链接。
image_url
图片链接。多图能力可能返回 image_urls 数组。
posted_at
发布时间,ISO 8601 格式、UTC 时区(如 2026-08-07T12:34:56+00:00)。平台只给非标准字符串时原样透传,解析前建议做容错。null 表示平台未公开。
updated_at
更新时间。
tags
标签数组。无标签时为空数组,不是 null。
reply_count
回复数,通常用于评论的子回复。null 表示不公开。
reply_to_id
被回复内容的 ID。
is_reply
是否为回复(Notes 场景)。
is_pinned
是否置顶。
is_author
评论者是否为文章作者本人。
user_id
用户在原平台的唯一 ID。
username
用户名(@handle)。
display_name
显示名,可能与 username 不同。
twitter_username
关联的 Twitter 用户名。
kind
条目类别。

当前目录另列出 top_posts · publications · restacked_post · attachment_urls,这些字段尚无逐项释义;请先核对 Substack 对应接口的用例与实际响应,不按字段名猜测类型或含义。

请求填写示例

按刊物或作者主题检索;搜索结果不代表付费文章全文可读。

以下为填写格式示意,并非成功调用记录。请替换 API Key 和尖括号中的目标,确认可选筛选项后再调用;示例不保证目标当前有数据。

substack_search.sh
curl -X POST https://api.everyinfra.com/api/v1/social \
  -H "Authorization: Bearer omg_你的KEY" \
  -H "Content-Type: application/json" \
  -d '{"platform":"substack","action":"search","params":{"keyword":"climate"}}'

记录字段预览(非真实响应)

仅展示 search 的记录字段,不包含外层响应、计费或任务状态。null 只作展示占位,不表示字段类型或实际空值;完整响应须以接口文档与实际调用为准。

fields.preview.json
{
  "id": null,
  "handle": null,
  "name": null,
  "url": null,
  "custom_domain": null,
  "bio": null,
  "language": null,
  "subscriber_count": null,
  "payments_enabled": null,
  "avatar_url": null,
  "cover_url": null,
  "platform": null,
  "author_name": null,
  "author_username": null,
  "top_posts": null
}

常见用例

以下是基于现有接口的接入思路,不是开箱即用的分析或告警功能。字段以实际返回为准,缺失值不按零处理。

搜索 Substack Publication,而不是全文搜索文章

用 search 发现订阅专栏候选,先确认对象再选择文章或作者接口。

查看 search 的 keyword 参数 →
  • keyword 检索 publication / newsletter,不是全站文章正文。用 name、handle、url 与 bio 核对专栏,subscriber_count 可能是数量文字而非精确整数,也不能直接当作付费订阅者数量。
  • paywall、since、until 与 exclude_keywords 虽在目录中出现,资料发现模式下的过滤效果尚未确认;不能根据它们筛出某日创建的账号或保证只找到付费专栏。payments_enabled 也不等于已经有付费收入。

定位 Substack 专栏资料,区分作者与刊物

使用 publication(刊物)查看专栏对象;不要使用作者 @handle 代替所有刊物地址。

查看 publication 的 url 参数 →
  • url 优先填可提取专栏短名的 https://专栏.substack.com 主页;自定义域名在本 action 的识别未保证。handle / publication 是兼容输入,不会取消 url 的公开必填要求;作者资料另用 profile。
  • name、handle、custom_domain、language 与 payments_enabled 描述专栏;自定义域名不证明权威或经营时长,订阅数量缺失不补零。该接口不包含读者邮箱、后台收入或订阅者名单。

按 Substack 专栏整理文章条目与体裁

publication_posts 用于列出专栏文章,但当前处理存在错误,不能视为已验证可用。

查看 publication_posts 的 content_type 参数 →
  • url 填专栏主页,不是作者资料或 Notes 链接;content_type 区分 all_types、newsletter_posts_only、podcast_episodes_only、threads_only,since / until 是内容日期窗口,不是订阅到期日。
  • 契约中的 id、title、post_type、publication_url 与 is_paid 描述文章条目,不代表全文或已获得付费阅读权。当前文章处理代码存在待修错误,本页仅解释字段格式,不承诺该 action 已通过功能验证。

用 Substack 单篇链接定位文章,不把预览当全文

post 负责单篇文章对象的字段格式;当前处理错误尚待修复。

查看 post 的 url 参数 →
  • url 填含 /p/文章短名 的具体链接,不是 publication 主页。text 的映射来自摘要、公开片段等字段,audience / is_paid 描述受众与付费属性;即使正文非空也不证明已解锁完整付费内容。
  • posted_at 与 updated_at 分开保留,repost_count 是 restack 数量,不是邮件送达或阅读量。该 action 与文章列表共享待修处理错误;目录中有此项不等于实际可调用,也不提供付费墙绕过或订阅登录输入。

读取 Substack 文章评论并保留回复关系

用 comments 读取一篇文章下取得的评论,不与 Notes 回复或私聊混用。

查看 comments 的 url 参数 →
  • url 填具体 /p/ 文章链接。结果是平铺列表:id 标识评论,reply_to_id 指向父评论,is_reply 标明回复,is_author 与 is_pinned 分别表示文章作者和置顶,不能把两个标记混为同一种角色。
  • 只按实际取得的父子标识关联,不保证完整评论树;隐藏或受限评论不应假定可读。since / until 不能直接解释成评论发表时间筛选,本页也没有发表、删除、取消隐藏或修改 Reply Rules 的能力。

用 Substack 作者 handle 核对公开资料

用 profile 识别作者本人,不把专栏的名称或订阅数套到个人账号上。

查看 profile 的 username 参数 →
  • username 填作者 handle、@handle 或 substack.com/@handle 主页链接。username、user_id 与 display_name 分别保留短名、ID 和显示名称;同一作者与其经营的 publication 是不同对象。
  • bio、avatar_url 和 twitter_username 仅按实际返回展示,不当作身份认证或私人联系方式。目录中的日期与付费过滤不是作者注册时间和会员状态查询,也不提供读者资料或后台收入。

读取 Substack Notes,区分原创短动态与 Restack

用 notes 查看作者短内容活动,不把它当作专栏长文章列表。

查看 notes 的 username 参数 →
  • username 指向作者,不是专栏 URL。kind 用于区分普通 note 与 restack,text 是返回的短动态正文;转发条目可能没有自己的正文,不用空 text 判定原文章为空。
  • Notes 里的 restack 是分享内容,不等于再次发送一份 newsletter。转发对象与附件的嵌套字段目前展示不完整;只按实际返回的字段处理,不能凭顶层 url/title 推断转发目标,也不提供发布或评论能力。

Substack API 常见问题

Substack API 怎么调用?

调用 POST /api/v1/social,请求体传 platform="substack"、action 和 params。以 search 为例,必填 keyword,没有可选参数。按刊物或作者主题检索;搜索结果不代表付费文章全文可读。 Substack 共 7 个 action,鉴权用 Authorization: Bearer <API Key>,同一把 Key 通 89 个平台。

Substack API 怎么收费?

$1.39 / 千次,Substack 全部 7 个能力同价。按本页最高能力单价、每次单目标估算,$1 免费额度约可用于 719 次 Substack 调用。费用按所选能力与目标数量计算,多目标请求不要按单目标估算;参数错误、鉴权失败和空结果不计费。

Substack API 一次能返回多少条数据?

Substack 有 4 个列表接口,包括 search、publication_posts、comments、notes。其余 3 个接口返回单个对象;对象内仍可能包含数组。数量参数要逐接口区分目标数、页数和记录数,不能将目录数值直接当作保证返回的条数;具体限制见对应参数与用例,不保证完整历史。

Substack API 返回哪些字段?

当前目录为 search 列出 id、handle、name、url、custom_domain、bio 等 15 个字段名。按全站当前目录统计,14 个字段名只在 Substack 出现;这不表示其他平台没有同类信息。字段不保证每次齐全,嵌套位置、类型与空值须按各接口说明核对,同名字段不代表语义可互换。

「搜索 Substack Publication,而不是全文搜索文章」怎样接入 Substack API?

用 search 发现订阅专栏候选,先确认对象再选择文章或作者接口。 keyword 检索 publication / newsletter,不是全站文章正文。用 name、handle、url 与 bio 核对专栏,subscriber_count 可能是数量文字而非精确整数,也不能直接当作付费订阅者数量。 paywall、since、until 与 exclude_keywords 虽在目录中出现,资料发现模式下的过滤效果尚未确认;不能根据它们筛出某日创建的账号或保证只找到付费专栏。payments_enabled 也不等于已经有付费收入。

「定位 Substack 专栏资料,区分作者与刊物」怎样接入 Substack API?

使用 publication(刊物)查看专栏对象;不要使用作者 @handle 代替所有刊物地址。 url 优先填可提取专栏短名的 https://专栏.substack.com 主页;自定义域名在本 action 的识别未保证。handle / publication 是兼容输入,不会取消 url 的公开必填要求;作者资料另用 profile。 name、handle、custom_domain、language 与 payments_enabled 描述专栏;自定义域名不证明权威或经营时长,订阅数量缺失不补零。该接口不包含读者邮箱、后台收入或订阅者名单。

「按 Substack 专栏整理文章条目与体裁」怎样接入 Substack API?

publication_posts 用于列出专栏文章,但当前处理存在错误,不能视为已验证可用。 url 填专栏主页,不是作者资料或 Notes 链接;content_type 区分 all_types、newsletter_posts_only、podcast_episodes_only、threads_only,since / until 是内容日期窗口,不是订阅到期日。 契约中的 id、title、post_type、publication_url 与 is_paid 描述文章条目,不代表全文或已获得付费阅读权。当前文章处理代码存在待修错误,本页仅解释字段格式,不承诺该 action 已通过功能验证。

「用 Substack 单篇链接定位文章,不把预览当全文」怎样接入 Substack API?

post 负责单篇文章对象的字段格式;当前处理错误尚待修复。 url 填含 /p/文章短名 的具体链接,不是 publication 主页。text 的映射来自摘要、公开片段等字段,audience / is_paid 描述受众与付费属性;即使正文非空也不证明已解锁完整付费内容。 posted_at 与 updated_at 分开保留,repost_count 是 restack 数量,不是邮件送达或阅读量。该 action 与文章列表共享待修处理错误;目录中有此项不等于实际可调用,也不提供付费墙绕过或订阅登录输入。

可以先免费试用 Substack API 吗?

可以。注册免费,加微信领邀请码可得 $1 免费额度(≈720 次数据调用)。请先选择 Substack 的目标接口,用单目标请求核对结果;实际可调用次数取决于能力价格与目标数量,不保证覆盖全部 7 个能力。无需信用卡。

开始调用 Substack API

加微信领 $1 免费额度,先选一个 Substack 接口验证结果。实际可调用次数取决于能力价格与目标数量。

免费开始