# 跑一个社媒数据任务之前，怎么提前知道要花多少钱？

> 抖音、YouTube 数据任务开跑前先估价：把任务拆成调用次数，用公开价格表算出总价，在代码里设硬上限，再用每次返回的扣费核对。

网页版：https://okdata.online/zh/answers/estimate-data-api-cost-before-running/

**简短回答：**先数调用次数，再乘以各接口公开的单价。一个抖音调研任务，30 次搜索加 150 页评论，在 okdata 上是 $0.90：搜索每次 $0.02，评论每页 $0.002。按次计费的价格和返回条数无关，所以这个估算也就是这次任务最多会花的钱。

市场负责人批一次数据采集之前，总得有人先报个价。按次计费的接口，报价就是算术题，三步做完。

## 第一步：把任务写成调用次数

一个典型的抖音品类调研：10 个关键词，每个搜 3 页，再从里面挑 30 条视频看评论，每条拉 5 页。

| 步骤 | 接口 | 次数 | 费用 |
|---|---|---|---|
| 搜索 | [抖音视频搜索](/zh/apis/douyin/videos/search/) | 10 × 3 = 30 | $0.60 |
| 评论 | [抖音视频评论](/zh/apis/douyin/videos/comments/list/) | 30 × 5 = 150 | $0.30 |
| 合计 | | 180 | $0.90 |

同样的结构放到 YouTube，搜索这一步用 [YouTube 视频搜索](/zh/apis/youtube/videos/search/)，是 $0.12。

## 第二步：按价格表算，再在代码里封顶

所有价格都在[价格页](/zh/pricing/)，页面上还有按月估算的费用计算器；机器可读的版本在 `https://okdata.online/prices.json`。通过 [MCP](/zh/mcp/) 接入的智能体可以先调用免费的 `describe` 工具查单价，再决定要不要花钱。

```python
import os, requests
from decimal import Decimal

book = requests.get("https://okdata.online/prices.json", timeout=30).json()
price = {e["id"]: Decimal(e["price"]) for e in book["endpoints"]}
plan = {"douyin.videos.search": 30, "douyin.videos.comments.list": 150}
estimate = sum(price[k] * n for k, n in plan.items())
print("预估:", estimate, "USD")

BUDGET, spent = estimate, Decimal("0")
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}

def call(endpoint_path, **params):
    global spent
    if spent >= BUDGET:
        raise RuntimeError(f"已到预算上限: {spent} USD")
    body = requests.get(f"https://api.okdata.online{endpoint_path}", headers=H, params=params, timeout=60).json()
    if body["code"] != "ok":
        raise RuntimeError(f"{body['code']}: {body['message']}")
    spent += Decimal(body["meta"]["billing"]["amount"])
    return body

first_page = call("/v1/douyin/videos/search", query="露营装备")
```

## 第三步：边跑边核对

每次返回都带 `meta.billing.amount` 和 `balance_after`。随时可以用 `GET https://api.okdata.online/v1/account` 看余额，用 `GET https://api.okdata.online/v1/calls/{request_id}` 查任何一次调用花了多少。

## 为什么估算靠得住

- 按次计费的接口，一页 20 条和一页 3 条价格一样，结果少了不会更贵。
- 每次调用前，先从余额里冻结这次最多可能花的钱。余额不够就直接拒绝，返回 `insufficient_balance`，不扣费。
- 唯一按条计费的[公众号搜索](/zh/apis/wechat_mp/accounts/search/)，每次最多 $0.58。

估算的偏差多半来自计划本身：某个关键词内容比预想的少，提前翻到底，花得更少；让智能体一直找到满意为止，就可能跑很久。给智能体同时设预算和翻页上限。

## 用到的接口

- [抖音视频搜索](https://okdata.online/zh/apis/douyin/videos/search/) `douyin.videos.search`：$0.02/次 · 每页约 20 条视频
- [抖音视频评论](https://okdata.online/zh/apis/douyin/videos/comments/list/) `douyin.videos.comments.list`：$0.002/次 · 每页约 20 条评论
- [YouTube 视频搜索](https://okdata.online/zh/apis/youtube/videos/search/) `youtube.videos.search`：$0.004/次 · 每页约 20 条视频

更新于 2026-11-12
