SNS API
通过同一组操作和同一个社交数据结构访问 Reddit、TikTok、YouTube、Instagram、Threads、LinkedIn 和 X。
SNS API 通过相同的八个操作和同一个数据结构提供七个社交平台的数据。操作按其返回内容命名;传入的参数决定
读取什么。TikTok 创作者和 YouTube 频道都是 profile。subreddit 的帖子、话题标签下的视频和账号的 Reels
都是 posts。读取一个平台的代码也能读取所有平台。
curl "https://gateway.apinoa.com/v1/tiktok/posts?username=tiktok" -H "x-api-key: $APINOA_API_KEY"
curl "https://gateway.apinoa.com/v1/youtube/posts?username=@mkbhd&type=shorts" -H "x-api-key: $APINOA_API_KEY"
curl "https://gateway.apinoa.com/v1/reddit/posts?community=technology&sort=top" -H "x-api-key: $APINOA_API_KEY"操作
| 操作 | 返回 | 根据传入内容读取什么 |
|---|---|---|
profile | Account | 一个账号:username(或 userId) |
profiles | Page<Account> | 账号:搜索结果(query),或某账号的粉丝/关注 |
post | Post | 一条帖子:id |
posts | Page<Post> | 帖子:某账号的(username)、搜索结果(query)、hashtag、community、sound、location、company 或 playlist 下的、与某条帖子相关的(relatedTo)——或什么都不传,读取平台的热门信息流 |
comments | Page<Comment> | 某条 post 的评论、某条 comment 的回复,或某账号的评论 |
group | Group | 一个社区、话题标签、音乐、地点或公司 |
groups | Page<Group> | 按搜索查找的社区,或某账号的播放列表、精选快拍或社区 |
media | 媒体文件 | 帖子的媒体文件 |
各平台支持的操作
| profile | profiles | post | posts | comments | group | groups | media | |
|---|---|---|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
| TikTok | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| YouTube | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
| Threads | ✓ | ✓ | ✓ | ✓ | ||||
| ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| X | ✓ | ✓ | ✓ | ✓ |
LinkedIn 还有 job 和 jobs,这是其他平台都没有的记录。每个平台的页面都准确列出了每个操作在该平台接受哪些输入。
输入
同一个名称在每个平台上含义都相同:
| 输入 | 含义 |
|---|---|
username | 账号的用户名(带或不带 @、u/、in/ 均可) |
userId | 账号自身的 id(TikTok secUid、YouTube UC… id、X/Threads 数字 id)——在平台需要时可省去一次查询 |
id | 操作返回的对象:帖子的 id 或 shortcode、职位的 id |
post, comment | 要读取其评论的帖子(或评论) |
query | 关键词;prefix 用于自动补全 |
hashtag community sound location company playlist | 要读取其帖子(或详情)的分组 |
relatedTo | 一条帖子;返回与之相关的帖子 |
type | 选择某个来源的哪种列表:reels、shorts、reposts、likes、followers… |
sort period country | 排序方式、时间范围,以及地区信息流的国家 |
include | 附加在 ext 下的额外读取(Reddit 社区的 rules),按次计费 |
limit | 每页条数(平台允许选择时) |
cursor | 下一页 |
所有标识符也都接受页面 URL。凡是需要 id 的地方,都可以粘贴个人主页、帖子或社区链接。每次调用只传一个来源;
传两个(或在操作需要来源时一个都不传)会返回 400 INVALID_PARAMS,并列出可选项。
所有平台一致的部分
- 结构。 每个操作返回四种类型之一——
Account、Post、Comment、Group——或它们的Page,详见 Response Schema。只有某个平台才有的内容(TikTok 音乐的 music id、Reddit 帖子的得分)位于该对象的ext中。 - 分页。 列表返回一个不透明的
cursor。获取下一页时,以单独的cursor调用同一操作——它携带了首次调用的 全部请求内容。没有cursor表示没有下一页。 - 缺失不等于零。 平台隐藏的计数会被省略,绝不会报告为
0。时间采用 ISO 8601 格式,UTC 时区。 - 价格。 每单位 $0.001。大多数调用为一个单位;每个操作的页面会说明何时可能花费更多。
错误
与 API 其他部分相同的信封和代码——参见 Errors。私密、已删除或受年龄限制的账号、帖子或社区
返回 404 NOT_FOUND;当平台以相同方式显示不存在的页面和被屏蔽的页面时,会返回错误而不是空结果。
参考
- Response Schema:每个类型的每个字段
- Errors:每个错误代码