POST
/v1/call/tiktok.product_search预览TikTok Shop 商品搜索接口
TikTok 独有的接口。
TikTok Shop 商品搜索 API(数据接口)按搜索词取 TikTok Shop 美国站的商品:标题、现价和原价、评分、已售件数、店铺。每次调用 2 积分(约 $0.004–$0.0067),失败不扣。用 HTTP 调用,或让 AI 客户端通过 MCP 调用。最近实测:2026-10-17。
2 积分每次调用
最多 60 条只返回第一页
2026-10-17最近实测
936 B示例返回的体积(1 条)
最近更新:
预览:这个接口还没有标为稳定,参数和返回字段之后可能调整。计费和其他调用一样,调用失败不扣积分。
请求与返回
curl https://api.socialtoai.com/v1/call/tiktok.product_search \ -H "Authorization: Bearer $SOCIALTOAI_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": "yoga mat" }'import osimport requestsresponse = requests.post( "https://api.socialtoai.com/v1/call/tiktok.product_search", headers={"Authorization": f"Bearer {os.environ['SOCIALTOAI_KEY']}"}, json={ "query": "yoga mat", },)print(response.json())# 已经通过 MCP 接好了?直接用大白话问。用“TikTok Shop 商品搜索”接口(tiktok.product_search),参数是 query: yoga mat。# 你的 AI 会调用 call 工具,参数是:{ "query": "yoga mat"}200 OK936 B2 积分
{ "op": "tiktok.product_search", "platform": "tiktok", "status": "ok", "items": [ { "platform": "tiktok", "id": "…", "ref": "…", "approx": [], "type": "entry", "entry_type": "product", "title": "…", "url": "https://example.com/…", "rank": null, "heat": null, "fields": { "description": null, "price": "18.99", "original_price": "19.99", "currency": "…", "images": ["https://example.com/…"], "rating": 4.6, "sold": 1232, "reviews_count": null, "shop": { "id": "…", "name": "…" } } } ], "unavailable": ["fields.description", "fields.reviews_count"], "page": { "has_more": false }, "cost_credits": 2}- entry_type
- product
- description
null- price
- 18.99
- original_price
- 19.99
- currency
- …
- rating
- 4.6
- sold
- 1232
示例里的名称和正文已去掉,数字是录制时的真实值。
示例数据录制的 23 条里的 1 条
1 个参数。
全部必填。
用 POST 发一个 JSON 请求体。Key 放在 Authorization 请求头里,不要放进网址。
| 名称 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| query | string | 必填 | — | 搜索词 |
只返回第一页:最多 60 条,没有 cursor 参数,也不能往后翻。
items 里每一条的字段。
TikTok 给不了的标出来了。
| 字段 | 类型 | 含义 |
|---|---|---|
| items[].title | string | 条目的标题或名称。 |
| items[].url | string | 能打开它的链接;平台的列表不带链接时为 null。 |
| items[].rank | integer | 榜上的名次,从 1 起。 |
| items[].heat | integer | 平台给的热度值。 |
| items[].fields.description | string始终 null | 商品描述。 |
| items[].fields.price | string | 现价,十进制字符串,币种见 fields.currency。 |
| items[].fields.original_price | string | 折前价。 |
| items[].fields.currency | string | 价格的币种。 |
| items[].fields.images | string[] | 图片地址。 |
| items[].fields.rating | number | 评分。 |
| items[].fields.sold | integer | 销量。 |
| items[].fields.reviews_count | integer始终 null | 评价数。 |
| items[].fields.shop.id | string | 店铺编号。 |
| items[].fields.shop.name | string | 店铺名称。 |
nullTikTok 给不了的字段null 的意思是“TikTok 没给这个值”,不要当成 0。这些字段在这个调用里始终是 null:
fields.description商品描述。fields.reviews_count评价数。
每一条另有 platform、id、ref、approx、type;items 外面的部分每个调用都一样。 返回格式
会发生什么。
一次调用只返回第一页,最多 60 条,没有 cursor,2 积分。
正常执行但没有结果,算一次成功的调用:status 为 "empty",items 为空,扣 2 积分。
每把 Key 每秒 1 次,购买后 5 次;超出不扣费。 频率限制
失败的调用 0 积分,不会自动重试。 错误码
接好 MCP 后,这样问就会用到它。
按搜索词取 TikTok Shop 美国站的商品:yoga mat
2 积分call {"op":"tiktok.product_search","query":"yoga mat"}
同名的接口,换个平台。
全部平台和价格POST
/v1/call/tiktok.product_search{ "query": "yoga mat" }2 积分每次调用只改路径里的 op,返回的外层结构不变。
常见问题。
简短回答。
TikTok 的全部接口需要 TikTok 账号,或者申请 TikTok 官方的 API 吗?
不需要,只要一把 SocialToAI 的 Key。返回的是 TikTok 上公开可见的内容和账号信息,你不用登录 TikTok,也不用在那边申请任何东西。
能翻到下一页吗?
不能。TikTok 的这个接口只给第一页(最多 60 条),返回里没有 cursor,page.has_more 始终是 false。
“预览”是什么意思?
预览:这个接口还没有标为稳定,参数和返回字段之后可能调整。计费和其他调用一样,调用失败不扣积分。