ExportDou API · v1

按真实调用顺序,
看懂每一个接口

大多数接入只需要四个接口:创建任务、查询进度、预览结果、下载文件。 下面的示例可以直接复制,不需要先理解整份 OpenAPI。

一次完整导出
  1. 1
    创建任务获得任务 ID
  2. 2
    查询进度按建议间隔查询
  3. 3
    读取结果预览或下载文件

API、网页、CLI 和 Agent 共用同一账户与积分。

开始前

地址与认证

每次请求都需要 API Key。Key 只应保存在服务端环境变量中。

Base URLhttps://exportdou.cn/api/v1
请求头Authorization: Bearer ed_live_...
验证 API Key
curl https://exportdou.cn/api/v1/account \
  -H "Authorization: Bearer $EXPORTDOU_API_KEY"

核心接口

1. 创建导出任务

提交抖音链接、目标数量和文件格式。接口会先预留积分,并立即返回任务 ID;抓取工作在后台继续。

POST/exports
一定要保存两样东西id 用来查询任务Idempotency-Key 用来避免网络重试时重复创建
请求
curl https://exportdou.cn/api/v1/exports \
  -X POST \
  -H "Authorization: Bearer $EXPORTDOU_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "input": "https://www.douyin.com/video/...",
    "resultLimit": 1000,
    "includeReplies": true,
    "format": "csv"
  }'
201 响应
{
  "id": "4bf3d2d8-...",
  "status": "queued",
  "reservedCredits": 1000,
  "dispatchDelayed": false
}
字段类型说明
inputstring

抖音链接,或包含链接的完整分享文案。

resultLimitinteger

希望导出的总行数,范围 1~200,000;仍受当前套餐单任务额度限制。

includeRepliesboolean

开启后抓取评论回复;一级评论和回复共同计入 resultLimit。

formatcsv | xlsx

CSV 通用;回复抓取与 Excel 需要订阅。

核心接口

2. 查询任务进度

用创建任务返回的 ID 查询状态。任务未结束时,按照 retryAfterSeconds 再查询,不要固定高频轮询。

GET/exports/{exportId}
请求
curl https://exportdou.cn/api/v1/exports/4bf3d2d8-... \
  -H "Authorization: Bearer $EXPORTDOU_API_KEY"
运行中响应
{
  "id": "4bf3d2d8-...",
  "status": "processing",
  "progress": {
    "stage": "collecting_roots",
    "targetRows": 1000,
    "deliveredRows": 420,
    "rootRows": 420,
    "replyRows": 0,
    "percentage": 42
  },
  "retryAfterSeconds": 8
}
排队/运行queued · processing · rendering

继续等待,并按 retryAfterSeconds 查询。

可读结果completed · partial

可以读取预览和下载文件。

已结束failed · cancelled · expired

不要继续轮询;根据 error 决定是否重新创建。

核心接口

3. 预览评论结果

任务完成后读取最多 50 条标准化评论,适合在程序里先看内容或做轻量分析。完整数据仍应下载文件。

GET/exports/{exportId}/preview
请求
curl https://exportdou.cn/api/v1/exports/4bf3d2d8-.../preview \
  -H "Authorization: Bearer $EXPORTDOU_API_KEY"
200 响应
{
  "jobId": "4bf3d2d8-...",
  "previewCount": 50,
  "totalRows": 1000,
  "rootRows": 760,
  "replyRows": 240,
  "comments": [
    {
      "id": "comment-id",
      "level": 1,
      "authorName": "用户昵称",
      "text": "这是一条评论",
      "likeCount": 128,
      "replyCount": 4,
      "createdAt": "2026-07-22T10:20:00Z"
    }
  ]
}
最多 50 条previewCount
最终总行数totalRows
区分层级level 1 / 2
保留父级关系rootId / parentId

核心接口

4. 下载完整文件

下载完整 CSV 或 Excel。接口会跳转到短时有效的私有下载地址,因此命令行需要带 -L。

GET/exports/{exportId}/download
下载到本地
curl -L https://exportdou.cn/api/v1/exports/4bf3d2d8-.../download \
  -H "Authorization: Bearer $EXPORTDOU_API_KEY" \
  -o comments.csv
下载链接有效 5 分钟

文件本身是私有的。需要重新下载时,再次调用这个接口获取新地址。

按需使用

其他接口

完成基本导出不依赖下面所有接口,需要对应能力时再接。

POST/videos/preview解析视频但不创建任务

返回视频标题、作者、播放地址、公开互动数据和少量评论样本,不扣导出积分。

请求
curl https://exportdou.cn/api/v1/videos/preview \
  -X POST \
  -H "Authorization: Bearer $EXPORTDOU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":"复制的抖音分享文案或视频链接"}'
GET/exports分页获取任务列表

参数 limit 为 1~100;响应里的 nextCursor 用于读取下一页。

GET/export-requests/{idempotencyKey}恢复创建结果

创建请求超时、不确定是否成功时,用原来的幂等键找回任务,不要再次生成新键提交。

POST/exports/{exportId}/cancel取消运行中的任务

取消是协作式的,接口确认收到请求后,Worker 会在安全检查点停止并结算实际结果。

DELETE/exports/{exportId}删除任务和结果文件

只能删除已经结束且计费关闭的任务。成功返回 204 No Content

GET/account · /credits账户与积分

/account 验证 Key 所属账户;/credits 返回可用、预留和历史积分。

异常处理

看 HTTP 状态,也看 error

所有错误都返回稳定的机器码和中文说明;可重试错误会尽量附带 retryAfterSeconds。

400invalid_request

参数错误,修改请求后再提交。

401unauthorized

API Key 缺失、无效或已撤销。

402insufficient_credits

积分不足,充值或减少导出数量。

403paid_feature_required

回复、Excel 或当前数量需要对应套餐。

404export_not_found

任务不存在、不属于当前 Key,或结果已过期。

409conflict

幂等键冲突,或当前任务状态不允许操作。

429rate_limited

按照 retryAfterSeconds 等待后重试。

机器可读资源

需要完整字段定义?

中文页面用于理解和接入;OpenAPI 3.1 文件用于 Postman、SDK 生成器和 Agent。