{"openapi":"3.1.0","info":{"title":"DouK 开放 API","description":"Bearer API Key 鉴权。账号与接口范围由管理员授权。Cookie 和代理凭据仅由后端注入。","version":"1.0.0"},"servers":[{"url":"https://douyin.dfhdw.cn/api/v1"}],"paths":{"/comment-crawls":{"get":{"tags":["评论全量采集"],"summary":"查询本Key的评论采集任务（最近50条）","operationId":"list_comment_crawls_comment_crawls_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"成功为ok"},"message":{"type":"string","description":"请求说明"},"data":{"$ref":"#/components/schemas/CommentCrawlList"},"request_id":{"type":"string","description":"本次HTTP请求编号；与采集编号不同"}},"required":["code","message","data","request_id"]}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"douyin:comments","description":"查询本Key最近50条评论采集进度，免费；不暴露其他Key。"},"post":{"tags":["评论全量采集"],"summary":"顺序采集全部可见评论及回复","operationId":"create_comment_crawl_comment_crawls_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrawlInput"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"成功为ok"},"message":{"type":"string","description":"请求说明"},"data":{"allOf":[{"$ref":"#/components/schemas/CommentCrawlView"},{"type":"object","description":"","properties":{"replayed":{"type":"boolean","description":"true为幂等重放，未创建额外任务"}},"required":["replayed"]}]},"request_id":{"type":"string","description":"本次HTTP请求编号；与采集编号不同"}},"required":["code","message","data","request_id"]}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"douyin:comments","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"同Key相同标识和参数只入队一次；冲突返回409"}],"description":"需要douyin:comments和至少一个可用授权账号。先完成一级评论分页，再依次翻每条有回复的一级评论。每个成功页扣1次。相同Idempotency-Key及参数只创建一次；HTTP202仅受理，结果需轮询。"}},"/comment-crawls/{ident}":{"get":{"tags":["评论全量采集"],"summary":"评论采集进度与停止原因（免费）","operationId":"comment_crawl_status_comment_crawls__ident__get","parameters":[{"name":"ident","in":"path","required":true,"schema":{"type":"string","title":"Ident"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"成功为ok"},"message":{"type":"string","description":"请求说明"},"data":{"$ref":"#/components/schemas/CommentCrawlView"},"request_id":{"type":"string","description":"本次HTTP请求编号；与采集编号不同"}},"required":["code","message","data","request_id"]}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"douyin:comments","description":"每5秒查询一次state、phase、数量、扣次和停止原因。HTTP200表示查询成功，state=paused仍需检查stop_reason。"}},"/comment-crawls/{ident}/results":{"get":{"tags":["评论全量采集"],"summary":"分页读取去重评论和回复（免费）","operationId":"comment_crawl_results_comment_crawls__ident__results_get","parameters":[{"name":"ident","in":"path","required":true,"schema":{"type":"string","title":"Ident"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"parent_comment_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[0-9]{15,22}$"},{"type":"null"}],"title":"Parent Comment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"成功为ok"},"message":{"type":"string","description":"请求说明"},"data":{"$ref":"#/components/schemas/CommentCrawlResults"},"request_id":{"type":"string","description":"本次HTTP请求编号；与采集编号不同"}},"required":["code","message","data","request_id"]}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"douyin:comments","description":"免费读取已加密入库的去重正文；运行或暂停时也可读取。offset从0，每次加items.length，直到offset>=total；运行结束后重新读取可获得稳定完整结果。parent_comment_id筛选一个一级评论的回复。"}},"/comment-crawls/{ident}/resume":{"post":{"tags":["评论全量采集"],"summary":"从暂停断点继续评论采集","operationId":"resume_comment_crawl_comment_crawls__ident__resume_post","parameters":[{"name":"ident","in":"path","required":true,"schema":{"type":"string","title":"Ident"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrawlResume"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"成功为ok"},"message":{"type":"string","description":"请求说明"},"data":{"$ref":"#/components/schemas/CommentCrawlView"},"request_id":{"type":"string","description":"本次HTTP请求编号；与采集编号不同"}},"required":["code","message","data","request_id"]}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"douyin:comments","description":"仅paused可续采。先处理停止原因，再从已保存游标继续；成功页不重复采集/扣次，失败页重新提交。completed/cancelled和达到comment_limit的任务不能续采。"}},"/comment-crawls/{ident}/cancel":{"post":{"tags":["评论全量采集"],"summary":"取消评论采集并保留已存数据","operationId":"cancel_comment_crawl_comment_crawls__ident__cancel_post","parameters":[{"name":"ident","in":"path","required":true,"schema":{"type":"string","title":"Ident"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"成功为ok"},"message":{"type":"string","description":"请求说明"},"data":{"$ref":"#/components/schemas/CommentCrawlView"},"request_id":{"type":"string","description":"本次HTTP请求编号；与采集编号不同"}},"required":["code","message","data","request_id"]}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"douyin:comments","description":"停止后续派发并取消当前未完成页，释放该页预占；已成功页及已扣次数保留。取消后需要新建采集编号才能重新开始。"}},"/jobs":{"post":{"tags":["异步任务"],"summary":"提交单个采集任务","operationId":"create_job_jobs_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskInput"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"查询/受理成功为ok"},"message":{"type":"string","description":"请求说明"},"data":{"allOf":[{"$ref":"#/components/schemas/JobView"},{"type":"object","properties":{"replayed":{"type":"boolean","description":"幂等重放为true，没有新增任务或扣次"}}}]},"request_id":{"type":"string","description":"本次HTTP请求编号，与任务编号区分"}},"required":["code","message","data","request_id"]}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}},"Location":{"schema":{"type":"string"},"description":"任务或批次状态查询地址"},"Retry-After":{"schema":{"type":"integer"},"description":"建议5秒后查询"}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"按任务operation匹配scope；查询仅限本Key","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"同Key相同标识和参数只入队一次；冲突返回409"}],"description":"Bearer API Key鉴权，数据仅当前Key可见。任务提交先原子预占，执行成功且结果入库后扣除，失败/取消/超期释放。查询不扣采集额度，受独立访问限流约束。"},"get":{"tags":["异步任务"],"summary":"查询本密钥任务列表","operationId":"job_list_jobs_get","parameters":[{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"enum":["queued","waiting_account","running","succeeded","failed","expired","cancelled"],"type":"string"},{"type":"null"}],"title":"State"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000000,"minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"查询/受理成功为ok"},"message":{"type":"string","description":"请求说明"},"data":{"$ref":"#/components/schemas/JobList"},"request_id":{"type":"string","description":"本次HTTP请求编号，与任务编号区分"}},"required":["code","message","data","request_id"]}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"按任务operation匹配scope；查询仅限本Key","description":"Bearer API Key鉴权，数据仅当前Key可见。任务提交先原子预占，执行成功且结果入库后扣除，失败/取消/超期释放。查询不扣采集额度，受独立访问限流约束。"}},"/batches":{"post":{"tags":["异步任务"],"summary":"批量提交最多10个任务","operationId":"create_batch_batches_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchInput"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"查询/受理成功为ok"},"message":{"type":"string","description":"请求说明"},"data":{"allOf":[{"$ref":"#/components/schemas/BatchView"},{"type":"object","properties":{"replayed":{"type":"boolean","description":"幂等重放为true，没有新增任务或扣次"}}}]},"request_id":{"type":"string","description":"本次HTTP请求编号，与任务编号区分"}},"required":["code","message","data","request_id"]}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}},"Location":{"schema":{"type":"string"},"description":"任务或批次状态查询地址"},"Retry-After":{"schema":{"type":"integer"},"description":"建议5秒后查询"}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"按任务operation匹配scope；查询仅限本Key","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"同Key相同标识和参数只入队一次；冲突返回409"}],"description":"Bearer API Key鉴权，数据仅当前Key可见。任务提交先原子预占，执行成功且结果入库后扣除，失败/取消/超期释放。查询不扣采集额度，受独立访问限流约束。"}},"/jobs/{ident}":{"get":{"tags":["异步任务"],"summary":"查询任务状态（免费）","operationId":"job_status_jobs__ident__get","parameters":[{"name":"ident","in":"path","required":true,"schema":{"type":"string","title":"Ident"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"查询/受理成功为ok"},"message":{"type":"string","description":"请求说明"},"data":{"$ref":"#/components/schemas/JobView"},"request_id":{"type":"string","description":"本次HTTP请求编号，与任务编号区分"}},"required":["code","message","data","request_id"]}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"按任务operation匹配scope；查询仅限本Key","description":"Bearer API Key鉴权，数据仅当前Key可见。任务提交先原子预占，执行成功且结果入库后扣除，失败/取消/超期释放。查询不扣采集额度，受独立访问限流约束。"}},"/jobs/{ident}/result":{"get":{"tags":["异步任务"],"summary":"读取持久化任务结果（免费）","operationId":"job_result_jobs__ident__result_get","parameters":[{"name":"ident","in":"path","required":true,"schema":{"type":"string","title":"Ident"}},{"name":"wait_seconds","in":"query","required":false,"schema":{"type":"integer","maximum":25,"minimum":0,"description":"最多等待0–25秒；完成立即返回200，等待结束仍未完成返回202；默认0保持原409行为","default":0,"title":"Wait Seconds"},"description":"最多等待0–25秒；完成立即返回200，等待结束仍未完成返回202；默认0保持原409行为"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"查询/受理成功为ok"},"message":{"type":"string","description":"请求说明"},"data":{"$ref":"#/components/schemas/JobResult"},"request_id":{"type":"string","description":"本次HTTP请求编号，与任务编号区分"}},"required":["code","message","data","request_id"]}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"202":{"description":"wait_seconds等待结束但任务未完成；不代表成功，不新增采集或扣次。继续使用原任务编号等待。","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"建议重试查询间隔秒数"}},"content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"ok，表示查询成功"},"message":{"type":"string","description":"查询说明"},"request_id":{"type":"string","description":"本次查询编号"},"data":{"type":"object","description":"","properties":{"job":{"$ref":"#/components/schemas/JobView"},"response":{"type":"null","description":"结果尚未完成"}},"required":["job","response"]}},"required":["code","message","request_id","data"]}}}}},"x-required-scope":"按任务operation匹配scope；查询仅限本Key","description":"Bearer API Key鉴权，数据仅当前Key可见。任务提交先原子预占，执行成功且结果入库后扣除，失败/取消/超期释放。查询不扣采集额度，受独立访问限流约束。"}},"/jobs/{ident}/cancel":{"post":{"tags":["异步任务"],"summary":"取消任务并释放预占","operationId":"job_cancel_jobs__ident__cancel_post","parameters":[{"name":"ident","in":"path","required":true,"schema":{"type":"string","title":"Ident"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"查询/受理成功为ok"},"message":{"type":"string","description":"请求说明"},"data":{"$ref":"#/components/schemas/JobView"},"request_id":{"type":"string","description":"本次HTTP请求编号，与任务编号区分"}},"required":["code","message","data","request_id"]}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"按任务operation匹配scope；查询仅限本Key","description":"Bearer API Key鉴权，数据仅当前Key可见。任务提交先原子预占，执行成功且结果入库后扣除，失败/取消/超期释放。查询不扣采集额度，受独立访问限流约束。"}},"/batches/{ident}":{"get":{"tags":["异步任务"],"summary":"查询批次进度及各任务状态","operationId":"batch_status_batches__ident__get","parameters":[{"name":"ident","in":"path","required":true,"schema":{"type":"string","title":"Ident"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"查询/受理成功为ok"},"message":{"type":"string","description":"请求说明"},"data":{"$ref":"#/components/schemas/BatchView"},"request_id":{"type":"string","description":"本次HTTP请求编号，与任务编号区分"}},"required":["code","message","data","request_id"]}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"按任务operation匹配scope；查询仅限本Key","description":"Bearer API Key鉴权，数据仅当前Key可见。任务提交先原子预占，执行成功且结果入库后扣除，失败/取消/超期释放。查询不扣采集额度，受独立访问限流约束。"}},"/capacity":{"get":{"tags":["异步任务"],"summary":"查询本密钥可用账号和队列容量","operationId":"capacity_capacity_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"查询/受理成功为ok"},"message":{"type":"string","description":"请求说明"},"data":{"$ref":"#/components/schemas/QueueCapacity"},"request_id":{"type":"string","description":"本次HTTP请求编号，与任务编号区分"}},"required":["code","message","data","request_id"]}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"按任务operation匹配scope；查询仅限本Key","description":"Bearer API Key鉴权，数据仅当前Key可见。任务提交先原子预占，执行成功且结果入库后扣除，失败/取消/超期释放。查询不扣采集额度，受独立访问限流约束。"}},"/health":{"get":{"tags":["接入"],"summary":"服务状态","description":"验证密钥与 API 服务可用性；不代表抖音登录或采集引擎已连接。","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope_Health_"}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":null}},"/accounts":{"get":{"tags":["接入"],"summary":"授权账号列表","description":"需要 accounts:read；仅返回此密钥获授权的账号，不返回 Cookie、代理及出口信息。","operationId":"accounts_accounts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope_list_Account__"}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"accounts:read"}},"/usage":{"get":{"tags":["接入"],"summary":"当前密钥用量","description":"免费查询，含已扣额度及预占额度；日额度按任务受理日UTC结算。","operationId":"quota_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope_Quota_"}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":null}},"/douyin/web/fetch_one_video":{"get":{"tags":["抖音 Web"],"summary":"获取作品详情","description":"作品ID或链接二选一。后端自动轮询此Key获准的健康Cookie池，调用方无需知道登录账号。","operationId":"detail_douyin_web_fetch_one_video_get","parameters":[{"name":"aweme_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[0-9]{15,22}$"},{"type":"null"}],"description":"作品ID，与url二选一","title":"Aweme Id"},"description":"作品ID，与url二选一"},{"name":"url","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"description":"抖音完整链接、短链接或仅含一个链接的分享文案，与目标ID二选一","title":"Url"},"description":"抖音完整链接、短链接或仅含一个链接的分享文案，与目标ID二选一"},{"name":"account_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":40,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}],"description":"可选，默认自动轮询Key授权的健康账号池；指定时仍须在授权范围","title":"Account Id"},"description":"可选，默认自动轮询Key授权的健康账号池；指定时仍须在授权范围"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkDetailResponse"}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"douyin:detail"}},"/douyin/web/fetch_video_comments":{"get":{"tags":["抖音 Web"],"summary":"获取作品评论","description":"作品ID或链接二选一，自动选择获准账号。仅采集一级评论，默认1页、每页20条，最多3页。子评论自动采集已关闭；reply_comment_total只是平台回复数，不表示已返回子评论正文。实际条数由平台决定，不保证提供后续游标。","operationId":"comments_douyin_web_fetch_video_comments_get","parameters":[{"name":"aweme_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[0-9]{15,22}$"},{"type":"null"}],"description":"作品ID，与url二选一","title":"Aweme Id"},"description":"作品ID，与url二选一"},{"name":"url","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"description":"抖音完整链接、短链接或仅含一个链接的分享文案，与目标ID二选一","title":"Url"},"description":"抖音完整链接、短链接或仅含一个链接的分享文案，与目标ID二选一"},{"name":"account_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":40,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}],"description":"可选，默认自动轮询Key授权的健康账号池；指定时仍须在授权范围","title":"Account Id"},"description":"可选，默认自动轮询Key授权的健康账号池；指定时仍须在授权范围"},{"name":"cursor","in":"query","required":false,"schema":{"type":"integer","maximum":2147483647,"minimum":0,"description":"评论起始游标","default":0,"title":"Cursor"},"description":"评论起始游标"},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"description":"每页条数","default":20,"title":"Count"},"description":"每页条数"},{"name":"pages","in":"query","required":false,"schema":{"type":"integer","maximum":3,"minimum":1,"description":"最多采集页数","default":1,"title":"Pages"},"description":"最多采集页数"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentListResponse"}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"douyin:comments"}},"/douyin/web/fetch_comment_replies":{"get":{"tags":["抖音 Web"],"summary":"获取评论回复数据","description":"单独获取某条一级评论的回复，一次一页。作品aweme_id或url二选一，comment_id为根评论cid。返回items和真实pagination；has_more=true时用next_cursor继续。沿用Key账号授权与扣次策略；保证成功扣次请用success策略Key或comment_replies队列任务。","operationId":"comment_replies_douyin_web_fetch_comment_replies_get","parameters":[{"name":"comment_id","in":"query","required":true,"schema":{"type":"string","pattern":"^[0-9]{15,22}$","description":"一级评论cid，不是作品ID；按字符串传入","title":"Comment Id"},"description":"一级评论cid，不是作品ID；按字符串传入"},{"name":"aweme_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[0-9]{15,22}$"},{"type":"null"}],"description":"作品ID，与url二选一","title":"Aweme Id"},"description":"作品ID，与url二选一"},{"name":"url","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"description":"抖音完整链接、短链接或仅含一个链接的分享文案，与目标ID二选一","title":"Url"},"description":"抖音完整链接、短链接或仅含一个链接的分享文案，与目标ID二选一"},{"name":"account_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":40,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}],"description":"可选，默认自动轮询Key授权的健康账号池；指定时仍须在授权范围","title":"Account Id"},"description":"可选，默认自动轮询Key授权的健康账号池；指定时仍须在授权范围"},{"name":"cursor","in":"query","required":false,"schema":{"type":"integer","maximum":2147483647,"minimum":0,"description":"首次0，后续沿用pagination.next_cursor","default":0,"title":"Cursor"},"description":"首次0，后续沿用pagination.next_cursor"},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"description":"每页请求条数","default":20,"title":"Count"},"description":"每页请求条数"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","description":"","properties":{"code":{"type":"string","description":"成功为ok"},"message":{"type":"string","description":"请求说明"},"data":{"$ref":"#/components/schemas/CommentPage"},"request_id":{"type":"string","description":"HTTP请求编号"}},"required":["code","message","data","request_id"]}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"douyin:comments"}},"/douyin/web/fetch_user_profile":{"get":{"tags":["抖音 Web"],"summary":"获取账号资料","description":"指定目标抖音sec_user_id或用户主页/分享链接，返回平台允许当前登录身份访问的资料。","operationId":"profile_douyin_web_fetch_user_profile_get","parameters":[{"name":"sec_user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9_-]{10,128}$"},{"type":"null"}],"description":"抖音sec_user_id，与url二选一","title":"Sec User Id"},"description":"抖音sec_user_id，与url二选一"},{"name":"url","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"description":"抖音完整链接、短链接或仅含一个链接的分享文案，与目标ID二选一","title":"Url"},"description":"抖音完整链接、短链接或仅含一个链接的分享文案，与目标ID二选一"},{"name":"account_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":40,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}],"description":"可选，默认自动轮询Key授权的健康账号池；指定时仍须在授权范围","title":"Account Id"},"description":"可选，默认自动轮询Key授权的健康账号池；指定时仍须在授权范围"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileResponse"}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"douyin:profile"}},"/douyin/web/fetch_user_post_videos":{"get":{"tags":["抖音 Web"],"summary":"获取账号发布作品","description":"指定目标账号获取最多3页发布作品；只支持发布列表，遵循平台可见范围。","operationId":"posts_douyin_web_fetch_user_post_videos_get","parameters":[{"name":"sec_user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9_-]{10,128}$"},{"type":"null"}],"description":"抖音sec_user_id，与url二选一","title":"Sec User Id"},"description":"抖音sec_user_id，与url二选一"},{"name":"url","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"description":"抖音完整链接、短链接或仅含一个链接的分享文案，与目标ID二选一","title":"Url"},"description":"抖音完整链接、短链接或仅含一个链接的分享文案，与目标ID二选一"},{"name":"account_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":40,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}],"description":"可选，默认自动轮询Key授权的健康账号池；指定时仍须在授权范围","title":"Account Id"},"description":"可选，默认自动轮询Key授权的健康账号池；指定时仍须在授权范围"},{"name":"cursor","in":"query","required":false,"schema":{"type":"integer","maximum":9999999999999,"minimum":0,"description":"平台max_cursor","default":0,"title":"Cursor"},"description":"平台max_cursor"},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"description":"每页条数","default":20,"title":"Count"},"description":"每页条数"},{"name":"pages","in":"query","required":false,"schema":{"type":"integer","maximum":3,"minimum":1,"description":"最多采集页数","default":1,"title":"Pages"},"description":"最多采集页数"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkListResponse"}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"douyin:posts"}},"/douyin/web/search_videos":{"get":{"tags":["抖音 Web"],"summary":"关键词搜索作品","description":"按关键词搜索视频作品，需 douyin:search 权限。自动轮询获准账号并沿用其代理，结果为清洗后的作品数组。每次请求最多 3 页；排序、召回和筛选受平台影响，不保证完整检索或稳定顺序。无匹配结果为 []，平台异常返回错误。","operationId":"search_videos_douyin_web_search_videos_get","parameters":[{"name":"keyword","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"搜索关键词，首尾空格会去除；不接受空白或控制字符","examples":["自然风景"],"title":"Keyword"},"description":"搜索关键词，首尾空格会去除；不接受空白或控制字符"},{"name":"account_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":40,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}],"description":"可选，默认自动轮询Key授权的健康账号池；指定时仍须在授权范围","title":"Account Id"},"description":"可选，默认自动轮询Key授权的健康账号池；指定时仍须在授权范围"},{"name":"pages","in":"query","required":false,"schema":{"type":"integer","maximum":3,"minimum":1,"description":"本次最多请求页数；提前无更多结果时停止","default":1,"title":"Pages"},"description":"本次最多请求页数；提前无更多结果时停止"},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":5,"description":"向平台请求的每页条数；实际返回可能更少","default":10,"title":"Count"},"description":"向平台请求的每页条数；实际返回可能更少"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":0,"description":"搜索起始偏移量，首次使用 0；不代表稳定页码","default":0,"title":"Offset"},"description":"搜索起始偏移量，首次使用 0；不代表稳定页码"},{"name":"sort_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SearchSort","description":"排序：0 综合；1 最多点赞；2 最新发布","default":0},"description":"排序：0 综合；1 最多点赞；2 最新发布"},{"name":"publish_time","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SearchTime","description":"发布时间：0 不限；1 一天内；7 一周内；180 半年内","default":0},"description":"发布时间：0 不限；1 一天内；7 一周内；180 半年内"},{"name":"duration","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SearchDuration","description":"时长：0 不限；1 一分钟以内；2 一至五分钟；3 五分钟以上","default":0},"description":"时长：0 不限；1 一分钟以内；2 一至五分钟；3 五分钟以上"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchWorkResponse"}}},"headers":{"X-Request-ID":{"schema":{"type":"string"}},"X-RateLimit-Limit":{"schema":{"type":"string"}},"X-RateLimit-Remaining":{"schema":{"type":"string"}},"X-RateLimit-Reset":{"schema":{"type":"string"}},"X-DailyLimit-Remaining":{"schema":{"type":"string"}},"X-TotalLimit-Remaining":{"schema":{"type":"string"}}}},"422":{"description":"invalid_parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"400":{"description":"bad_request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"403":{"description":"forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"405":{"description":"method_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"408":{"description":"request_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"account_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"413":{"description":"request_too_large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"415":{"description":"unsupported_media_type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"仅临时限制返回等待秒数；累计额度耗尽不返回此头"},"X-Quota-Reason":{"schema":{"type":"string"},"description":"total_exhausted 表示生命周期额度耗尽，不会自动恢复"},"X-TotalLimit-Remaining":{"schema":{"type":"integer"},"description":"累计额度耗尽时为 0"}}},"500":{"description":"internal_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"502":{"description":"upstream_error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"service_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"504":{"description":"upstream_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"x-required-scope":"douyin:search"}}},"components":{"schemas":{"Account":{"properties":{"id":{"type":"string","title":"执行账号 ID","description":"本服务内部的执行账号 ID，用作 account_id；不是目标用户 sec_user_id。","examples":["account_example"],"x-empty":"按接口返回。","x-group":"执行账号"},"name":{"type":"string","title":"账号备注","description":"管理员设置的显示名称。","examples":["示例执行账号"],"x-empty":"按接口返回。","x-group":"执行账号"},"verified":{"type":"boolean","title":"登录验证标记","description":"保留的上次登录验证结论；临时故障或待人工处理时可仍为true。请同时查看login_status与collection_status，不能据此判断采集可用。","examples":[true],"x-empty":"按接口返回。","x-group":"执行账号"},"checked_at":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"最近检测时间","description":"最近登录检测的 Unix 时间戳，单位：秒。","examples":[1793188800],"x-empty":"尚未检测时可为 null。","x-group":"执行账号"},"review_required":{"type":"boolean","title":"Review Required","default":false,"description":"是否等待人工复检；true时暂停分配，不代表已确认账号失效"},"pool_ready":{"type":"boolean","title":"Pool Ready","default":false,"description":"是否满足账号分配条件；自动复检、人工处理、Cookie、代理及启用状态均会影响，实际执行还受并发及间隔约束"},"login_status":{"type":"string","title":"登录状态","description":"verified：上次验证有效；manual_confirmed：人工确认；login_required：需重新登录；unconfirmed：未确认。","default":"unconfirmed","examples":["verified"],"x-empty":"按接口返回。","x-group":"执行账号"},"collection_status":{"type":"string","title":"采集状态","description":"available：可用；busy：使用中或间隔等待；recovering：等待复检；recovery_paused：复检开关关闭；checking：检测中；manual_review：需人工；manual_abnormal：人工异常；disabled：停用；unavailable：不可分配。","default":"unavailable","examples":["recovering"],"x-empty":"按接口返回。","x-group":"执行账号"},"recovery_pending":{"type":"boolean","title":"等待自动复检","default":false,"description":"true时暂不分配；开关关闭时仍保留本轮状态。","examples":[true],"x-empty":"按接口返回。","x-group":"执行账号"},"recovery_attempts":{"type":"integer","title":"本轮复检次数","description":"本轮已完成的自动复检次数，不含最初失败；成功后归零。","default":0,"examples":[0],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"执行账号"},"recovery_max_attempts":{"type":"integer","title":"自动复检上限","default":3,"description":"最多3次，耗尽后需人工处理。","examples":[3],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"执行账号"},"recovery_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"复检原因","description":"原因代码，如network_timeout、proxy_error；无当前原因时null，不含代理凭据。","examples":["network_timeout"],"x-empty":"按接口返回。","x-group":"执行账号"},"recovery_exhausted":{"type":"boolean","title":"复检次数耗尽","default":false,"description":"true表示有限复检全部失败，已转人工。","examples":[false],"x-empty":"按接口返回。","x-group":"执行账号"},"next_retry_at":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"预计下次复检","description":"Unix秒，忙碌时顺延；关闭开关、手动停用、成功或转人工后为null。","examples":[1793497200],"x-empty":"按接口返回。","x-group":"执行账号"},"next_check_at":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"下次检测时间","description":"Unix秒，可能是定期检测或故障复检；无计划时null。","examples":[1793497200],"x-empty":"按接口返回。","x-group":"执行账号"},"login_verified_at":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"最近登录验证通过","description":"平台身份验证通过的Unix秒；不代表某项采集接口成功。旧记录缺失时null。","examples":[1793496600],"x-empty":"按接口返回。","x-group":"执行账号"}},"type":"object","required":["id","name","verified"],"title":"Account"},"BatchInput":{"properties":{"tasks":{"items":{"$ref":"#/components/schemas/TaskInput"},"type":"array","maxItems":10,"minItems":1,"title":"Tasks","description":"每个子任务独立结算；整批校验及预占，失败则整批不入队"},"mode":{"type":"string","enum":["parallel","serial"],"title":"Mode","description":"parallel受控并行；serial按输入顺序，单项失败后继续下一项","default":"parallel"},"max_wait_seconds":{"type":"integer","maximum":300.0,"minimum":1.0,"title":"Max Wait Seconds","description":"最长排队时间，包含等待账号恢复；不包含最多65秒执行预算","default":300}},"additionalProperties":false,"type":"object","required":["tasks"],"title":"BatchInput"},"CrawlInput":{"properties":{"target":{"type":"string","maxLength":1024,"minLength":1,"title":"Target","description":"作品ID或抖音作品链接"},"account_id":{"anyOf":[{"type":"string","maxLength":40,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}],"title":"Account Id"},"include_replies":{"type":"boolean","title":"Include Replies","description":"先采完一级，再逐条采有回复的评论","default":true},"count":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Count","description":"每页请求条数；实际数量由平台决定","default":20},"max_pages":{"type":"integer","maximum":200.0,"minimum":1.0,"title":"Max Pages","description":"一级和子评论合计成功页数上限；每页成功扣1次","default":100},"max_comments":{"type":"integer","maximum":5000.0,"minimum":20.0,"title":"Max Comments","description":"单次归档去重条数上限，到达暂停","default":5000},"max_seconds":{"type":"integer","maximum":3600.0,"minimum":65.0,"title":"Max Seconds","description":"本轮运行时限，含排队；到达后保留断点","default":1800}},"additionalProperties":false,"type":"object","required":["target"],"title":"CrawlInput"},"CrawlResume":{"properties":{"additional_pages":{"type":"integer","maximum":200.0,"minimum":1.0,"title":"Additional Pages","description":"本轮额外允许的成功页数","default":100},"max_seconds":{"type":"integer","maximum":3600.0,"minimum":65.0,"title":"Max Seconds","default":1800}},"additionalProperties":false,"type":"object","title":"CrawlResume"},"Envelope_Health_":{"properties":{"code":{"type":"string","title":"业务状态码","default":"ok","description":"成功为 ok；失败为错误码页面列出的状态。","examples":["ok"],"x-empty":"始终返回。","x-group":"统一响应"},"message":{"type":"string","title":"结果说明","default":"成功","description":"可读的处理结果说明；判断成功仍需结合 HTTP 状态和 code。","examples":["成功"],"x-empty":"始终返回。","x-group":"统一响应"},"data":{"$ref":"#/components/schemas/Health"},"request_id":{"type":"string","title":"请求编号","description":"本次调用的跟踪编号，对应 X-Request-ID 响应头，排障时提供给管理员。","examples":["00000000000000000000000000000001"],"x-empty":"由服务端生成。","x-group":"统一响应"}},"type":"object","required":["data","request_id"],"title":"Envelope[Health]"},"Envelope_Quota_":{"properties":{"code":{"type":"string","title":"业务状态码","default":"ok","description":"成功为 ok；失败为错误码页面列出的状态。","examples":["ok"],"x-empty":"始终返回。","x-group":"统一响应"},"message":{"type":"string","title":"结果说明","default":"成功","description":"可读的处理结果说明；判断成功仍需结合 HTTP 状态和 code。","examples":["成功"],"x-empty":"始终返回。","x-group":"统一响应"},"data":{"$ref":"#/components/schemas/Quota"},"request_id":{"type":"string","title":"请求编号","description":"本次调用的跟踪编号，对应 X-Request-ID 响应头，排障时提供给管理员。","examples":["00000000000000000000000000000001"],"x-empty":"由服务端生成。","x-group":"统一响应"}},"type":"object","required":["data","request_id"],"title":"Envelope[Quota]"},"Envelope_Union_dict_str__Any___list_dict_str__Any____":{"properties":{"code":{"type":"string","title":"Code","default":"ok"},"message":{"type":"string","title":"Message","default":"成功"},"data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}],"title":"Data"},"request_id":{"type":"string","title":"Request Id"}},"type":"object","required":["data","request_id"],"title":"Envelope[Union[dict[str, Any], list[dict[str, Any]]]]"},"Envelope_dict_str__Any__":{"properties":{"code":{"type":"string","title":"Code","default":"ok"},"message":{"type":"string","title":"Message","default":"成功"},"data":{"additionalProperties":true,"type":"object","title":"Data"},"request_id":{"type":"string","title":"Request Id"}},"type":"object","required":["data","request_id"],"title":"Envelope[dict[str, Any]]"},"Envelope_list_Account__":{"properties":{"code":{"type":"string","title":"业务状态码","default":"ok","description":"成功为 ok；失败为错误码页面列出的状态。","examples":["ok"],"x-empty":"始终返回。","x-group":"统一响应"},"message":{"type":"string","title":"结果说明","default":"成功","description":"可读的处理结果说明；判断成功仍需结合 HTTP 状态和 code。","examples":["成功"],"x-empty":"始终返回。","x-group":"统一响应"},"data":{"items":{"$ref":"#/components/schemas/Account"},"type":"array","title":"Data"},"request_id":{"type":"string","title":"请求编号","description":"本次调用的跟踪编号，对应 X-Request-ID 响应头，排障时提供给管理员。","examples":["00000000000000000000000000000001"],"x-empty":"由服务端生成。","x-group":"统一响应"}},"type":"object","required":["data","request_id"],"title":"Envelope[list[Account]]"},"Envelope_list_dict_str__Any___":{"properties":{"code":{"type":"string","title":"Code","default":"ok"},"message":{"type":"string","title":"Message","default":"成功"},"data":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Data"},"request_id":{"type":"string","title":"Request Id"}},"type":"object","required":["data","request_id"],"title":"Envelope[list[dict[str, Any]]]"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Health":{"properties":{"status":{"type":"string","title":"服务状态","description":"固定成功状态 ok；不代表抖音登录和采集正常。","examples":["ok"],"x-empty":"按接口返回。","x-group":"服务状态"},"version":{"type":"string","title":"API 版本","description":"本服务 API 版本号。","examples":["1.0.0"],"x-empty":"按接口返回。","x-group":"服务状态"}},"type":"object","required":["status","version"],"title":"Health"},"Quota":{"properties":{"total_limit":{"type":"integer","title":"生命周期总额度","description":"该密钥累计受理次数上限，不会按天重置。单位：次。","examples":[1000],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"额度与使用统计"},"total_used":{"type":"integer","title":"累计受理次数","description":"已受理的请求总数，包含本次查询；业务失败也计次。","examples":[12],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"额度与使用统计"},"total_remaining":{"type":"integer","title":"剩余总额度","description":"生命周期剩余可受理次数。单位：次。","examples":[988],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"额度与使用统计"},"successful":{"type":"integer","title":"请求正常次数","description":"正常完成的计量请求数，包含平台明确确认目标无内容的业务404；不等同实际扣次。","examples":[10],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"额度与使用统计"},"failed":{"type":"integer","title":"请求故障次数","description":"已受理但执行异常的请求数，不包含明确的正常业务空结果。","examples":[1],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"额度与使用统计"},"rejected":{"type":"integer","title":"拦截次数","description":"在受理前被拒绝的请求数，不占 total_used。","examples":[2],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"额度与使用统计"},"success_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"成功率","description":"已完成请求 successful / (successful + failed) × 100，单位：百分比。","examples":[90.91],"x-empty":"没有完成请求时为 null。","x-group":"额度与使用统计"},"requests_today":{"type":"integer","title":"今日受理次数","description":"UTC 自然日已受理请求数，包含本次查询。","examples":[12],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"额度与使用统计"},"reset_timezone":{"type":"string","title":"日额度时区","description":"固定 UTC，UTC 零点重置日用量，累计总额度不重置。","examples":["UTC"],"x-empty":"按接口返回。","x-group":"额度与使用统计"},"daily_limit":{"type":"integer","title":"生效每日额度","description":"当前UTC日额度。fixed保留手动上限；auto为可用授权账号数乘daily_per_account，账号失效时可下降至0。已扣及已预占不清零。","examples":[1000],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"额度与使用统计"},"requests_per_minute":{"type":"integer","title":"分钟额度","description":"每分钟可受理请求上限，单位：次/分钟。","examples":[60],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"额度与使用统计"},"max_concurrency":{"type":"integer","title":"当前执行并发上限","description":"与effective_concurrency一致，动态收缩；这是执行数，和每分钟提交数、单批任务数不同。","examples":[1],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"额度与使用统计"},"capacity_mode":{"type":"string","enum":["fixed","auto"],"title":"容量模式","default":"fixed","description":"fixed：手动额度；auto：按可用授权账号自动计算。旧Key保留fixed。","examples":["auto"],"x-empty":"按接口返回。","x-group":"额度与使用统计"},"daily_per_account":{"type":"integer","title":"每账号日额度系数","default":1000,"description":"auto模式使用的每个可用授权账号日额度，默认1000，可配置1至10000；这是本服务配置，不是平台安全阈值，也不是跨Key共享的账号配额。","examples":[1000],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"额度与使用统计"},"ready_accounts":{"type":"integer","title":"可用授权账号数","default":0,"description":"本Key授权且可采集的账号数。忙碌或短间隔等待仍计入；失效、停用、复检中故障及人工待处理不计入。","examples":[2],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"额度与使用统计"},"ready_network_groups":{"type":"integer","title":"可用调度出口组数","default":0,"description":"按已确认出口IP分组；未确认时相同代理主机和端口保守归为一组，直连共用一组；不是实际独立公网IP的保证。","examples":[1],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"额度与使用统计"},"effective_concurrency":{"type":"integer","title":"当前生效执行并发","default":0,"description":"账号、调度出口、Key及全站上限共同限制的共享容量；无可用账号时为0。","examples":[1],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"额度与使用统计"},"expires_at":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"密钥到期时间","description":"到期时刻的 Unix 时间戳，单位：秒。","examples":[1795780800],"x-empty":"按接口返回。","x-group":"额度与使用统计"},"total_held":{"type":"integer","title":"Total Held","default":0},"billing_mode":{"type":"string","title":"Billing Mode","default":"success"},"queue_limit":{"type":"integer","title":"Queue Limit","default":20},"business_not_found":{"type":"integer","title":"目标无内容次数","default":0,"description":"successful中平台明确确认已删除、受限或不可访问的作品404数量；成功扣次模式下不扣次。","examples":[0],"x-empty":"按接口返回；数值 0 是有效值，不能用真假判断替代缺失判断。","x-group":"额度与使用统计"}},"type":"object","required":["total_limit","total_used","total_remaining","successful","failed","rejected","success_rate","requests_today","reset_timezone","daily_limit","requests_per_minute","max_concurrency","expires_at"],"title":"Quota"},"SearchDuration":{"type":"integer","enum":[0,1,2,3],"title":"SearchDuration"},"SearchSort":{"type":"integer","enum":[0,1,2],"title":"SearchSort"},"SearchTime":{"type":"integer","enum":[0,1,7,180],"title":"SearchTime"},"TaskInput":{"properties":{"operation":{"type":"string","enum":["detail","comments","comment_page","comment_replies","profile","posts","search"],"title":"Operation","description":"详情、旧版评论、一级评论单页、子评论单页、资料、发布作品、关键词搜索"},"target":{"anyOf":[{"type":"string","maxLength":1024,"minLength":1},{"type":"null"}],"title":"Target","description":"除搜索外必填：目标ID、抖音链接或单链接分享文案"},"account_id":{"anyOf":[{"type":"string","maxLength":40,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}],"title":"Account Id","description":"可选；指定后不自动换账号"},"keyword":{"anyOf":[{"type":"string","maxLength":100,"minLength":1},{"type":"null"}],"title":"Keyword","description":"搜索操作必填"},"pages":{"type":"integer","maximum":3.0,"minimum":1.0,"title":"Pages","description":"最多页数1–3，默认1；详情与资料固定1","default":1},"count":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Count","description":"每页请求条数，默认10；评论/发布作品1–20，搜索5–20；详情与资料忽略","default":10},"cursor":{"type":"integer","maximum":9999999999999.0,"minimum":0.0,"title":"Cursor","description":"评论/发布作品起始游标，默认0；评论上限2147483647，发布作品上限9999999999999","default":0},"parent_comment_id":{"anyOf":[{"type":"string","pattern":"^[0-9]{15,22}$"},{"type":"null"}],"title":"Parent Comment Id","description":"comment_replies必填：一级评论cid；其他操作不传"},"offset":{"type":"integer","maximum":1000.0,"minimum":0.0,"title":"Offset","description":"仅搜索：起始偏移0–1000，默认0；不是稳定页码","default":0},"sort_type":{"type":"integer","maximum":2.0,"minimum":0.0,"title":"Sort Type","description":"仅搜索：0综合（默认）、1最多点赞、2最新发布","default":0},"publish_time":{"type":"integer","enum":[0,1,7,180],"title":"Publish Time","description":"仅搜索：0不限（默认）、1一天内、7一周内、180半年内","default":0},"duration":{"type":"integer","maximum":3.0,"minimum":0.0,"title":"Duration","description":"仅搜索：0不限（默认）、1一分钟内、2一至五分钟、3五分钟以上","default":0}},"additionalProperties":false,"type":"object","required":["operation"],"title":"TaskInput"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"APIError":{"type":"object","required":["code","message","data","request_id"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"null"},"request_id":{"type":"string"},"reason":{"type":"string","description":"具体原因，如queue_full、pool_unavailable、idempotency_conflict、result_pending；其他情况与code一致"}}},"DouyinWork":{"type":"object","title":"作品清洗字段","description":"本版本清洗器的完整作品字段；详情和发布作品列表使用同一套字段。","properties":{"id":{"type":"string","title":"作品 ID","description":"唯一作品标识，来自 aweme_id；调用详情/评论接口时作为 aweme_id。必须按字符串保存。","examples":["1234567890123456789"],"x-empty":"有效记录需要作品 ID。","x-group":"作品标识与时间"},"desc":{"type":"string","title":"作品标题/描述","description":"作品描述经文本清洗后的内容，可能含话题文字。","examples":["示例发布作品"],"x-empty":"描述为空时清洗器使用作品 ID。","x-group":"作品标识与时间"},"collection_time":{"type":"string","title":"采集时间","description":"本服务整理该条记录的时间，不是发布时间。格式化时间使用采集引擎所在时区及日期格式；默认 YYYY-MM-DD HH:mm:ss，不含时区偏移。","examples":["2026-10-28 12:00:00"],"x-empty":"由采集引擎生成。","x-group":"作品标识与时间"},"create_timestamp":{"type":["integer","string"],"title":"发布时间戳","description":"平台 create_time，Unix 秒；转换为 JavaScript Date 前需乘以 1000。","examples":[1793188800],"x-empty":"未取得或上游为 0 时可能为 \"\"，应先检查类型。","x-group":"作品标识与时间"},"create_time":{"type":"string","title":"格式化发布时间","description":"格式化时间使用采集引擎所在时区及日期格式；默认 YYYY-MM-DD HH:mm:ss，不含时区偏移。用于展示，建议用 create_timestamp 做排序和跨时区换算。","examples":["2026-10-28 12:00:00"],"x-empty":"原始时间缺失时旧清洗器可能回退为采集时刻；不可视为可信发布时间。","x-group":"作品标识与时间"},"digg_count":{"type":"integer","title":"点赞数","description":"当前作品获得的点赞次数。独立字段，不与收藏、评论或分享合并。单位：次。","examples":[120],"x-empty":"平台明确返回 0 时保留 0；缺失、null 或非法计数返回 -1，表示未知，不是实际负数。修复前已保存的历史响应不会重写，其 -1 不能据此认定为 0。","x-group":"互动统计"},"collect_count":{"type":"integer","title":"收藏数","description":"当前作品被收藏的次数。不是作者的收藏作品总数。单位：次。","examples":[15],"x-empty":"平台明确返回 0 时保留 0；缺失、null 或非法计数返回 -1，表示未知，不是实际负数。修复前已保存的历史响应不会重写，其 -1 不能据此认定为 0。","x-group":"互动统计"},"comment_count":{"type":"integer","title":"评论数","description":"平台统计的作品评论数量，不是本次评论接口返回数组的长度。单位：条。","examples":[8],"x-empty":"平台明确返回 0 时保留 0；缺失、null 或非法计数返回 -1，表示未知，不是实际负数。修复前已保存的历史响应不会重写，其 -1 不能据此认定为 0。","x-group":"互动统计"},"share_count":{"type":"integer","title":"分享数","description":"当前作品被分享的次数。单位：次。","examples":[3],"x-empty":"平台明确返回 0 时保留 0；缺失、null 或非法计数返回 -1，表示未知，不是实际负数。修复前已保存的历史响应不会重写，其 -1 不能据此认定为 0。","x-group":"互动统计"},"play_count":{"type":"integer","title":"播放数","description":"平台提供的作品播放计数；平台不一定开放这个指标。单位：次。","examples":[-1],"x-empty":"平台明确返回 0 时保留 0；缺失、null 或非法计数返回 -1，表示未知，不是实际负数。修复前已保存的历史响应不会重写，其 -1 不能据此认定为 0。","x-group":"互动统计"},"type":{"type":"string","title":"作品类型","description":"当前中文配置中为“视频”“图集”或“实况”；实况可同时含图片和动态片段。","examples":["视频"],"x-empty":"由清洗器根据媒体内容分类。","x-group":"媒体与链接"},"duration":{"type":"string","title":"视频时长","description":"HH:mm:ss 格式字符串；源毫秒值向下取整到秒。例如 00:01:05 是 65 秒，不是数值 65 或 65000。","examples":["00:01:05"],"x-empty":"图集/实况或缺少时长时为 00:00:00。","x-group":"媒体与链接"},"width":{"type":"integer","title":"媒体宽度","description":"清洗器选中视频资源的宽度，单位：像素。","examples":[1080],"x-empty":"图集/实况或尺寸未知时为 -1。","x-group":"媒体与链接"},"height":{"type":"integer","title":"媒体高度","description":"清洗器选中视频资源的高度，单位：像素。","examples":[1920],"x-empty":"图集/实况或尺寸未知时为 -1。","x-group":"媒体与链接"},"downloads":{"type":["string","array"],"title":"媒体下载地址","description":"视频：单个 URL 字符串；图集/实况：按媒体顺序排列的 URL 字符串数组。实况数组内可能混合图片与视频地址。地址可能过期，不是永久文件存储地址。","examples":["https://example.com/video.mp4"],"x-empty":"视频未取得地址可能为 \"\"；数组项也可能为空字符串。","x-group":"媒体与链接","items":{"type":"string","title":"单项媒体地址","description":"仅当 downloads 为数组时使用此路径；按原顺序读取各项。","examples":["https://example.com/image-1.jpg"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"媒体与链接"}},"uri":{"type":"string","title":"平台视频资源标识","description":"视频 play_addr.uri，通常是资源标识，并不保证是可直接访问的 URL。","examples":["example_video_resource"],"x-empty":"图集/实况或未提供时为空字符串。","x-group":"媒体与链接"},"share_url":{"type":"string","title":"作品分享地址","description":"清洗器生成的网页地址：视频为 /video/{id}，图集/实况为 /note/{id}。","examples":["https://www.douyin.com/video/1234567890123456789"],"x-empty":"未知类型可能为空字符串。","x-group":"媒体与链接"},"static_cover":{"type":"string","title":"静态封面","description":"作品静态封面 URL。优先使用上游封面；图集/实况（LivePhoto）缺少独立封面时使用首个有效图片资源或该媒体的静态封面，不使用视频播放地址。可能有访问时效，不是永久存储地址。","examples":["https://example.com/cover.jpg"],"x-empty":"平台未提供有效图片资源时为空字符串。","x-group":"媒体与链接"},"dynamic_cover":{"type":"string","title":"动态封面","description":"视频动态封面的 URL；不是作品视频下载地址。","examples":["https://example.com/cover.webp"],"x-empty":"图集/实况或平台未提供时为空字符串。","x-group":"媒体与链接"},"uid":{"type":"string","title":"数字用户 ID","description":"作者或评论者的数字用户标识。按字符串保存，避免 JavaScript 大整数精度丢失。","examples":["1234567890000000"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"作者信息"},"sec_uid":{"type":"string","title":"安全用户标识","description":"作者或评论者的 sec_uid；调用账号资料/发布作品接口时作为 sec_user_id 传入。","examples":["MS4wLjABAAAA_EXAMPLE_USER"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"作者信息"},"unique_id":{"type":"string","title":"抖音号","description":"用户设置的抖音号。不是 uid，也不是请求参数 account_id。","examples":["example_creator"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"作者信息"},"nickname":{"type":"string","title":"显示昵称","description":"经清洗的显示名称，可能与平台原始昵称的特殊字符有所不同。","examples":["示例作者"],"x-empty":"缺失时可能使用“已注销账号”或“无效账号昵称”。","x-group":"作者信息"},"avatar":{"type":"string","title":"用户头像地址","description":"作品作者或评论者的 HTTPS 头像 URL，优先大图，其次中图、小图。直接来自本次响应，不额外请求用户资料；链接可能过期。","examples":["https://example.com/avatar.jpg"],"x-empty":"平台未提供头像地址时为 \"\"；可再调用账号资料接口读取 avatar_larger.url_list。","x-group":"作者信息"},"signature":{"type":"string","title":"个人简介","description":"作者或评论者的简介文本。","examples":["这是合成的简介示例"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"作者信息"},"user_age":{"type":"integer","title":"年龄","description":"平台提供的用户年龄，单位为岁，不从生日自行推算。","examples":[25],"x-empty":"缺失或上游为 0 时清洗器回退为 -1。","x-group":"作者信息"},"mark":{"type":"string","title":"采集备注","description":"采集引擎用于标记作者的名称；当前常与清洗后的 nickname 相同，不是平台认证标记。","examples":["示例作者"],"x-empty":"沿用引擎生成的名称或备注。","x-group":"作者信息"},"music_title":{"type":"string","title":"音乐标题","description":"作品使用的音乐名称。","examples":["示例音乐"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"音乐信息"},"music_author":{"type":"string","title":"音乐作者","description":"平台返回的音乐作者名称，不一定是作品发布者。","examples":["示例音乐作者"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"音乐信息"},"music_url":{"type":"string","title":"音乐地址","description":"音乐播放/下载 URL；部分作品音乐不提供地址，链接可能过期。","examples":["https://example.com/audio.mp3"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"音乐信息"},"text_extra":{"type":"array","title":"文案话题","description":"从 text_extra 提取的 hashtag_name 字符串列表，不包含空话题名称。","examples":[["示例话题"]],"x-empty":"没有话题时为空数组 []。","x-group":"标签与扩展","items":{"type":"string","title":"单个话题名","description":"一个文案话题的名称。","examples":["示例话题"],"x-empty":"已过滤空名称。","x-group":"标签与扩展"}},"tag":{"type":"array","title":"平台分类标签","description":"从 video_tag 提取的 tag_name 列表，与文案里的话题不是同一个来源。","examples":[["生活"]],"x-empty":"没有分类标签时为空数组 []；个别项可能为空字符串。","x-group":"标签与扩展","items":{"type":"string","title":"单个分类标签","description":"一个平台分类标签名称。","examples":["生活"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"标签与扩展"}},"extra":{"type":"string","title":"扩展锚点信息","description":"anchor_info 序列化后的 JSON 字符串，不是 JSON 对象。非空时可二次 JSON.parse；内部字段由平台动态决定，不定义固定键。","examples":[""],"x-empty":"无扩展锚点信息时为空字符串。","x-group":"标签与扩展"}},"additionalProperties":true},"DouyinComment":{"type":"object","title":"评论清洗字段","description":"本版本清洗器的完整评论字段；每个数组元素对应一条评论。","properties":{"cid":{"type":"string","title":"评论 ID","description":"评论唯一标识。必须按字符串保存，避免大整数精度丢失。","examples":["1234567890123456000"],"x-empty":"有效记录需要评论 ID。","x-group":"评论内容"},"text":{"type":"string","title":"评论正文","description":"评论文本；只有图片或表情的评论可能没有文字。","examples":["这是一条示例评论"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论内容"},"image":{"type":"string","title":"评论图片","description":"清洗器选中的一张评论原图 URL，不是图片数组，也不保证包含该评论的全部图片。","examples":["https://example.com/comment.jpg"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论内容"},"sticker":{"type":"string","title":"评论表情图","description":"评论表情的静态图片 URL。","examples":[""],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论内容"},"ip_label":{"type":"string","title":"IP 属地标签","description":"平台显示的属地文字，不是原始 IP 地址。","examples":["广东"],"x-empty":"未提供时为“未知”。","x-group":"评论内容"},"collection_time":{"type":"string","title":"采集时间","description":"本服务整理该条记录的时间，不是发布时间。格式化时间使用采集引擎所在时区及日期格式；默认 YYYY-MM-DD HH:mm:ss，不含时区偏移。","examples":["2026-10-28 12:00:00"],"x-empty":"由采集引擎生成。","x-group":"评论时间"},"create_timestamp":{"type":["integer","string"],"title":"发布时间戳","description":"平台 create_time，Unix 秒；转换为 JavaScript Date 前需乘以 1000。","examples":[1793188800],"x-empty":"未取得或上游为 0 时可能为 \"\"，应先检查类型。","x-group":"评论时间"},"create_time":{"type":"string","title":"格式化发布时间","description":"格式化时间使用采集引擎所在时区及日期格式；默认 YYYY-MM-DD HH:mm:ss，不含时区偏移。用于展示，建议用 create_timestamp 做排序和跨时区换算。","examples":["2026-10-28 12:00:00"],"x-empty":"原始时间缺失时旧清洗器可能回退为采集时刻；不可视为可信发布时间。","x-group":"评论时间"},"digg_count":{"type":"integer","title":"评论点赞数","description":"该条评论获得的点赞次数，不是作品点赞数。单位：次。","examples":[2],"x-empty":"平台明确返回 0 时保留 0；缺失、null 或非法计数返回 -1，表示未知，不是实际负数。修复前已保存的历史响应不会重写，其 -1 不能据此认定为 0。","x-group":"互动与回复关系"},"reply_comment_total":{"type":"integer","title":"评论回复数","description":"该一级评论的平台回复统计数；大于0时全量采集会翻回复列表。单位：条。缺失时的0不能保证没有回复。","examples":[0],"x-empty":"缺失时回退为 0，不能据此确认平台真实没有回复。","x-group":"互动与回复关系"},"reply_id":{"type":"string","title":"回复关联 ID","description":"沿用平台 reply_id，用于识别评论关联的回复关系，不作为独立回复接口参数。","examples":["0"],"x-empty":"未提供时为 \"\"，也可能返回字符串 \"0\"。","x-group":"互动与回复关系"},"reply_to_reply_id":{"type":"string","title":"被回复的回复 ID","description":"沿用平台 reply_to_reply_id；只有平台提供时才可用于关联被回复的条目。","examples":["0"],"x-empty":"未提供时为 \"\"，也可能返回字符串 \"0\"。","x-group":"互动与回复关系"},"uid":{"type":"string","title":"数字用户 ID","description":"作者或评论者的数字用户标识。按字符串保存，避免 JavaScript 大整数精度丢失。","examples":["1234567890000000"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"sec_uid":{"type":"string","title":"安全用户标识","description":"作者或评论者的 sec_uid；调用账号资料/发布作品接口时作为 sec_user_id 传入。","examples":["MS4wLjABAAAA_EXAMPLE_USER"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"unique_id":{"type":"string","title":"抖音号","description":"用户设置的抖音号。不是 uid，也不是请求参数 account_id。","examples":["example_creator"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"nickname":{"type":"string","title":"显示昵称","description":"经清洗的显示名称，可能与平台原始昵称的特殊字符有所不同。","examples":["示例作者"],"x-empty":"缺失时可能使用“已注销账号”或“无效账号昵称”。","x-group":"评论者信息"},"avatar":{"type":"string","title":"用户头像地址","description":"作品作者或评论者的 HTTPS 头像 URL，优先大图，其次中图、小图。直接来自本次响应，不额外请求用户资料；链接可能过期。","examples":["https://example.com/avatar.jpg"],"x-empty":"平台未提供头像地址时为 \"\"；可再调用账号资料接口读取 avatar_larger.url_list。","x-group":"评论者信息"},"signature":{"type":"string","title":"个人简介","description":"作者或评论者的简介文本。","examples":["这是合成的简介示例"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"user_age":{"type":"integer","title":"年龄","description":"平台提供的用户年龄，单位为岁，不从生日自行推算。","examples":[25],"x-empty":"缺失或上游为 0 时清洗器回退为 -1。","x-group":"评论者信息"},"mark":{"type":"string","title":"采集备注","description":"采集引擎用于标记作者的名称；当前常与清洗后的 nickname 相同，不是平台认证标记。","examples":["示例作者"],"x-empty":"沿用引擎生成的名称或备注。","x-group":"评论者信息"},"reply_preview":{"type":"array","title":"随一级评论返回的回复预览","description":"保留平台在一级评论中附带的真实回复正文；不额外请求或扣次。不是完整回复分页，不能根据此数组长度判断是否采全。","examples":[[]],"x-empty":"未附带回复时为 []；旧归档可能没有此字段。","x-group":"互动与回复关系","items":{"type":"object","properties":{"cid":{"type":"string","title":"评论 ID","description":"评论唯一标识。必须按字符串保存，避免大整数精度丢失。","examples":["1234567890123456000"],"x-empty":"有效记录需要评论 ID。","x-group":"评论内容"},"text":{"type":"string","title":"评论正文","description":"评论文本；只有图片或表情的评论可能没有文字。","examples":["这是一条示例评论"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论内容"},"image":{"type":"string","title":"评论图片","description":"清洗器选中的一张评论原图 URL，不是图片数组，也不保证包含该评论的全部图片。","examples":["https://example.com/comment.jpg"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论内容"},"sticker":{"type":"string","title":"评论表情图","description":"评论表情的静态图片 URL。","examples":[""],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论内容"},"ip_label":{"type":"string","title":"IP 属地标签","description":"平台显示的属地文字，不是原始 IP 地址。","examples":["广东"],"x-empty":"未提供时为“未知”。","x-group":"评论内容"},"collection_time":{"type":"string","title":"采集时间","description":"本服务整理该条记录的时间，不是发布时间。格式化时间使用采集引擎所在时区及日期格式；默认 YYYY-MM-DD HH:mm:ss，不含时区偏移。","examples":["2026-10-28 12:00:00"],"x-empty":"由采集引擎生成。","x-group":"评论时间"},"create_timestamp":{"type":["integer","string"],"title":"发布时间戳","description":"平台 create_time，Unix 秒；转换为 JavaScript Date 前需乘以 1000。","examples":[1793188800],"x-empty":"未取得或上游为 0 时可能为 \"\"，应先检查类型。","x-group":"评论时间"},"create_time":{"type":"string","title":"格式化发布时间","description":"格式化时间使用采集引擎所在时区及日期格式；默认 YYYY-MM-DD HH:mm:ss，不含时区偏移。用于展示，建议用 create_timestamp 做排序和跨时区换算。","examples":["2026-10-28 12:00:00"],"x-empty":"原始时间缺失时旧清洗器可能回退为采集时刻；不可视为可信发布时间。","x-group":"评论时间"},"digg_count":{"type":"integer","title":"评论点赞数","description":"该条评论获得的点赞次数，不是作品点赞数。单位：次。","examples":[2],"x-empty":"平台明确返回 0 时保留 0；缺失、null 或非法计数返回 -1，表示未知，不是实际负数。修复前已保存的历史响应不会重写，其 -1 不能据此认定为 0。","x-group":"互动与回复关系"},"reply_comment_total":{"type":"integer","title":"评论回复数","description":"该评论的平台回复统计数，不等于已保存正文数。正文看 reply_preview 或独立回复分页结果。单位：条。","examples":[0],"x-empty":"缺失时回退为 0，不能据此确认平台真实没有回复。","x-group":"互动与回复关系"},"reply_id":{"type":"string","title":"回复关联 ID","description":"沿用平台 reply_id，用于识别评论关联的回复关系，不作为独立回复接口参数。","examples":["0"],"x-empty":"未提供时为 \"\"，也可能返回字符串 \"0\"。","x-group":"互动与回复关系"},"reply_to_reply_id":{"type":"string","title":"被回复的回复 ID","description":"沿用平台 reply_to_reply_id；只有平台提供时才可用于关联被回复的条目。","examples":["0"],"x-empty":"未提供时为 \"\"，也可能返回字符串 \"0\"。","x-group":"互动与回复关系"},"uid":{"type":"string","title":"数字用户 ID","description":"作者或评论者的数字用户标识。按字符串保存，避免 JavaScript 大整数精度丢失。","examples":["1234567890000000"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"sec_uid":{"type":"string","title":"安全用户标识","description":"作者或评论者的 sec_uid；调用账号资料/发布作品接口时作为 sec_user_id 传入。","examples":["MS4wLjABAAAA_EXAMPLE_USER"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"unique_id":{"type":"string","title":"抖音号","description":"用户设置的抖音号。不是 uid，也不是请求参数 account_id。","examples":["example_creator"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"nickname":{"type":"string","title":"显示昵称","description":"经清洗的显示名称，可能与平台原始昵称的特殊字符有所不同。","examples":["示例作者"],"x-empty":"缺失时可能使用“已注销账号”或“无效账号昵称”。","x-group":"评论者信息"},"avatar":{"type":"string","title":"用户头像地址","description":"作品作者或评论者的 HTTPS 头像 URL，优先大图，其次中图、小图。直接来自本次响应，不额外请求用户资料；链接可能过期。","examples":["https://example.com/avatar.jpg"],"x-empty":"平台未提供头像地址时为 \"\"；可再调用账号资料接口读取 avatar_larger.url_list。","x-group":"评论者信息"},"signature":{"type":"string","title":"个人简介","description":"作者或评论者的简介文本。","examples":["这是合成的简介示例"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"user_age":{"type":"integer","title":"年龄","description":"平台提供的用户年龄，单位为岁，不从生日自行推算。","examples":[25],"x-empty":"缺失或上游为 0 时清洗器回退为 -1。","x-group":"评论者信息"},"mark":{"type":"string","title":"采集备注","description":"采集引擎用于标记作者的名称；当前常与清洗后的 nickname 相同，不是平台认证标记。","examples":["示例作者"],"x-empty":"沿用引擎生成的名称或备注。","x-group":"评论者信息"},"parent_comment_id":{"type":"string","description":"所属一级评论 CID"},"collection_source":{"type":"string","enum":["inline_preview"],"description":"随一级评论返回的预览，不代表独立回复分页已成功"}}}}},"additionalProperties":true},"DouyinProfile":{"type":"object","title":"平台账号资料","description":"返回经敏感字段过滤的平台用户对象。此处逐项说明已知字段及头像子字段；平台动态扩展字段仍可返回，不声称穷尽平台所有键。","properties":{"uid":{"type":["string","null"],"title":"数字用户 ID","description":"数字用户标识；按字符串保存。","examples":["1234567890000000"],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号标识与资料"},"sec_uid":{"type":["string","null"],"title":"安全用户标识","description":"调用资料/发布作品接口时作为 sec_user_id。","examples":["MS4wLjABAAAA_EXAMPLE_USER"],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号标识与资料"},"unique_id":{"type":["string","null"],"title":"抖音号","description":"用户设置的抖音号，不是 uid。","examples":["example_creator"],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号标识与资料"},"short_id":{"type":["string","null"],"title":"短用户标识","description":"平台旧式短标识，可能为空或 0；不建议作为请求目标。","examples":["0"],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号标识与资料"},"nickname":{"type":["string","null"],"title":"昵称","description":"平台返回的用户显示昵称。","examples":["示例作者"],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号标识与资料"},"signature":{"type":["string","null"],"title":"简介","description":"平台返回的个人简介。","examples":["示例个人简介"],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号标识与资料"},"custom_verify":{"type":["string","null"],"title":"个人认证说明","description":"平台返回的个人认证文案。","examples":[""],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号标识与资料"},"enterprise_verify_reason":{"type":["string","null"],"title":"企业认证说明","description":"平台返回的企业/机构认证文案。","examples":[""],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号标识与资料"},"country":{"type":["string","null"],"title":"国家/地区","description":"平台公开的国家或地区字段；不是精确定位。","examples":["中国"],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"公开地区与学校"},"province":{"type":["string","null"],"title":"省级地区","description":"平台公开的省级地区。","examples":["广东"],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"公开地区与学校"},"city":{"type":["string","null"],"title":"城市","description":"平台公开的城市。","examples":["广州"],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"公开地区与学校"},"district":{"type":["string","null"],"title":"区县","description":"平台公开的区县字段。","examples":[""],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"公开地区与学校"},"ip_location":{"type":["string","null"],"title":"IP 属地","description":"平台显示的属地文字，不是原始 IP。","examples":["IP属地：广东"],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"公开地区与学校"},"school_name":{"type":["string","null"],"title":"学校名称","description":"用户公开的学校名称。","examples":[""],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"公开地区与学校"},"follower_count":{"type":["integer","null"],"title":"粉丝数","description":"关注该用户的人数，单位：人。","examples":[1000],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号统计"},"following_count":{"type":["integer","null"],"title":"关注数","description":"该用户关注的人数，单位：人。","examples":[50],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号统计"},"total_favorited":{"type":["integer","string","null"],"title":"累计获赞","description":"该用户获得的累计点赞数，单位：次。平台可能返回数字或字符串，保留原值。","examples":[8000],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号统计"},"aweme_count":{"type":["integer","null"],"title":"发布作品数","description":"平台提供的作品数量，不等于本次发布列表长度。单位：个。","examples":[24],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号统计"},"favoriting_count":{"type":["integer","null"],"title":"喜欢作品数","description":"平台提供的用户喜欢作品计数，不是收藏数，也不代表开放喜欢列表。单位：个。","examples":[12],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号统计"},"max_follower_count":{"type":["integer","null"],"title":"平台最大粉丝计数","description":"平台 max_follower_count 原值；不可用它替代当前 follower_count。单位：人。","examples":[1100],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号统计"},"user_age":{"type":["integer","null"],"title":"年龄","description":"平台提供的年龄，单位：岁；未披露时不要推算。","examples":[25],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号统计"},"gender":{"type":["integer","null"],"title":"性别代码","description":"平台 gender 原始代码；本接口不转换为中文文案，未识别代码应保留原值。","examples":[0],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"账号标识与资料"},"avatar_thumb":{"type":["object","null"],"title":"小头像","description":"平台头像对象；内部可包含多个候选地址。","examples":[{"url_list":["https://example.com/avatar.jpg"],"uri":"example_avatar_resource","width":100,"height":100}],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"头像","additionalProperties":true,"properties":{"url_list":{"type":["array","null"],"title":"头像候选地址","description":"同一头像的候选 URL 列表，地址可能过期。","examples":[["https://example.com/avatar.jpg"]],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"头像","items":{"type":"string","title":"单个头像地址","description":"一个头像图片 URL。","examples":["https://example.com/avatar.jpg"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"头像"}},"width":{"type":["integer","null"],"title":"头像宽度","description":"头像宽度，单位：像素。","examples":[100],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"头像"},"height":{"type":["integer","null"],"title":"头像高度","description":"头像高度，单位：像素。","examples":[100],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"头像"},"uri":{"type":["string","null"],"title":"头像资源标识","description":"平台资源标识，不保证为可直接打开的 URL。","examples":["example_avatar_resource"],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"头像"}}},"avatar_medium":{"type":["object","null"],"title":"中头像","description":"平台头像对象；内部可包含多个候选地址。","examples":[{"url_list":["https://example.com/avatar.jpg"],"uri":"example_avatar_resource","width":100,"height":100}],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"头像","additionalProperties":true,"properties":{"url_list":{"type":["array","null"],"title":"头像候选地址","description":"同一头像的候选 URL 列表，地址可能过期。","examples":[["https://example.com/avatar.jpg"]],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"头像","items":{"type":"string","title":"单个头像地址","description":"一个头像图片 URL。","examples":["https://example.com/avatar.jpg"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"头像"}},"width":{"type":["integer","null"],"title":"头像宽度","description":"头像宽度，单位：像素。","examples":[100],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"头像"},"height":{"type":["integer","null"],"title":"头像高度","description":"头像高度，单位：像素。","examples":[100],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"头像"},"uri":{"type":["string","null"],"title":"头像资源标识","description":"平台资源标识，不保证为可直接打开的 URL。","examples":["example_avatar_resource"],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"头像"}}},"avatar_larger":{"type":["object","null"],"title":"大头像","description":"平台头像对象；内部可包含多个候选地址。","examples":[{"url_list":["https://example.com/avatar.jpg"],"uri":"example_avatar_resource","width":100,"height":100}],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"头像","additionalProperties":true,"properties":{"url_list":{"type":["array","null"],"title":"头像候选地址","description":"同一头像的候选 URL 列表，地址可能过期。","examples":[["https://example.com/avatar.jpg"]],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"头像","items":{"type":"string","title":"单个头像地址","description":"一个头像图片 URL。","examples":["https://example.com/avatar.jpg"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"头像"}},"width":{"type":["integer","null"],"title":"头像宽度","description":"头像宽度，单位：像素。","examples":[100],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"头像"},"height":{"type":["integer","null"],"title":"头像高度","description":"头像高度，单位：像素。","examples":[100],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"头像"},"uri":{"type":["string","null"],"title":"头像资源标识","description":"平台资源标识，不保证为可直接打开的 URL。","examples":["example_avatar_resource"],"x-empty":"平台可省略或返回 null；缺失不等于 0。","x-group":"头像"}}}},"additionalProperties":true},"SearchWorkResponse":{"type":"object","required":["code","message","data","request_id"],"properties":{"code":{"type":"string","title":"业务状态码","description":"成功为 ok；失败为错误码页面列出的状态。","examples":["ok"],"x-empty":"始终返回。","x-group":"统一响应"},"message":{"type":"string","title":"结果说明","description":"可读的处理结果说明；判断成功仍需结合 HTTP 状态和 code。","examples":["成功"],"x-empty":"始终返回。","x-group":"统一响应"},"data":{"type":"array","items":{"$ref":"#/components/schemas/DouyinWork"},"description":"匹配关键词的作品数组；平台确认成功且无匹配作品时为 []。每条作品的点赞、评论、收藏等均为独立字段。不返回搜索总数、next_cursor 或 has_more；不要从数组长度推算下一页。","title":"业务数据","x-empty":"失败响应为 null；成功形态见下方逐字段说明。"},"request_id":{"type":"string","title":"请求编号","description":"本次调用的跟踪编号，对应 X-Request-ID 响应头，排障时提供给管理员。","examples":["00000000000000000000000000000001"],"x-empty":"由服务端生成。","x-group":"统一响应"}}},"WorkDetailResponse":{"type":"object","required":["code","message","data","request_id"],"properties":{"code":{"type":"string","title":"业务状态码","description":"成功为 ok；失败为错误码页面列出的状态。","examples":["ok"],"x-empty":"始终返回。","x-group":"统一响应"},"message":{"type":"string","title":"结果说明","description":"可读的处理结果说明；判断成功仍需结合 HTTP 状态和 code。","examples":["成功"],"x-empty":"始终返回。","x-group":"统一响应"},"data":{"$ref":"#/components/schemas/DouyinWork","description":"单个作品对象；从 data.digg_count 等路径直接取值。","title":"业务数据","x-empty":"失败响应为 null；成功形态见下方逐字段说明。"},"request_id":{"type":"string","title":"请求编号","description":"本次调用的跟踪编号，对应 X-Request-ID 响应头，排障时提供给管理员。","examples":["00000000000000000000000000000001"],"x-empty":"由服务端生成。","x-group":"统一响应"}}},"CommentListResponse":{"type":"object","required":["code","message","data","request_id"],"properties":{"code":{"type":"string","title":"业务状态码","description":"成功为 ok；失败为错误码页面列出的状态。","examples":["ok"],"x-empty":"始终返回。","x-group":"统一响应"},"message":{"type":"string","title":"结果说明","description":"可读的处理结果说明；判断成功仍需结合 HTTP 状态和 code。","examples":["成功"],"x-empty":"始终返回。","x-group":"统一响应"},"data":{"type":"array","items":{"$ref":"#/components/schemas/DouyinComment"},"description":"评论对象数组；无可见评论且平台确认成功时为 []。不包含 next_cursor 或 has_more。","title":"业务数据","x-empty":"失败响应为 null；成功形态见下方逐字段说明。"},"request_id":{"type":"string","title":"请求编号","description":"本次调用的跟踪编号，对应 X-Request-ID 响应头，排障时提供给管理员。","examples":["00000000000000000000000000000001"],"x-empty":"由服务端生成。","x-group":"统一响应"}}},"WorkListResponse":{"type":"object","required":["code","message","data","request_id"],"properties":{"code":{"type":"string","title":"业务状态码","description":"成功为 ok；失败为错误码页面列出的状态。","examples":["ok"],"x-empty":"始终返回。","x-group":"统一响应"},"message":{"type":"string","title":"结果说明","description":"可读的处理结果说明；判断成功仍需结合 HTTP 状态和 code。","examples":["成功"],"x-empty":"始终返回。","x-group":"统一响应"},"data":{"type":"array","items":{"$ref":"#/components/schemas/DouyinWork"},"description":"作品对象数组；每个元素是一条作品。点赞/收藏/评论/分享直接位于每条作品中，没有 statistics 包裹层。不保证返回后续游标。","title":"业务数据","x-empty":"失败响应为 null；成功形态见下方逐字段说明。"},"request_id":{"type":"string","title":"请求编号","description":"本次调用的跟踪编号，对应 X-Request-ID 响应头，排障时提供给管理员。","examples":["00000000000000000000000000000001"],"x-empty":"由服务端生成。","x-group":"统一响应"}}},"UserProfileResponse":{"type":"object","required":["code","message","data","request_id"],"properties":{"code":{"type":"string","title":"业务状态码","description":"成功为 ok；失败为错误码页面列出的状态。","examples":["ok"],"x-empty":"始终返回。","x-group":"统一响应"},"message":{"type":"string","title":"结果说明","description":"可读的处理结果说明；判断成功仍需结合 HTTP 状态和 code。","examples":["成功"],"x-empty":"始终返回。","x-group":"统一响应"},"data":{"$ref":"#/components/schemas/DouyinProfile","description":"单个用户对象；平台原始结构可能增加字段，敏感名称字段会过滤。","title":"业务数据","x-empty":"失败响应为 null；成功形态见下方逐字段说明。"},"request_id":{"type":"string","title":"请求编号","description":"本次调用的跟踪编号，对应 X-Request-ID 响应头，排障时提供给管理员。","examples":["00000000000000000000000000000001"],"x-empty":"由服务端生成。","x-group":"统一响应"}}},"JobView":{"type":"object","description":"任务状态；读取权限按API Key隔离","properties":{"id":{"type":"string","description":"任务编号，随机32位十六进制；不是API Key"},"batch_id":{"type":"string","description":"批次编号，单任务也归属一个批次"},"position":{"type":"integer","description":"输入顺序，从0开始；并行完成顺序可能不同"},"state":{"type":"string","description":"任务状态","enum":["queued","waiting_account","running","succeeded","failed","expired","cancelled"]},"created":{"type":"number","description":"受理时间，Unix秒"},"started":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"开始执行时间，Unix秒"},"finished":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"采集执行结束时间，Unix秒；不含最终入库提交"},"ready_at":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"结果及扣次事务提交完成时间，Unix秒；旧记录或指标缺失为null"},"storage_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"完整结果、索引、扣次及事务提交耗时，毫秒；未记录为null"},"total_ready_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"从受理到结果入库可读取的总耗时，含排队；未记录为null"},"queue_deadline":{"type":"number","description":"排队/等待账号截止时间，Unix秒"},"deadline":{"type":"number","description":"整体截止时间，Unix秒；重试不延长"},"http_status":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"任务执行结果状态；状态查询本身返回HTTP200，取消任务的499仅是内部记录"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"可机器判断的执行错误分类；成功为null"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"状态或错误说明"},"quota_state":{"type":"string","description":"held预占、charged已扣、released已释放","enum":["held","charged","released"]},"recoveries":{"type":"integer","description":"执行中断后恢复次数；可能重新访问平台，但不重复扣次"},"task":{"$ref":"#/components/schemas/TaskInput"},"outcome":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"not_found表示平台明确确认作品无内容，属于正常业务结果；原始state保留兼容语义，实际HTTP及额度另列。"},"queue_ms":{"type":"integer","description":"排队毫秒数；未开始时包含已等待时间"},"execution_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"执行毫秒数；尚未开始为null"},"result_available":{"type":"boolean","description":"是否已经持久化结果，失败响应也保存"},"poll_after_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"建议查询间隔秒数；结束后为null"},"ahead_in_key":{"type":"integer","description":"本Key中较早且尚在等待的任务数，仅供参考；不暴露其他客户"},"estimated_wait_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"预计等待秒数；当前未知返回null，不承诺固定位置或完成时间"}},"required":["id","batch_id","position","state","created","started","finished","ready_at","storage_ms","total_ready_ms","queue_deadline","deadline","http_status","reason","message","quota_state","recoveries","task","outcome","queue_ms","execution_ms","result_available","poll_after_seconds","ahead_in_key","estimated_wait_seconds"]},"BatchView":{"type":"object","description":"","properties":{"batch_id":{"type":"string","description":"批次编号"},"mode":{"type":"string","description":"parallel受控并行，serial输入顺序执行"},"created":{"type":"number","description":"受理时间Unix秒"},"state":{"type":"string","description":"running / succeeded / partial_success / failed"},"counts":{"type":"object","description":"","properties":{"queued":{"type":"integer","description":"排队任务数"},"waiting_account":{"type":"integer","description":"等待账号恢复数"},"running":{"type":"integer","description":"执行中数量"},"succeeded":{"type":"integer","description":"成功数量"},"failed":{"type":"integer","description":"失败数量"},"business_not_found":{"type":"integer","description":"failed中已明确确认的正常业务空结果数量；后台从请求故障中单列"},"expired":{"type":"integer","description":"超期数量"},"cancelled":{"type":"integer","description":"取消数量"}},"required":["queued","waiting_account","running","succeeded","failed","business_not_found","expired","cancelled"]},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/JobView"},"description":"最多10个任务，按输入顺序排列"},"poll_after_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"轮询间隔秒数；结束后为null"}},"required":["batch_id","mode","created","state","counts","jobs","poll_after_seconds"]},"QueueCapacity":{"type":"object","description":"","properties":{"authorized_accounts":{"type":"integer","description":"当前Key获授权且仍存在的账号数"},"ready_accounts":{"type":"integer","description":"健康可用账号数，包含正在执行的账号"},"idle_accounts":{"type":"integer","description":"当前可用于执行的空闲账号数"},"unavailable_accounts":{"type":"integer","description":"已授权但失效、停用、等待复检等不可用账号数"},"ready_network_groups":{"type":"integer","description":"可用调度出口组数；同已确认IP、同未确认代理主机端口或直连分别合并，不返回网络凭据"},"capacity_mode":{"type":"string","description":"fixed保留手动日额度；auto随可用授权账号数调整"},"daily_per_account":{"type":"integer","description":"auto使用的日额度系数，默认1000，不是平台安全阈值"},"effective_daily_limit":{"type":"integer","description":"当前生效日额度；auto为ready_accounts乘daily_per_account，fixed为原手动值"},"server_concurrency_limit":{"type":"integer","description":"当前全站执行保护上限，资源在全部Key间共享"},"effective_concurrency":{"type":"integer","description":"账号/出口/Key/全站设置共同限制的理论上限；不是资源独占保证"},"key_concurrency_limit":{"type":"integer","description":"fixed为Key手动上限；auto的保护上限为4，实际还受账号、出口及全站限制"},"pending_limit":{"type":"integer","description":"Key待完成任务上限，包含执行中的任务"},"pending":{"type":"integer","description":"Key当前待完成任务数"},"batch_limit":{"type":"integer","description":"单批最大任务数：10"},"max_queue_seconds":{"type":"integer","description":"排队最长300秒"},"execution_timeout_seconds":{"type":"number","description":"每项执行预算65秒，含内部切换/翻页"},"poll_after_seconds":{"type":"integer","description":"建议查询间隔：5秒"},"billing":{"type":"string","description":"任务统一success成功扣次"},"worker_available":{"type":"boolean","description":"后台调度进程是否运行"},"states":{"type":"object","additionalProperties":{"type":"integer"},"description":"本Key非终态任务数量，未出现状态可能省略"}},"required":["authorized_accounts","ready_accounts","idle_accounts","unavailable_accounts","ready_network_groups","capacity_mode","daily_per_account","effective_daily_limit","server_concurrency_limit","effective_concurrency","key_concurrency_limit","pending_limit","pending","batch_limit","max_queue_seconds","execution_timeout_seconds","poll_after_seconds","billing","worker_available","states"]},"JobList":{"type":"object","description":"","properties":{"total":{"type":"integer","description":"符合筛选条件的本Key任务总数"},"offset":{"type":"integer","description":"分页偏移"},"limit":{"type":"integer","description":"每页上限1–50"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/JobView"}}},"required":["total","offset","limit","jobs"]},"JobResult":{"type":"object","description":"","properties":{"job":{"$ref":"#/components/schemas/JobView"},"response":{"type":"object","description":"","properties":{"code":{"type":"string","description":"ok或任务错误分类"},"message":{"type":"string","description":"执行说明"},"data":{"description":"成功时与对应同步采集接口data一致，失败为null；comment_page/comment_replies为CommentPage对象（items与pagination），其余操作沿用原结构。","anyOf":[{"type":"object"},{"type":"array"},{"type":"null"}]},"request_id":{"type":"string","description":"原执行请求编号，与task_id一致"},"task_id":{"type":"string","description":"任务编号"},"retryable":{"type":"boolean","description":"普通网络故障可在确认后重新提交；不是继续轮询的标记"},"quota":{"type":"string","description":"charged或released"}},"required":["code","message","data","request_id","task_id","retryable","quota"]}},"required":["job","response"]},"ArchivedComment":{"type":"object","description":"去重评论正文；cid始终按字符串保存","properties":{"cid":{"type":"string","title":"评论 ID","description":"评论唯一标识。必须按字符串保存，避免大整数精度丢失。","examples":["1234567890123456000"],"x-empty":"有效记录需要评论 ID。","x-group":"评论内容"},"text":{"type":"string","title":"评论正文","description":"评论文本；只有图片或表情的评论可能没有文字。","examples":["这是一条示例评论"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论内容"},"image":{"type":"string","title":"评论图片","description":"清洗器选中的一张评论原图 URL，不是图片数组，也不保证包含该评论的全部图片。","examples":["https://example.com/comment.jpg"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论内容"},"sticker":{"type":"string","title":"评论表情图","description":"评论表情的静态图片 URL。","examples":[""],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论内容"},"ip_label":{"type":"string","title":"IP 属地标签","description":"平台显示的属地文字，不是原始 IP 地址。","examples":["广东"],"x-empty":"未提供时为“未知”。","x-group":"评论内容"},"collection_time":{"type":"string","title":"采集时间","description":"本服务整理该条记录的时间，不是发布时间。格式化时间使用采集引擎所在时区及日期格式；默认 YYYY-MM-DD HH:mm:ss，不含时区偏移。","examples":["2026-10-28 12:00:00"],"x-empty":"由采集引擎生成。","x-group":"评论时间"},"create_timestamp":{"type":["integer","string"],"title":"发布时间戳","description":"平台 create_time，Unix 秒；转换为 JavaScript Date 前需乘以 1000。","examples":[1793188800],"x-empty":"未取得或上游为 0 时可能为 \"\"，应先检查类型。","x-group":"评论时间"},"create_time":{"type":"string","title":"格式化发布时间","description":"格式化时间使用采集引擎所在时区及日期格式；默认 YYYY-MM-DD HH:mm:ss，不含时区偏移。用于展示，建议用 create_timestamp 做排序和跨时区换算。","examples":["2026-10-28 12:00:00"],"x-empty":"原始时间缺失时旧清洗器可能回退为采集时刻；不可视为可信发布时间。","x-group":"评论时间"},"digg_count":{"type":"integer","title":"评论点赞数","description":"该条评论获得的点赞次数，不是作品点赞数。单位：次。","examples":[2],"x-empty":"平台明确返回 0 时保留 0；缺失、null 或非法计数返回 -1，表示未知，不是实际负数。修复前已保存的历史响应不会重写，其 -1 不能据此认定为 0。","x-group":"互动与回复关系"},"reply_comment_total":{"type":"integer","title":"评论回复数","description":"该一级评论的平台回复统计数；大于0时全量采集会翻回复列表。单位：条。缺失时的0不能保证没有回复。","examples":[0],"x-empty":"缺失时回退为 0，不能据此确认平台真实没有回复。","x-group":"互动与回复关系"},"reply_id":{"type":"string","title":"回复关联 ID","description":"沿用平台 reply_id，用于识别评论关联的回复关系，不作为独立回复接口参数。","examples":["0"],"x-empty":"未提供时为 \"\"，也可能返回字符串 \"0\"。","x-group":"互动与回复关系"},"reply_to_reply_id":{"type":"string","title":"被回复的回复 ID","description":"沿用平台 reply_to_reply_id；只有平台提供时才可用于关联被回复的条目。","examples":["0"],"x-empty":"未提供时为 \"\"，也可能返回字符串 \"0\"。","x-group":"互动与回复关系"},"uid":{"type":"string","title":"数字用户 ID","description":"作者或评论者的数字用户标识。按字符串保存，避免 JavaScript 大整数精度丢失。","examples":["1234567890000000"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"sec_uid":{"type":"string","title":"安全用户标识","description":"作者或评论者的 sec_uid；调用账号资料/发布作品接口时作为 sec_user_id 传入。","examples":["MS4wLjABAAAA_EXAMPLE_USER"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"unique_id":{"type":"string","title":"抖音号","description":"用户设置的抖音号。不是 uid，也不是请求参数 account_id。","examples":["example_creator"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"nickname":{"type":"string","title":"显示昵称","description":"经清洗的显示名称，可能与平台原始昵称的特殊字符有所不同。","examples":["示例作者"],"x-empty":"缺失时可能使用“已注销账号”或“无效账号昵称”。","x-group":"评论者信息"},"avatar":{"type":"string","title":"用户头像地址","description":"作品作者或评论者的 HTTPS 头像 URL，优先大图，其次中图、小图。直接来自本次响应，不额外请求用户资料；链接可能过期。","examples":["https://example.com/avatar.jpg"],"x-empty":"平台未提供头像地址时为 \"\"；可再调用账号资料接口读取 avatar_larger.url_list。","x-group":"评论者信息"},"signature":{"type":"string","title":"个人简介","description":"作者或评论者的简介文本。","examples":["这是合成的简介示例"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"user_age":{"type":"integer","title":"年龄","description":"平台提供的用户年龄，单位为岁，不从生日自行推算。","examples":[25],"x-empty":"缺失或上游为 0 时清洗器回退为 -1。","x-group":"评论者信息"},"mark":{"type":"string","title":"采集备注","description":"采集引擎用于标记作者的名称；当前常与清洗后的 nickname 相同，不是平台认证标记。","examples":["示例作者"],"x-empty":"沿用引擎生成的名称或备注。","x-group":"评论者信息"},"reply_preview":{"type":"array","title":"随一级评论返回的回复预览","description":"保留平台在一级评论中附带的真实回复正文；不额外请求或扣次。不是完整回复分页，不能根据此数组长度判断是否采全。","examples":[[]],"x-empty":"未附带回复时为 []；旧归档可能没有此字段。","x-group":"互动与回复关系","items":{"type":"object","properties":{"cid":{"type":"string","title":"评论 ID","description":"评论唯一标识。必须按字符串保存，避免大整数精度丢失。","examples":["1234567890123456000"],"x-empty":"有效记录需要评论 ID。","x-group":"评论内容"},"text":{"type":"string","title":"评论正文","description":"评论文本；只有图片或表情的评论可能没有文字。","examples":["这是一条示例评论"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论内容"},"image":{"type":"string","title":"评论图片","description":"清洗器选中的一张评论原图 URL，不是图片数组，也不保证包含该评论的全部图片。","examples":["https://example.com/comment.jpg"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论内容"},"sticker":{"type":"string","title":"评论表情图","description":"评论表情的静态图片 URL。","examples":[""],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论内容"},"ip_label":{"type":"string","title":"IP 属地标签","description":"平台显示的属地文字，不是原始 IP 地址。","examples":["广东"],"x-empty":"未提供时为“未知”。","x-group":"评论内容"},"collection_time":{"type":"string","title":"采集时间","description":"本服务整理该条记录的时间，不是发布时间。格式化时间使用采集引擎所在时区及日期格式；默认 YYYY-MM-DD HH:mm:ss，不含时区偏移。","examples":["2026-10-28 12:00:00"],"x-empty":"由采集引擎生成。","x-group":"评论时间"},"create_timestamp":{"type":["integer","string"],"title":"发布时间戳","description":"平台 create_time，Unix 秒；转换为 JavaScript Date 前需乘以 1000。","examples":[1793188800],"x-empty":"未取得或上游为 0 时可能为 \"\"，应先检查类型。","x-group":"评论时间"},"create_time":{"type":"string","title":"格式化发布时间","description":"格式化时间使用采集引擎所在时区及日期格式；默认 YYYY-MM-DD HH:mm:ss，不含时区偏移。用于展示，建议用 create_timestamp 做排序和跨时区换算。","examples":["2026-10-28 12:00:00"],"x-empty":"原始时间缺失时旧清洗器可能回退为采集时刻；不可视为可信发布时间。","x-group":"评论时间"},"digg_count":{"type":"integer","title":"评论点赞数","description":"该条评论获得的点赞次数，不是作品点赞数。单位：次。","examples":[2],"x-empty":"平台明确返回 0 时保留 0；缺失、null 或非法计数返回 -1，表示未知，不是实际负数。修复前已保存的历史响应不会重写，其 -1 不能据此认定为 0。","x-group":"互动与回复关系"},"reply_comment_total":{"type":"integer","title":"评论回复数","description":"该评论的平台回复统计数，不等于已保存正文数。正文看 reply_preview 或独立回复分页结果。单位：条。","examples":[0],"x-empty":"缺失时回退为 0，不能据此确认平台真实没有回复。","x-group":"互动与回复关系"},"reply_id":{"type":"string","title":"回复关联 ID","description":"沿用平台 reply_id，用于识别评论关联的回复关系，不作为独立回复接口参数。","examples":["0"],"x-empty":"未提供时为 \"\"，也可能返回字符串 \"0\"。","x-group":"互动与回复关系"},"reply_to_reply_id":{"type":"string","title":"被回复的回复 ID","description":"沿用平台 reply_to_reply_id；只有平台提供时才可用于关联被回复的条目。","examples":["0"],"x-empty":"未提供时为 \"\"，也可能返回字符串 \"0\"。","x-group":"互动与回复关系"},"uid":{"type":"string","title":"数字用户 ID","description":"作者或评论者的数字用户标识。按字符串保存，避免 JavaScript 大整数精度丢失。","examples":["1234567890000000"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"sec_uid":{"type":"string","title":"安全用户标识","description":"作者或评论者的 sec_uid；调用账号资料/发布作品接口时作为 sec_user_id 传入。","examples":["MS4wLjABAAAA_EXAMPLE_USER"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"unique_id":{"type":"string","title":"抖音号","description":"用户设置的抖音号。不是 uid，也不是请求参数 account_id。","examples":["example_creator"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"nickname":{"type":"string","title":"显示昵称","description":"经清洗的显示名称，可能与平台原始昵称的特殊字符有所不同。","examples":["示例作者"],"x-empty":"缺失时可能使用“已注销账号”或“无效账号昵称”。","x-group":"评论者信息"},"avatar":{"type":"string","title":"用户头像地址","description":"作品作者或评论者的 HTTPS 头像 URL，优先大图，其次中图、小图。直接来自本次响应，不额外请求用户资料；链接可能过期。","examples":["https://example.com/avatar.jpg"],"x-empty":"平台未提供头像地址时为 \"\"；可再调用账号资料接口读取 avatar_larger.url_list。","x-group":"评论者信息"},"signature":{"type":"string","title":"个人简介","description":"作者或评论者的简介文本。","examples":["这是合成的简介示例"],"x-empty":"未取得时通常为 \"\"；不要用空字符串作为有效标识或地址。","x-group":"评论者信息"},"user_age":{"type":"integer","title":"年龄","description":"平台提供的用户年龄，单位为岁，不从生日自行推算。","examples":[25],"x-empty":"缺失或上游为 0 时清洗器回退为 -1。","x-group":"评论者信息"},"mark":{"type":"string","title":"采集备注","description":"采集引擎用于标记作者的名称；当前常与清洗后的 nickname 相同，不是平台认证标记。","examples":["示例作者"],"x-empty":"沿用引擎生成的名称或备注。","x-group":"评论者信息"},"parent_comment_id":{"type":"string","description":"所属一级评论 CID"},"collection_source":{"type":"string","enum":["inline_preview"],"description":"随一级评论返回的预览，不代表独立回复分页已成功"}}}},"parent_comment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"一级评论为null；回复为所属一级评论cid。回复之间的引用另外看reply_to_reply_id。"},"collection_source":{"type":"string","description":"可选；inline_preview 表示一级评论附带的真实回复预览。不能据此认定独立回复分页完成。"}},"required":["cid","text","image","sticker","ip_label","collection_time","create_timestamp","create_time","digg_count","reply_comment_total","reply_id","reply_to_reply_id","uid","sec_uid","unique_id","nickname","avatar","signature","user_age","mark","parent_comment_id"]},"CommentPage":{"type":"object","description":"operation=comment_page/comment_replies的任务response.data结构；一页成功扣1次","properties":{"work_id":{"type":"string","description":"解析后的作品ID"},"parent_comment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"一级分页为null；回复分页为请求的一级评论cid"},"items":{"type":"array","items":{"$ref":"#/components/schemas/DouyinComment"},"description":"此页评论；同页或跨页可能重复，用cid去重"},"pagination":{"type":"object","description":"","properties":{"cursor":{"type":"integer","description":"本次请求游标；第一页0"},"next_cursor":{"type":"integer","description":"平台实际返回的下一游标；不可自行加count"},"has_more":{"type":"boolean","description":"true继续使用next_cursor；false此评论流已结束。空items不单独作为结束依据。"},"count":{"type":"integer","description":"请求的每页数量1–20，不保证实际返回数"},"returned_count":{"type":"integer","description":"本页实际返回条数，去重前"},"platform_total":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"平台返回的统计值；未提供为null，不作为分页完成判断"}},"required":["cursor","next_cursor","has_more","count","returned_count","platform_total"]}},"required":["work_id","parent_comment_id","items","pagination"]},"CommentCrawlView":{"type":"object","description":"","properties":{"id":{"type":"string","description":"全量采集编号，后续查询、续采和取消均使用此编号"},"work_id":{"type":"string","description":"解析后的作品ID；短链接未执行首个成功页前可能为空"},"state":{"type":"string","description":"running运行、paused暂停、completed完成当前可见范围、cancelled取消","enum":["running","paused","completed","cancelled"]},"created":{"type":"number","description":"创建时间，Unix秒"},"updated":{"type":"number","description":"最近进度保存时间，Unix秒"},"phase":{"type":"string","description":"top_level先翻一级；replies依次翻回复；done所选范围结束","enum":["top_level","replies","done"]},"complete":{"type":"boolean","description":"仅completed为true；不承诺达到作品统计评论数"},"include_replies":{"type":"boolean","description":"是否采集一级评论的回复"},"top_level_count":{"type":"integer","description":"此采集任务已保存的去重一级评论数"},"reply_count":{"type":"integer","description":"此采集任务已保存的去重子评论数"},"total_saved":{"type":"integer","description":"一级加回复的去重总数"},"pages_succeeded":{"type":"integer","description":"已并入此任务归档的成功页数；包含空结果的有效分页"},"charged_units":{"type":"integer","description":"已扣次数，每个成功分页1次；失败、查询、控制不扣次。可能短暂包含尚待合并的一页。"},"parents_with_replies":{"type":"integer","description":"一级列表中回复数大于0的根评论数量"},"parents_completed":{"type":"integer","description":"已翻页结束的根评论回复流数量"},"active_job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"当前排队/执行/待合并的页任务编号；可用/jobs/{id}查看详细失败和耗时"},"last_job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"最近结束的页任务编号，失败页也保留。paused时可查询/jobs/{id}与/jobs/{id}/result排查错误。旧进度尚未记录时为null。"},"stop_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"机器可读停止原因；运行中null。常见page_limit/time_limit/comment_limit/pagination_stalled/total_exhausted/account_or_authorization或页任务错误原因。"},"stop_message":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"可读原因与下一步建议"},"page_limit":{"type":"integer","description":"累计成功页预算；续采后为已成功页数加additional_pages"},"comment_limit":{"type":"integer","description":"此任务去重条数上限，最多5000；到达后不可原任务扩容"},"deadline":{"type":"number","description":"本轮停止派发新页的截止时间，Unix秒；已受理页仍允许完成，不是HTTP连接超时"},"poll_after_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"建议进度轮询间隔5秒，非运行中为null"},"completion_scope":{"type":"string","description":"完成范围：当前账号可见内容；平台统计数不作为完成判据"}},"required":["id","work_id","state","created","updated","phase","complete","include_replies","top_level_count","reply_count","total_saved","pages_succeeded","charged_units","parents_with_replies","parents_completed","active_job_id","last_job_id","stop_reason","stop_message","page_limit","comment_limit","deadline","poll_after_seconds","completion_scope"]},"CommentCrawlResults":{"type":"object","description":"","properties":{"crawl":{"$ref":"#/components/schemas/CommentCrawlView"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ArchivedComment"},"description":"仅本Key、本采集编号保存的正文；按发现顺序。一级页附带的回复预览可能穿插，层级由parent_comment_id确定。"},"total":{"type":"integer","description":"当前筛选条件下去重总条数；运行中可能增加"},"offset":{"type":"integer","description":"读取偏移，从0开始"},"limit":{"type":"integer","description":"每次读取1–100条，默认50"}},"required":["crawl","items","total","offset","limit"]},"CommentCrawlList":{"type":"object","description":"","properties":{"crawls":{"type":"array","items":{"$ref":"#/components/schemas/CommentCrawlView"},"description":"本Key最近50条采集任务"}},"required":["crawls"]}},"securitySchemes":{"ApiKeyAuth":{"type":"http","scheme":"bearer","bearerFormat":"douk_…","description":"在管理后台创建的 API Key"}}},"security":[{"ApiKeyAuth":[]}]}