# 评论分析（comment_insights）

POST /v1/tools/comment_insights 运行评论分析：一个现成工具，返回帖子评论区在说什么：话题及占比、提问、想买、投诉，并附原话。目前可读 14 个平台，38 积分起。带上 max_cost_credits，超出时会被免费拒绝，并返回报价。什么都没取到，不扣。

- 页面：https://socialtoai.com/zh/docs/tools/comment-insights/
- 最近更新：2026-10-17

- POST: `https://api.socialtoai.com/v1/tools/comment_insights`

想在网站上填写，或看看结果长什么样，打开[评论分析](https://socialtoai.com/zh/tools/comment-insights.md)。

## 请求

请求体是 JSON，放这个工具自己的输入。Key 和其他调用一样，放在 `Authorization` 请求头里。

| 名称 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `targets` | string[] | 是 | 1 到 20 条帖子链接，可以混平台。 |
| `focus` | string | 否 | 一句话的关注点；给了就多一栏与它相关的评论。 |
| `topics` | string[] | 否 | 自带的话题，最多 10 个；给了就不再归纳话题。 |
| `scale` | string | 否 | 评论总数封顶，由各帖平分：small 200、medium 1,000、large 3,000；评论更贵的平台读得少一些，以返回为准。取值：`small`、`medium`、`large`（默认 `small`）. |
| `max_cost_credits` | integer | 否 | 这次最多花多少积分；超出则免费拒绝并返回报价。 |
| `confirm` | boolean | 否 | true：不论多少积分都直接运行。false：只返回计划和报价，不运行。不填：价格高的和要在后台运行的先返回报价，其余直接运行。 |

**cURL**

```
curl https://api.socialtoai.com/v1/tools/comment_insights \
  -H "Authorization: Bearer $SOCIALTOAI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "targets": ["https://www.tiktok.com/@nasa/video/7300000000000000000"],
    "scale": "small"
  }'
```

**Python**

```
import os
import requests

response = requests.post(
    "https://api.socialtoai.com/v1/tools/comment_insights",
    headers={"Authorization": f"Bearer {os.environ['SOCIALTOAI_KEY']}"},
    json={
        "targets": ["https://www.tiktok.com/@nasa/video/7300000000000000000"],
        "scale": "small",
    },
)
print(response.json())
```

## 档位与积分

`scale` 选档位。同一档位在每个平台上是一个固定价格，运行前就会给出。

| 档位 | scale | 读多少 | 几积分起 | 怎么运行 | 用赠送的 100 积分 |
| --- | --- | --- | --- | --- | --- |
| 小 | `small` | 评论总数至多 200 条，由各帖平分。 | 38 | 当场出结果 | 部分平台可以（11/14） |
| 中 | `medium` | 评论总数至多 1,000 条，由各帖平分。小红书至多 500 条。 | 172 | 部分平台在后台运行 | 购买后可用 |
| 大 | `large` | 评论总数至多 3,000 条，由各帖平分。 | 492 | 在后台运行 | 购买后可用 |

## 各平台的积分

下表是一条帖子的积分。给了多条链接时，以报价里的总价为准。

| 平台 | 小 | 中 | 大 |
| --- | --- | --- | --- |
| TikTok | 38 | 172 | 492 |
| Instagram | 58 | 266 | 772 |
| X | 42 | 190 | 544 |
| Reddit | 80 | 382 | 1122 |
| YouTube | 50 | 232 | 672 |
| Facebook | 70 | 332 | 972 |
| 小红书 | 270 | 672 | — |
| 抖音 | 50 | 232 | 672 |
| 微博 | 50 | 232 | 672 |
| 公众号 | 150 | 732 | — |
| B 站 | 50 | 232 | 672 |
| 知乎 | 70 | 332 | 972 |
| 快手 | 40 | 182 | 522 |
| 视频号 | 138 | 636 | — |

## 结果里有什么

| 部分 | 内容 |
| --- | --- |
| 话题及占比 | 评论在说哪些话题、各占多少，并附原话。 |
| 提问 | 大家反复问的问题。 |
| 想买 | 表示想买的评论。 |
| 投诉 | 大家在抱怨什么，并附原话。 |
| 主要数字 | 评论条数 |

## 先报价还是直接运行：confirm

同一个请求，要么直接运行，要么先返回报价。和工具输入放在一起的布尔参数 `confirm` 决定走哪一种：

| confirm | 返回什么 |
| --- | --- |
| `false` | 总是返回报价。免费：不占用、不取数、不扣积分。 |
| 不带 | 价格不超过 100 积分、并且能在这次请求里答完时，直接运行。超过这个数，或者计划要在后台运行（`quote.mode` 是 `background`）时，先返回报价。 |
| `true` | 直接运行，最多扣报价里写的积分。跑不了的运行会被免费拒绝（`not_supported`），不会用一份你没要的报价来代替。 |

运行的返回里带一个 `handle`：24 小时内可以凭它免费重读完整结果，细节见[结果与句柄](https://socialtoai.com/zh/docs/api/results.md)。带着同一个 `Idempotency-Key` 再发同样的请求，返回的是第一次运行的结果，不再扣费。

## 报价

报价是这一次请求的完整计划，以及运行它最多扣多少。报价本身不占用、不取数、不扣积分，`status` 是 `quote`。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `request_id` | string | 这次请求的编号。 |
| `schema_version` | "v1" | 返回格式的版本。 |
| `tool` | string | 报价对应的工具。 |
| `scale` | "small" \| "medium" \| "large" \| null | 报价对应的档位；按行计价的工具为 `null`。 |
| `status` | "quote" | `quote`：没有占用、没有取数、没有扣积分。 |
| `quote.credits` | integer | 这次运行最多扣多少积分。 |
| `quote.parts.data_first` | integer | 取数价格的前半段。 |
| `quote.parts.data_second` | integer | 取数价格的后半段。读到的不到计划的一半时不扣。 |
| `quote.parts.analysis` | integer | AI 分析的价格。交付的内容里至少九成分析成功才扣。 |
| `quote.mode` | "sync" \| "background" | `sync`：在这次请求里返回结果。`background`：先返回句柄，在后台分批运行。 |
| `quote.waves` | integer | 后台运行分几波；在请求里直接返回的为 1。 |
| `quote.estimated_seconds` | integer | 预计耗时（秒）。 |
| `quote.free_tier.runnable` | boolean | 还没买过积分的账户能不能跑。 |
| `quote.free_tier.reasons` | string[] | 不能跑时的原因：`cost`、`duration` 或 `paid_only`。 |
| `quote.plan` | array | 按运行顺序列出每一步：平台、动作、多少个目标和多少页，或多少批分析，以及这一步的积分。 |
| `quote.price_version` | string | 报价所依据的价格版本。 |
| `billing` | object | 和每个返回里的一样，见[积分与计费](https://socialtoai.com/zh/docs/credits-and-billing.md)。 |

## 运行怎么扣费

- **先看到价格**：运行前就给出总价，内容再多也不会涨。
- **什么都没取到，不扣**：什么都没取到，这次不扣积分。中途停下，只按完成的部分扣。
- **每档一个价**：同一档位在同一平台价格固定，内容比预想的少也不会减。先用小档，需要读得更多再加。
- 什么都没取到，不扣。取到了内容但被你设的条件筛光，只扣取数的前半段。中途停下只按完成的部分扣。
- 工具会用读到的部分继续跑，结果里写明读到了计划的多少。价格分三段：两段取数，一段 AI 分析。读到的不到计划的一半时，取数的后半段不扣；交付的内容里至少九成分析成功，分析那一段才扣。结果不确定的调用，我们不会自动重试。

## 通过 MCP

MCP 工具是 `comment_insights`。输入和积分都一样。[工具列表](https://socialtoai.com/zh/docs/mcp/tools.md) 里有你的 AI 拿到的描述。
