# 抖音巨量算数关键词热度趋势接口

抖音巨量算数关键词热度趋势 API（数据接口）按一个关键词，加起止日期，取每个词在抖音上逐日的搜索指数和综合指数（巨量算数，也就是抖音指数），带本期、上期和去年同期的日均值。指数是平台算出的热度分，不是搜索次数；日期是中国时间（UTC+8）的自然日。每次调用 4 积分（约 $0.008–$0.013），失败不扣。最近实测：2026-10-17。

- 页面：https://socialtoai.com/zh/douyin-keyword-history-api/
- 最近更新：2026-10-17
- 最近实测：2026-10-17

| 请求 | 价格键 | 积分 |
| --- | --- | --- |
| `POST /v1/call/douyin.keyword_history` | `douyin.keyword_history` | 4 |

预览：这个接口还没有标为稳定，参数和返回字段之后可能调整。计费和其他调用一样，调用失败不扣积分。

## 请求

```bash
curl https://api.socialtoai.com/v1/call/douyin.keyword_history \
  -H "Authorization: Bearer $SOCIALTOAI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "since": "2026-09-01T00:00:00Z",
    "until": "2026-09-30T00:00:00Z",
    "keyword": "咖啡"
  }'
```

```python
import os
import requests

response = requests.post(
    "https://api.socialtoai.com/v1/call/douyin.keyword_history",
    headers={"Authorization": f"Bearer {os.environ['SOCIALTOAI_KEY']}"},
    json={
        "since": "2026-09-01T00:00:00Z",
        "until": "2026-09-30T00:00:00Z",
        "keyword": "咖啡",
    },
)
print(response.json())
```

## 参数

| 名称 | 类型 | 是否必填 | 默认值 | 说明 |
| --- | --- | --- | --- | --- |
| `keyword` | string | 必填 | — | 一个关键词，不超过 50 个字符、不含逗号，不分大小写 |
| `since` | datetime | 必填 | — | 从哪一天起（含）：取这个时刻所在的中国时间（UTC+8）自然日，写 2026-09-01 就是 9 月 1 日 |
| `until` | datetime | 必填 | — | 到哪一天止（含），取法同上。平台的数通常晚一到两天出：还没出数的日子，指数为 null |

只返回第一页：最多 5 条，没有 cursor 参数，也不能往后翻。

## 返回字段

| 字段 | 类型 | 含义 | 能否给出 |
| --- | --- | --- | --- |
| `items[].title` | string | 条目的标题或名称。 | 有 |
| `items[].url` | string | 能打开它的链接；平台的列表不带链接时为 null。 | 有 |
| `items[].rank` | integer | 榜上的名次，从 1 起。 | 有 |
| `items[].heat` | integer | 平台给的热度值。 | 有 |
| `items[].fields.points` | array | 逐日数据，每天一项，按日期从早到晚：date、search_index、composite_index、notes、impressions、views、engagements。 | 有；其中 notes、impressions、views、engagements 始终是 null |

