Apinoa Docs

Response Schema

Account、Post、Comment、Group 与 Page——所有 SNS 平台统一返回的类型,逐字段说明。

查看原始 .mdx

五种类型覆盖了所有 SNS 操作,同一个字段在每个平台上含义都相同。

可选字段是真正可选的:缺失表示平台没有给出该信息。没有 metrics.likes 表示点赞数被隐藏,而不是零赞。 时间为 ISO 8601,UTC。每个对象都带有 platform,并可能带有 ext:只有该平台才有的信息,使用该平台自己的名称。

Account

个人、创作者、频道或主页。

字段类型说明
platformstringreddit tiktok youtube instagram threads linkedin x
handlestring@用户名,或该平台的对应物
urlstring主页地址
idstring?平台的稳定 id
displayName biostring?
avatarUrl bannerUrlstring?
verifiedboolean?
createdAtstring?账号创建时间
countsobject?{followers?, following?, posts?}
linksarray?{url, title?}——主页上的链接
privateboolean?私密(受保护)账号:只有获批准的关注者才能看到其帖子
categorystring?账号自选的类别名称,原样返回(Musician/Band、Media & News Company)
extobject?平台独有的信息

Post

帖子、视频、Reels、短视频、Threads 帖子或推文。

字段类型说明
id urlstring
authorAccountRef{platform, id?, handle?, displayName?, url?, avatarUrl?, verified?, counts?}
titlestring?平台有标题时才有(Reddit、YouTube)
textstring?正文或配文
createdAt editedAtstring?
langstring?
mediaMedia[]图片、GIF、视频和嵌入内容——见下
metricsobject?{likes?, comments?, shares?, views?, reposts?, quotes?, saves?, liveViewers?}
entitiesobject?正文中出现的 {mentions?, urls?, hashtags?}
linkPreviewobject?{url, title?, description?, thumbnailUrl?, domain?}
pollobject?{options: [{text, votes?}], totalVotes?, endsAt?}
placeobject?{name, id?, lat?, lng?, address?, city?, region?, postalCode?, country?}
audioobject?{id?, title?, artist?, url?}——TikTok 音乐、Reels 的音频
liveboolean?直播
broadcastobject?{status, scheduledAt?, startedAt?, endedAt?}——直播的进行状态;status 为 scheduled、live 或 ended
repostOf quoteOfPost?本帖转发或引用的帖子
inReplyToobject?{id, url?, author?}——本帖所回复的帖子
sponsoredboolean?付费推广或品牌合作内容
pinnedboolean?作者置顶在主页最上方的帖子
aiGeneratedboolean?平台标注为 AI 生成的内容
sensitiveboolean?平台标注为敏感内容(NSFW)
extobject?平台独有的信息

各平台对 views 的统计方式不同:TikTok 和 YouTube 报告的是播放次数,X 报告的是曝光次数。 Reddit 的 score 不是点赞数,因此放在 ext 中,绝不会放进 metrics.likes。shares 只统计分享和发送; 转发和引用分别计入 reposts 和 quotes,saves 是收藏(书签)数。liveViewers 是此刻正在观看直播的人数, 因此只在 broadcast.status 为 live 时出现。

true/false 标志(sponsored、pinned、aiGenerated、sensitive、byAuthor 等)与计数遵循同一规则: 没有该字段,表示平台没有提供。

Media

字段类型说明
typeimage | gif | video | embed
urlstring
width heightnumber?
thumbnailUrlstring?
durationSecnumber?
variantsarray?其他版本:{url, width?, height?, bitrate?, contentType?}
altText captionstring?

Comment

字段类型说明
id postIdstring
parentIdstring?本评论所回复的评论
authorAccountRef
textstring
createdAt editedAt langstring?
pinnedboolean?
byAuthorboolean?由帖子作者本人发表的评论
likedByAuthorboolean?帖子作者点赞(点亮爱心)的评论
metricsobject?{likes?, replies?}
mediaMedia[]?
repliesComment[]随本评论一并返回的回复
moreRepliesobject?{count?, ids?, cursor?}——尚未加载的部分;用 comments 加载:comment= 传 cursor(YouTube)或评论的 id(Reddit、TikTok),或 Reddit 的 ids

Group

帖子聚集于其下的任何事物。

字段类型说明
kindstringcommunity channel company hashtag sound topic location list
id name urlstring
descriptionstring?
avatarUrl bannerUrlstring?
createdAtstring?
countsobject?{members?, posts?}
sensitiveboolean?平台将该群组标注为敏感(NSFW)

Page

所有列表。

{ "platform": "tiktok", "items": [ /* Post, Comment, Account or Group */ ], "cursor": "…", "total": 1640 }

获取下一页时,只用 cursor 调用同一个操作。没有 cursor 表示这是最后一页。

如果有 total,它是整个列表的条目总数,与平台给出的数值完全一致;平台没有给出确切数字时则省略。 它并不保证每一条都能取到:各平台对可翻页的深度设有上限,cursor 结束时列表即结束。

评论页还可能带有 ext.post(评论所在的帖子)和 ext.more(平台尚未加载的顶层评论)——Reddit 两者都会返回。

本页内容