问答
社媒接口返回的部分字段是空的,这样也要付钱吗?
简短回答
字段为空,要么是平台本身不公开这个数,要么是数据源暂时取不到;okdata 每次返回都会列出这些字段,并注明是哪一种原因。调用本身是成功的,所以照常计费,比如微博搜索每页 $0.002。围绕某个指标做报告之前,先做一次测试调用,看看这份清单。
报表模板里有一列分享数,结果一半是空的。先别急着怪数据,看看原因。用爬虫工具的人经常反馈数据缺失,原因通常就两种,okdata 在每次返回里都会写明。
两种原因
meta.unavailable 把每个为 null 的字段对应到一个原因:
platform:平台对谁都不公开这个数,任何接口都拿不到。微博不像抖音那样展示分享和收藏,TikTok 的帖子没有标题。capability:平台在某处展示了,但这个接口背后的数据源暂时取不到,以后可能会变。公众号文章的阅读数就是值得先查一下的例子。
各平台的帖子、账号、评论用同一套字段名,缺的数就是 null,不会少一个键把你的解析代码弄崩。
curl -s -G "https://api.okdata.online/v1/weibo/posts/search" \
-H "Authorization: Bearer $OKDATA_API_KEY" \
--data-urlencode 'query=新品发布' | jq '.meta.unavailable'
# 例如 {"metrics.shares": "platform", "metrics.favorites": "platform", "title": "platform"}
要不要付钱
要。调用完成了,平台能提供的数据都返回了。价格按次算,不按字段算:
| 接口 | 价格 |
|---|---|
| 微博搜索 | 每页 $0.002 |
| TikTok 视频详情 | 每条 $0.002 |
| 公众号文章详情 | 每篇 $0.02 |
错误则不同。内容不存在返回 not_found,不收费;数据源故障返回 upstream_failed,也不收费。
别为拿不到的数付钱
- 大任务开跑前,先调一次,看
meta.unavailable。报告依赖的指标如果在里面,就改报告或换平台,别在调用量上硬加。 - 看接口页面,上面列了每个接口返回哪些字段。
- 通过 MCP 接入的智能体,可以先免费调用
describe看字段,再决定调不调。 - 用
fields=去掉不需要的列。模型读结果时能省 token,调用费不变。
什么时候该换数据来源
platform 类的数字只有账号主人能在平台后台看到。自家账号,就去后台看。别人的账号,就挑各平台都公开的指标来比,比如点赞和评论数。按这个思路做跨平台对比,可以参考内容研究。
更新于