每一条另有 platform、id、ref、approx、type；items 外面的部分每个调用都一样。 [返回格式](https://socialtoai.com/zh/docs/api/response.md)

## 示例返回

```json
{
  "request_id": "req_00000000-0000-4000-8000-000000000001",
  "schema_version": "v1",
  "fetched_at": "2026-10-12T21:47:47.000Z",
  "action": "call",
  "op": "douyin.keyword_history",
  "platform": "douyin",
  "status": "ok",
  "items": [
    {
      "platform": "douyin",
      "id": "咖啡",
      "ref": "咖啡",
      "approx": [],
      "type": "entry",
      "entry_type": "keyword_history",
      "title": "咖啡",
      "url": null,
      "rank": null,
      "heat": null,
      "fields": {
        "points": [
          {
            "date": "2026-09-01T00:00:00Z",
            "search_index": 4542097,
            "composite_index": 1627826,
            "notes": null,
            "impressions": null,
            "views": null,
            "engagements": null
          },
          {
            "date": "2026-09-02T00:00:00Z",
            "search_index": 4430237,
            "composite_index": 1603543,
            "notes": null,
            "impressions": null,
            "views": null,
            "engagements": null
          },
          {
            "date": "2026-09-03T00:00:00Z",
            "search_index": 4439049,
            "composite_index": 1606224,
            "notes": null,
            "impressions": null,
            "views": null,
            "engagements": null
          },
          {
            "date": "2026-09-04T00:00:00Z",
            "search_index": 4590172,
            "composite_index": 1648872,
            "notes": null,
            "impressions": null,
            "views": null,
            "engagements": null
          },
          {
            "date": "2026-09-05T00:00:00Z",
            "search_index": 5608382,
            "composite_index": 1966637,
            "notes": null,
            "impressions": null,
            "views": null,
            "engagements": null
          },
          {
            "date": "2026-09-06T00:00:00Z",
            "search_index": 5341970,
            "composite_index": 1888380,
            "notes": null,
            "impressions": null,
            "views": null,
            "engagements": null
          },
          {
            "date": "2026-09-07T00:00:00Z",
            "search_index": 5098808,
            "composite_index": 1808789,
            "notes": null,
            "impressions": null,
            "views": null,
            "engagements": null
          }
        ]
      }
    }
  ],
  "unavailable": ["fields.points.notes", "fields.points.impressions", "fields.points.views", "fields.points.engagements"],
  "page": {
    "has_more": false
  },
  "warnings": [],
  "applied_params": {
    "since": "2026-09-01T00:00:00Z",
    "until": "2026-09-30T00:00:00Z",
    "keyword": "咖啡"
  },
  "cost_credits": 4,
  "billing": {
    "cost_credits": 4,
    "balance_credits": 96,
    "today_spend_credits": 4,
    "daily_limit_credits": null,
    "daily_remaining_credits": null,
    "display": "本次 4 积分，余额 96 积分"
  },
  "replayed": false
}
```

## 翻页与失败

- 一次调用只返回第一页，最多 5 条，没有 cursor，4 积分。
- 正常执行但没有结果，算一次成功的调用：status 为 "empty"，items 为空，扣 4 积分。
- 抖音的这个接口分不清“视频不存在”和“没有数据”：两种情况都返回 empty，并照常扣费。
- 每把 Key 每秒 1 次，购买后 5 次；超出不扣费。 [频率限制](https://socialtoai.com/zh/docs/credits-and-billing.md#rate-limits)
- 失败的调用 0 积分，不会自动重试。 [错误码](https://socialtoai.com/zh/docs/api/errors.md)

## 在 AI 里这样问

- 按一个关键词，加起止日期，取每个词在抖音上逐日的搜索指数和综合指数（巨量算数，也就是抖音指数），带本期、上期和去年同期的日均值（since：2026-09-01T00:00:00Z，until：2026-09-30T00:00:00Z，keyword：咖啡） → `call {"op":"douyin.keyword_history","since":"2026-09-01T00:00:00Z","until":"2026-09-30T00:00:00Z","keyword":"咖啡"}`，4 积分

## 抖音的其他接口

| 接口 | 做什么 | 价格键 | 积分 | 页面 |
| --- | --- | --- | --- | --- |
| `brand_radar` | 按品牌名和起止日期，取这个品牌在抖音上搜索指数、内容指数、传播指数的日均值（巨量算数），并带同行业全部品牌和前 3、5、10、15、30 名品牌的均值作参照。 | `douyin.brand_radar` | 2 | https://socialtoai.com/zh/douyin-brand-radar-api.md |
| `keyword_audience` | 按关键词和起止日期，取抖音上关注这个词的人群画像（巨量算数）。 | `douyin.keyword_audience` | 2 | https://socialtoai.com/zh/douyin-keyword-audience-api.md |
| `brand_history` | 按品牌名和起止日期，取这个品牌在抖音上逐日的搜索指数、内容指数和传播指数（巨量算数）。 | `douyin.brand_history` | 2 | https://socialtoai.com/zh/douyin-brand-history-api.md |
| `keyword_related` | 按一个关键词取它在抖音上某一周的关联词（巨量算数）。 | `douyin.keyword_related` | 2 | https://socialtoai.com/zh/douyin-keyword-related-api.md |
| `keyword_videos` | 按关键词取巨量算数给出的约 20 条高指数视频。 | `douyin.keyword_videos` | 2 | https://socialtoai.com/zh/douyin-keyword-videos-api.md |
| `index_topics` | 取巨量算数的实时热点榜或飙升热点榜，各约 30 条。 | `douyin.index_topics` | 2 | https://socialtoai.com/zh/douyin-index-topics-api.md |
| `search` | 按关键词找视频：正文、作者、点赞数、评论数和发布时间。 | `douyin.search` | 12 | https://socialtoai.com/zh/douyin-search-api.md |
| `trending` | 现在的热榜：标题、名次和热度。 | `douyin.trending` | 2 | https://socialtoai.com/zh/douyin-trending-api.md |
| `detail` | 用编号或链接取一条视频：正文、作者、点赞数、评论数和发布时间。 | `douyin.detail` | 2 | https://socialtoai.com/zh/douyin-detail-api.md |
| `comments` | 一条视频下的评论：正文、点赞数、回复数和时间。 | `douyin.comments` | 2 | https://socialtoai.com/zh/douyin-comments-api.md |

## 常见问题

**需要抖音账号，或者申请抖音官方的 API 吗？**

不需要，只要一把 SocialToAI 的 Key。返回的是抖音上公开可见的内容和账号信息，你不用登录抖音，也不用在那边申请任何东西。

**能翻到下一页吗？**

不能。抖音的这个接口只给第一页（最多 5 条），返回里没有 cursor，page.has_more 始终是 false。

**“预览”是什么意思？**

预览：这个接口还没有标为稳定，参数和返回字段之后可能调整。计费和其他调用一样，调用失败不扣积分。
