{"openapi":"3.0.3","info":{"title":"Popto 开放 API","version":"1.0.0","description":"Popto 爆款视频拆解、批量口播音视频、文章分析与公众号跟创。使用 Bearer API Key 鉴权。成功响应 ret=0，业务数据位于 data.ent；业务错误通常仍返回 HTTP 200，请检查 ret、code 和 msg。异步任务通过 task/batch_get 轮询。"},"servers":[{"url":"https://popto.cn/api","description":"Popto 正式环境"}],"tags":[{"name":"视频分析","description":"拆解爆款视频的内容结构"},{"name":"口播音视频","description":"选择数字人，批量生成口播音频与视频"},{"name":"文章分析","description":"提取原文，理解爆款逻辑"},{"name":"任务管理","description":"查询异步任务的状态与结果"},{"name":"公众号跟创","description":"从参考文章到公众号草稿"}],"security":[{"bearerAuth":[]}],"paths":{"/open/v1/toolbox/hot_structure_dismantle":{"post":{"operationId":"hot_structure_dismantle","summary":"爆款视频结构拆解","description":"输入抖音、小红书、微信视频号或可访问的视频链接，提取内容、分析爆款结构，并按需返回视频分段。\n\n提交成功仅代表任务已创建；使用返回的 task_id 查询任务。\n\n此独立工具不返回 flow_id。tool_id 是工具箱项目标识。\n\n调用会消耗视频分析与结构拆解积分，split_video=true 时还包含视频切分。","tags":["视频分析"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"视频链接或包含链接的分享文本。","minLength":1},"split_video":{"type":"boolean","description":"是否切分视频，默认 false；开启后增加视频切分积分消耗。"},"hot_analysis":{"type":"boolean","description":"兼容字段。此接口始终启用爆款结构分析，无需填写。"}},"required":["url"]},"example":{"url":"https://v.douyin.com/VIDEO_SHARE_CODE/","split_video":false}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"tool_id":{"type":"string","description":"工具箱项目 ID，同时用作项目 ID 与任务 source_id。"},"task_id":{"type":"string","description":"异步任务 ID。"}},"required":["tool_id","task_id"]}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"tool_id":"tool_example","task_id":"task_example"}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/aiactor/list":{"post":{"operationId":"aiactor_list","summary":"查询数字人与外观","description":"查询平台数字人、当前用户自建数字人或收藏，取得批量口播使用的 actor_id、声音和外观信息。\n\n自建或收藏列表按当前用户身份查询，不能通过请求体指定其他用户。人物属性筛选与 sort_by 作用于平台列表；自建列表按 query 查询，收藏列表在当前分页内按名称筛选。\n\n使用真实 actor_id 和 looks[].look_id。列表中的自建角色可能未就绪，提交前确认声音可用；本接口不创建角色或克隆声音。","tags":["口播音视频"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"favourite":{"type":"integer","description":"大于 0 时查询当前用户收藏，优先于 user_exclusive；默认 0。"},"user_exclusive":{"type":"integer","description":"大于 0 时只查询本人自建角色；默认 0，查询平台角色。"},"query":{"type":"string","description":"角色名称关键词。"},"sort_by":{"type":"string","description":"平台角色排序字段。"},"gender":{"type":"array","items":{"type":"string","enum":["female","male"]},"description":"性别筛选： female（女性）、male（男性）。"},"age":{"type":"array","items":{"type":"string","enum":["senior","adult","young_adult","kid"]},"description":"年龄筛选： senior（老年）、adult（成年）、young_adult（青年）、kid（儿童）。"},"situation":{"type":"array","items":{"type":"string","enum":["bedroom","kitchen","living_room","office","studio","coffee_shop","balcony","beach","snow","street","car"]},"description":"适用场景筛选： bedroom（卧室）、kitchen（厨房）、living_room（客厅）、office（办公室）、studio（工作室）、coffee_shop（咖啡馆）、balcony（阳台）、beach（海滩）、snow（雪景）、street（街道）、car（车内）。"},"pose":{"type":"array","items":{"type":"string","enum":["standing","sitting","lying","walking","running","leaning","kneeling"]},"description":"姿势筛选： standing（站立）、sitting（坐姿）、lying（躺卧）、walking（行走）、running（奔跑）、leaning（倚靠）、kneeling（跪姿）。"},"shot_type":{"type":"array","items":{"type":"string","enum":["close_up","medium_close_up","medium_shot","medium_full_shot","full_shot"]},"description":"景别筛选： close_up（特写）、medium_close_up（中近景）、medium_shot（中景）、medium_full_shot（中全景）、full_shot（全景）。"},"skin_tone":{"type":"array","items":{"type":"string","enum":["skin-001","skin-002","skin-003","skin-004","skin-005","skin-006"]},"description":"肤色筛选： skin-001（肤色 1）、skin-002（肤色 2）、skin-003（肤色 3）、skin-004（肤色 4）、skin-005（肤色 5）、skin-006（肤色 6）。"},"ethnicity":{"type":"array","items":{"type":"string","enum":["caucasian","black","east_asian","south_asian","hispanic","middle_eastern"]},"description":"族裔筛选： caucasian（欧美）、black（黑色人种）、east_asian（东亚）、south_asian（南亚）、hispanic（拉美）、middle_eastern（中东）。"},"industry":{"type":"array","items":{"type":"string","enum":["e-commerce","beauty_&_skincare","health_&_fitness","food_&_beverage","tech_&_saas","finance_&_insurance","education","real_estate","travel_&_hospitality","fashion_&_apparel","automotive","entertainment_&_media"]},"description":"行业筛选： e-commerce（电商）、beauty_&_skincare（美妆护肤）、health_&_fitness（健康健身）、food_&_beverage（餐饮食品）、tech_&_saas（科技/SaaS）、finance_&_insurance（金融保险）、education（教育）、real_estate（房地产）、travel_&_hospitality（旅游酒店）、fashion_&_apparel（时尚服饰）、automotive（汽车）、entertainment_&_media（娱乐传媒）。"},"offset":{"type":"integer","description":"分页偏移量，首次传 0；后续使用响应 offset。"},"limit":{"type":"integer","description":"本页数量；建议明确填写，如 20。"}}},"example":{"query":"","offset":0,"limit":20,"favourite":0,"user_exclusive":0}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"infos":{"type":"array","items":{"type":"object","properties":{"actor_id":{"type":"string","description":"从数字人列表取得的真实角色 ID，不能为空。","minLength":1},"name":{"type":"string","description":"数字人名称，建议保留以便项目展示。"},"id":{"type":"integer","description":"角色记录 ID。"},"ct":{"type":"integer","description":"创建时间，Unix 秒。"},"ut":{"type":"integer","description":"更新时间，Unix 秒。"},"hired_by":{"type":"string","description":"角色租用信息。"},"hired_at":{"type":"integer","description":"角色租用时间。"},"age":{"type":"string","description":"年龄分类。"},"gender":{"type":"string","description":"性别。"},"situation":{"type":"array","items":{"type":"string"},"description":"适用场景。","nullable":true},"pose":{"type":"string","description":"姿势。"},"shot_type":{"type":"string","description":"景别。"},"skin_tone":{"type":"string","description":"肤色。"},"accessories":{"description":"配饰信息，JSON 值。"},"voice_id":{"type":"string","description":"声音 ID；使用角色已配置的声音。"},"special_for":{"description":"角色适用信息，JSON 值。"},"preview_url":{"type":"string","description":"预览地址。"},"photo_url":{"type":"string","description":"角色照片地址。"},"original_show_off_url":{"type":"string","description":"原始展示视频地址。"},"show_off_url":{"type":"string","description":"展示视频地址。"},"light":{"type":"string","description":"光照描述。"},"audition_audio_url":{"type":"string","description":"声音试听地址。"},"score":{"type":"integer","description":"角色评分。"},"favourite":{"type":"boolean","description":"当前用户是否收藏。"},"status":{"type":"string","description":"角色状态；自建角色可能仍在生成中。"},"voices":{"description":"角色声音信息，JSON 值。"},"voice_vendor":{"type":"string","description":"声音服务商。"},"voice_account_id":{"type":"integer","description":"声音账号标识。"},"ethnicity":{"type":"string","description":"族裔。"},"poses":{"type":"array","items":{"type":"string"},"description":"姿势标签。","nullable":true},"shot_types":{"type":"array","items":{"type":"string"},"description":"景别标签。","nullable":true},"industries":{"type":"array","items":{"type":"string"},"description":"行业标签。","nullable":true},"subregion":{"type":"string","description":"地区。"},"professions":{"type":"array","items":{"type":"string"},"description":"职业标签。","nullable":true},"looks":{"type":"array","items":{"type":"object","properties":{"look_id":{"type":"string","description":"外观 ID。"},"name":{"type":"string","description":"外观名称。"},"background_image_url":{"type":"string","description":"背景图地址。"},"clothes_image_url":{"type":"string","description":"服装图地址。"},"result_image_url":{"type":"string","description":"外观结果图地址。"},"prompt":{"type":"string","description":"外观描述。"},"status":{"type":"integer","description":"外观状态码。"},"ct":{"type":"integer","description":"创建时间，Unix 秒。"},"preview_url":{"type":"string","description":"外观预览图片或视频地址。"},"error_msg":{"type":"string","description":"外观生成错误信息。"}}},"description":"可选外观；使用其中的 look_id，不要根据名称猜测 ID。","nullable":true}},"required":["actor_id"],"description":"数字人对象，可直接保留列表返回的完整对象。提交时至少包含 actor_id。"},"description":"数字人列表。"},"offset":{"type":"integer","description":"下一页偏移量。"},"more":{"type":"boolean","description":"是否还有后续数据。"},"total":{"type":"integer","description":"匹配总数，部分上游结果可能省略。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"infos":[{"actor_id":"act_example","name":"示例数字人","voice_id":"voice_example","status":"active","looks":[{"look_id":"look_example","name":"日常外观"}]}],"offset":1,"more":false,"total":1}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/subtitle/preset_style/list":{"post":{"operationId":"subtitle_preset_style_list","summary":"查询字幕预设","description":"查询视频字幕预设，取得可直接传入 subtitle_style 的完整样式对象。\n\n样式来自服务端配置；可保留完整对象修改后传入视频生成接口，不能只提交样式 ID。","tags":["口播音视频"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}},"example":{}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"styles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"字幕样式 ID。"},"name":{"type":"string","description":"样式名称。"},"font_name":{"type":"string","description":"字体名称，从字体列表选择。"},"font_url":{"type":"string","description":"可选字体文件 URL。"},"font_size":{"type":"number","description":"字体大小。"},"bold":{"type":"boolean","description":"是否加粗。"},"italic":{"type":"boolean","description":"是否斜体。"},"text_color":{"type":"string","description":"文字颜色。"},"background_color":{"type":"string","description":"背景颜色。"},"stroke_color":{"type":"string","description":"描边颜色。"},"stroke_width":{"type":"number","description":"描边宽度。"},"opacity":{"type":"number","description":"透明度。"},"letter_spacing":{"type":"number","description":"字间距。"}},"description":"完整字幕样式对象，建议直接使用字幕预设列表的返回项；不能只传 ID。"},"description":"可用字幕样式。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"styles":[{"id":"subtitle_example","name":"白字黑边","font_name":"zh-hans","font_size":65,"bold":false,"italic":false,"text_color":"#FFFFFF","background_color":"#00000000","stroke_color":"#000000","stroke_width":2,"opacity":1,"letter_spacing":0}]}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/font/list":{"post":{"operationId":"font_list","summary":"查询视频字体","description":"查询视频渲染可用字体，用于选择字幕样式中的 font_name。\n\n使用实际返回的字体名称，不根据文件名猜测 font_name。","tags":["口播音视频"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}},"example":{}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"fonts":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"字体名称。"},"file":{"type":"string","description":"字体文件标识。"},"url":{"type":"string","description":"可选字体文件 URL。"}}},"description":"可用字体。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"fonts":[{"name":"zh-hans","file":"zh-hans.ttf"}]}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/credit_package/get":{"post":{"operationId":"credit_package_get","summary":"查询计费与套餐配置","description":"获取功能积分单价和各套餐的批量视频上限，用于生成前展示预估费用。该接口不返回当前账号的积分余额或当前订阅级别。\n\n示例中的积分与套餐上限仅用于展示，实际以服务端当前配置和生成接口的权益校验为准。\n\n视频预扣费为每条时长 × 向上取整后的 render_avatar 单价，时长未提供时按正文约 5 字/秒向上取整估算。当前批量音频逻辑不单独扣 actor_say 积分，不要将该配置项视为音频任务的扣费凭证。","tags":["口播音视频"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}},"example":{}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"credit_consume_items":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","description":"计费功能，如 render_avatar、actor_say。"},"label_cn":{"type":"string","description":"中文名称。"},"label_en":{"type":"string","description":"英文名称。"},"credits":{"type":"number","description":"配置中的单价，可能为小数。"}}},"description":"各功能消耗配置。"},"subscription_entitlement":{"type":"object","properties":{"free_plan_video_analysis_limit":{"type":"integer","description":"free 套餐的 video_analysis 权益上限；-1 表示不限制。"},"free_plan_voiceover_script_limit":{"type":"integer","description":"free 套餐的 voiceover_script 权益上限；-1 表示不限制。"},"free_plan_batch_render_avatar_limit":{"type":"integer","description":"free 套餐的 batch_render_avatar 权益上限；-1 表示不限制。"},"free_plan_custom_actor_limit":{"type":"integer","description":"free 套餐的 custom_actor 权益上限；-1 表示不限制。"},"free_plan_wechat_hot_article_search_limit":{"type":"integer","description":"free 套餐的 wechat_hot_article_search 权益上限；-1 表示不限制。"},"base_plan_video_analysis_limit":{"type":"integer","description":"base 套餐的 video_analysis 权益上限；-1 表示不限制。"},"base_plan_voiceover_script_limit":{"type":"integer","description":"base 套餐的 voiceover_script 权益上限；-1 表示不限制。"},"base_plan_batch_render_avatar_limit":{"type":"integer","description":"base 套餐的 batch_render_avatar 权益上限；-1 表示不限制。"},"base_plan_custom_actor_limit":{"type":"integer","description":"base 套餐的 custom_actor 权益上限；-1 表示不限制。"},"base_plan_wechat_hot_article_search_limit":{"type":"integer","description":"base 套餐的 wechat_hot_article_search 权益上限；-1 表示不限制。"},"plus_plan_video_analysis_limit":{"type":"integer","description":"plus 套餐的 video_analysis 权益上限；-1 表示不限制。"},"plus_plan_voiceover_script_limit":{"type":"integer","description":"plus 套餐的 voiceover_script 权益上限；-1 表示不限制。"},"plus_plan_batch_render_avatar_limit":{"type":"integer","description":"plus 套餐的 batch_render_avatar 权益上限；-1 表示不限制。"},"plus_plan_custom_actor_limit":{"type":"integer","description":"plus 套餐的 custom_actor 权益上限；-1 表示不限制。"},"plus_plan_wechat_hot_article_search_limit":{"type":"integer","description":"plus 套餐的 wechat_hot_article_search 权益上限；-1 表示不限制。"},"pro_plan_video_analysis_limit":{"type":"integer","description":"pro 套餐的 video_analysis 权益上限；-1 表示不限制。"},"pro_plan_voiceover_script_limit":{"type":"integer","description":"pro 套餐的 voiceover_script 权益上限；-1 表示不限制。"},"pro_plan_batch_render_avatar_limit":{"type":"integer","description":"pro 套餐的 batch_render_avatar 权益上限；-1 表示不限制。"},"pro_plan_custom_actor_limit":{"type":"integer","description":"pro 套餐的 custom_actor 权益上限；-1 表示不限制。"},"pro_plan_wechat_hot_article_search_limit":{"type":"integer","description":"pro 套餐的 wechat_hot_article_search 权益上限；-1 表示不限制。"}},"description":"按套餐列出的权益；*_plan_batch_render_avatar_limit 是单次视频数量上限。"},"subscription_plans":{"type":"array","items":{"type":"object","description":"订阅套餐配置，含 id、name、monthly_price、monthly_credits、daily_credits 等展示字段。","additionalProperties":true},"description":"订阅套餐。"},"starter_offer":{"type":"object","description":"可选新用户套餐配置。","additionalProperties":true,"nullable":true},"credit_packs":{"type":"array","items":{"type":"object","description":"积分包配置，含 id、name、price、credits、package_id 等字段。","additionalProperties":true},"description":"积分包。"},"price_per_credit":{"type":"integer","description":"积分价格配置。"},"new_user_register_credits":{"type":"integer","description":"新用户注册赠送积分。"},"survey_reward_credits":{"type":"integer","description":"问卷奖励积分。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"credit_consume_items":[{"feature":"render_avatar","label_cn":"生成口播视频","label_en":"Render avatar","credits":1}],"subscription_entitlement":{"free_plan_batch_render_avatar_limit":1,"base_plan_batch_render_avatar_limit":3,"plus_plan_batch_render_avatar_limit":6,"pro_plan_batch_render_avatar_limit":12},"subscription_plans":[],"credit_packs":[]}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/toolbox/batch_say":{"post":{"operationId":"toolbox_batch_say","summary":"批量生成口播音频","description":"将口播文案与数字人组合为一个异步音频任务，返回项目和任务 ID；完成后读取音频地址与时长。\n\nM 段文案与 N 个数字人生成 M×N 条音频。每个数字人说不同文案时，每次只提交一段文案和一个数字人，首次取得 tool_id 后让后续请求复用它。\n\ntask/batch_get 或 toolbox/get_info 查询 task_type=aiactor_batch_say；成功时 outputs.items[] 包含 aiactor、voiceover、script、with_subtitle、audio_url、duration，以及可选 analysis。按 actor_id 与 script 匹配音频。\n\n此接口的文案是直接数组，不接受执行器内部兼容的 {items:[...]} 包装。开放接口校验 draft 非空；网页端另外要求至少 20 个非空白字符，最多 5000 个 UTF-16 字符。\n\n接口使用 Bearer API Key 识别当前注册用户，生成服务身份由服务端加载，不需要也不能通过请求体覆盖 uid、owner 或 h_m。\n\n提交接口没有幂等保证；网络超时、5xx 或不完整回执时可能已经创建任务。先用已保存的 tool_id、task_id 或项目中心核对，不要自动重放生成请求。","tags":["口播音视频"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tool_id":{"type":"string","description":"首次提交可省略或留空，自动创建工具箱项目；后续音频和视频提交复用同一 tool_id，项目须属于当前用户。"},"selected_aiactor_voiceovers":{"type":"array","items":{"type":"object","properties":{"topic":{"type":"string","description":"口播主题。"},"angle":{"type":"string","description":"内容角度。"},"draft":{"type":"string","description":"不能为空的口播正文。","minLength":1},"expression_style":{"type":"string","description":"表达风格。"},"source_id":{"type":"string","description":"可选的文案来源 ID。"},"version":{"type":"integer","description":"可选的文案版本。"}},"required":["draft"]},"description":"非空文案数组；与数字人数组做笛卡尔组合。","minItems":1},"selected_aiactors":{"type":"array","items":{"type":"object","properties":{"aiactor":{"type":"object","properties":{"actor_id":{"type":"string","description":"从数字人列表取得的真实角色 ID，不能为空。","minLength":1},"name":{"type":"string","description":"数字人名称，建议保留以便项目展示。"},"id":{"type":"integer","description":"角色记录 ID。"},"ct":{"type":"integer","description":"创建时间，Unix 秒。"},"ut":{"type":"integer","description":"更新时间，Unix 秒。"},"hired_by":{"type":"string","description":"角色租用信息。"},"hired_at":{"type":"integer","description":"角色租用时间。"},"age":{"type":"string","description":"年龄分类。"},"gender":{"type":"string","description":"性别。"},"situation":{"type":"array","items":{"type":"string"},"description":"适用场景。","nullable":true},"pose":{"type":"string","description":"姿势。"},"shot_type":{"type":"string","description":"景别。"},"skin_tone":{"type":"string","description":"肤色。"},"accessories":{"description":"配饰信息，JSON 值。"},"voice_id":{"type":"string","description":"声音 ID；使用角色已配置的声音。"},"special_for":{"description":"角色适用信息，JSON 值。"},"preview_url":{"type":"string","description":"预览地址。"},"photo_url":{"type":"string","description":"角色照片地址。"},"original_show_off_url":{"type":"string","description":"原始展示视频地址。"},"show_off_url":{"type":"string","description":"展示视频地址。"},"light":{"type":"string","description":"光照描述。"},"audition_audio_url":{"type":"string","description":"声音试听地址。"},"score":{"type":"integer","description":"角色评分。"},"favourite":{"type":"boolean","description":"当前用户是否收藏。"},"status":{"type":"string","description":"角色状态；自建角色可能仍在生成中。"},"voices":{"description":"角色声音信息，JSON 值。"},"voice_vendor":{"type":"string","description":"声音服务商。"},"voice_account_id":{"type":"integer","description":"声音账号标识。"},"ethnicity":{"type":"string","description":"族裔。"},"poses":{"type":"array","items":{"type":"string"},"description":"姿势标签。","nullable":true},"shot_types":{"type":"array","items":{"type":"string"},"description":"景别标签。","nullable":true},"industries":{"type":"array","items":{"type":"string"},"description":"行业标签。","nullable":true},"subregion":{"type":"string","description":"地区。"},"professions":{"type":"array","items":{"type":"string"},"description":"职业标签。","nullable":true},"looks":{"type":"array","items":{"type":"object","properties":{"look_id":{"type":"string","description":"外观 ID。"},"name":{"type":"string","description":"外观名称。"},"background_image_url":{"type":"string","description":"背景图地址。"},"clothes_image_url":{"type":"string","description":"服装图地址。"},"result_image_url":{"type":"string","description":"外观结果图地址。"},"prompt":{"type":"string","description":"外观描述。"},"status":{"type":"integer","description":"外观状态码。"},"ct":{"type":"integer","description":"创建时间，Unix 秒。"},"preview_url":{"type":"string","description":"外观预览图片或视频地址。"},"error_msg":{"type":"string","description":"外观生成错误信息。"}}},"description":"可选外观；使用其中的 look_id，不要根据名称猜测 ID。","nullable":true}},"required":["actor_id"],"description":"数字人对象，可直接保留列表返回的完整对象。提交时至少包含 actor_id。"},"with_subtitle":{"type":"boolean","description":"默认 false。true 时为音频额外生成字幕时间线，不会直接生成视频。"},"selected_look_ids":{"type":"array","items":{"type":"string"},"description":"选定外观 ID，仅保留为输入配置；音频仍按角色与文案组合生成。"}},"required":["aiactor"]},"description":"非空数字人数组。","minItems":1},"say_params":{"type":"object","properties":{"auto_emotion":{"type":"boolean","description":"是否自动表达情感；完全省略语音参数时默认 true。"},"speed":{"type":"number","description":"语速；省略或为 0 时使用服务端默认值 1.0。"},"stability":{"type":"number","description":"声音稳定度；省略或为 0 时默认 0.5。"},"similarity":{"type":"number","description":"声音相似度；省略或为 0 时默认 0.75。"},"style":{"type":"number","description":"风格强度，默认 0。"},"speaker_boost":{"type":"boolean","description":"是否增强说话人特征，默认 false。"}}},"candidate_tags":{"type":"array","items":{"type":"string"},"description":"兼容的候选标签配置。"}},"required":["selected_aiactor_voiceovers","selected_aiactors"]},"example":{"selected_aiactor_voiceovers":[{"topic":"产品介绍","draft":"大家好，今天为大家介绍如何把一段口播文案快速制作成数字人视频。"}],"selected_aiactors":[{"aiactor":{"actor_id":"act_example","name":"示例数字人"},"with_subtitle":false}],"say_params":{"auto_emotion":true,"speed":1.1,"stability":0.5,"similarity":0.75,"style":0,"speaker_boost":false}}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"tool_id":{"type":"string","description":"工具箱项目 ID，同时用作项目 ID 与任务 source_id。"},"task_id":{"type":"string","description":"异步任务 ID。"}},"required":["tool_id","task_id"]}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"tool_id":"tool_example","task_id":"task_audio_example"}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/toolbox/batch_render_avatar":{"post":{"operationId":"toolbox_batch_render_avatar","summary":"批量生成口播视频","description":"为每条脚本、数字人和外观组合提交一个视频渲染任务，可独立设置字幕；音频试听不是必经步骤。\n\n每条 selected_render_avatars 按非空 selected_look_ids 逐个展开；未选择外观时只生成一个默认外观视频。批量权益按展开后的视频数量校验，超限返回 70010。\n\n通过 task/batch_get 或 toolbox/get_info 查询 task_type=aiactor_perform_render_avatar；status=success 后读取 outputs.items[].output_video_url，可选字段包括 output_mime_type、workspace_id、workspace 与 analysis。\n\n可以先生成音频，再携带同一 tool_id、audio_url 和向上取整的真实 duration 生成视频；audio_url 当前仅作元数据保存，duration 用于费用计算，不应据此承诺成片直接复用试听音轨。\n\n按预估时长预扣视频积分，失败由原任务逻辑处理退款。循环提交中途失败可能已经创建部分任务，没有整批回滚保证；先核对已创建的任务。\n\n接口使用 Bearer API Key 识别当前注册用户，生成服务身份由服务端加载，不需要也不能通过请求体覆盖 uid、owner 或 h_m。\n\n提交接口没有幂等保证；网络超时、5xx 或不完整回执时可能已经创建任务。先用已保存的 tool_id、task_id 或项目中心核对，不要自动重放生成请求。","tags":["口播音视频"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tool_id":{"type":"string","description":"首次提交可省略或留空，自动创建工具箱项目；后续音频和视频提交复用同一 tool_id，项目须属于当前用户。"},"selected_render_avatars":{"type":"array","items":{"type":"object","properties":{"voiceover":{"type":"object","properties":{"topic":{"type":"string","description":"口播主题。"},"angle":{"type":"string","description":"内容角度。"},"draft":{"type":"string","description":"口播正文，使用时须为非空文本。"},"expression_style":{"type":"string","description":"表达风格。"},"source_id":{"type":"string","description":"可选的文案来源 ID。"},"version":{"type":"integer","description":"可选的文案版本。"}}},"script":{"type":"string","description":"口播正文，优先于 voiceover.draft；两者至少一个为非空文本。"},"aiactor":{"type":"object","properties":{"actor_id":{"type":"string","description":"从数字人列表取得的真实角色 ID，不能为空。","minLength":1},"name":{"type":"string","description":"数字人名称，建议保留以便项目展示。"},"id":{"type":"integer","description":"角色记录 ID。"},"ct":{"type":"integer","description":"创建时间，Unix 秒。"},"ut":{"type":"integer","description":"更新时间，Unix 秒。"},"hired_by":{"type":"string","description":"角色租用信息。"},"hired_at":{"type":"integer","description":"角色租用时间。"},"age":{"type":"string","description":"年龄分类。"},"gender":{"type":"string","description":"性别。"},"situation":{"type":"array","items":{"type":"string"},"description":"适用场景。","nullable":true},"pose":{"type":"string","description":"姿势。"},"shot_type":{"type":"string","description":"景别。"},"skin_tone":{"type":"string","description":"肤色。"},"accessories":{"description":"配饰信息，JSON 值。"},"voice_id":{"type":"string","description":"声音 ID；使用角色已配置的声音。"},"special_for":{"description":"角色适用信息，JSON 值。"},"preview_url":{"type":"string","description":"预览地址。"},"photo_url":{"type":"string","description":"角色照片地址。"},"original_show_off_url":{"type":"string","description":"原始展示视频地址。"},"show_off_url":{"type":"string","description":"展示视频地址。"},"light":{"type":"string","description":"光照描述。"},"audition_audio_url":{"type":"string","description":"声音试听地址。"},"score":{"type":"integer","description":"角色评分。"},"favourite":{"type":"boolean","description":"当前用户是否收藏。"},"status":{"type":"string","description":"角色状态；自建角色可能仍在生成中。"},"voices":{"description":"角色声音信息，JSON 值。"},"voice_vendor":{"type":"string","description":"声音服务商。"},"voice_account_id":{"type":"integer","description":"声音账号标识。"},"ethnicity":{"type":"string","description":"族裔。"},"poses":{"type":"array","items":{"type":"string"},"description":"姿势标签。","nullable":true},"shot_types":{"type":"array","items":{"type":"string"},"description":"景别标签。","nullable":true},"industries":{"type":"array","items":{"type":"string"},"description":"行业标签。","nullable":true},"subregion":{"type":"string","description":"地区。"},"professions":{"type":"array","items":{"type":"string"},"description":"职业标签。","nullable":true},"looks":{"type":"array","items":{"type":"object","properties":{"look_id":{"type":"string","description":"外观 ID。"},"name":{"type":"string","description":"外观名称。"},"background_image_url":{"type":"string","description":"背景图地址。"},"clothes_image_url":{"type":"string","description":"服装图地址。"},"result_image_url":{"type":"string","description":"外观结果图地址。"},"prompt":{"type":"string","description":"外观描述。"},"status":{"type":"integer","description":"外观状态码。"},"ct":{"type":"integer","description":"创建时间，Unix 秒。"},"preview_url":{"type":"string","description":"外观预览图片或视频地址。"},"error_msg":{"type":"string","description":"外观生成错误信息。"}}},"description":"可选外观；使用其中的 look_id，不要根据名称猜测 ID。","nullable":true}},"required":["actor_id"],"description":"数字人对象，可直接保留列表返回的完整对象。提交时至少包含 actor_id。"},"with_subtitle":{"type":"boolean","description":"是否给成片叠加字幕，默认 false。"},"subtitle_style":{"type":"object","properties":{"id":{"type":"string","description":"字幕样式 ID。"},"name":{"type":"string","description":"样式名称。"},"font_name":{"type":"string","description":"字体名称，从字体列表选择。"},"font_url":{"type":"string","description":"可选字体文件 URL。"},"font_size":{"type":"number","description":"字体大小。"},"bold":{"type":"boolean","description":"是否加粗。"},"italic":{"type":"boolean","description":"是否斜体。"},"text_color":{"type":"string","description":"文字颜色。"},"background_color":{"type":"string","description":"背景颜色。"},"stroke_color":{"type":"string","description":"描边颜色。"},"stroke_width":{"type":"number","description":"描边宽度。"},"opacity":{"type":"number","description":"透明度。"},"letter_spacing":{"type":"number","description":"字间距。"}},"description":"完整字幕样式对象，建议直接使用字幕预设列表的返回项；不能只传 ID。"},"audio_url":{"type":"string","description":"可选试听音频 URL，保存为任务元数据；当前视频合成仍按脚本和角色驱动，不承诺直接复用该音轨。"},"duration":{"type":"integer","description":"口播时长，整数秒。正值参与预扣费计算；省略或非正值时按正文约 5 字/秒向上取整估算。"},"selected_look_ids":{"type":"array","items":{"type":"string"},"description":"每个非空 ID 生成一个视频；省略、空数组或仅含空白时使用默认外观。"}},"required":["aiactor"],"anyOf":[{"required":["script"],"properties":{"script":{"type":"string","description":"非空口播正文。","minLength":1}}},{"required":["voiceover"],"properties":{"voiceover":{"type":"object","properties":{"draft":{"type":"string","description":"非空口播正文。","minLength":1}},"required":["draft"]}}}]},"description":"视频生成配置，至少一项。","minItems":1}},"required":["selected_render_avatars"]},"example":{"tool_id":"tool_example","selected_render_avatars":[{"script":"大家好，今天为大家介绍如何把一段口播文案快速制作成数字人视频。","aiactor":{"actor_id":"act_example","name":"示例数字人"},"selected_look_ids":["look_example"],"with_subtitle":true,"subtitle_style":{"id":"subtitle_example","name":"白字黑边","font_name":"zh-hans","font_size":65,"bold":false,"italic":false,"text_color":"#FFFFFF","background_color":"#00000000","stroke_color":"#000000","stroke_width":2,"opacity":1,"letter_spacing":0}}]}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"tool_id":{"type":"string","description":"工具箱项目 ID。"},"task_ids":{"type":"array","items":{"type":"string"},"description":"按输入配置及各外观顺序展开的任务 ID 数组；每条配置可能返回多个任务。"}},"required":["tool_id","task_ids"]}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"tool_id":"tool_example","task_ids":["task_video_example"]}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/toolbox/get_info":{"post":{"operationId":"toolbox_get_info","summary":"查询口播项目任务","description":"按工具箱项目 tool_id 查询当前用户的关联任务，查看口播音频和视频的状态、原始输入与生成结果。\n\n只返回当前 API Key 用户的任务；未知项目或无可见任务时 list 为空，不代表全部任务成功。接口不返回 scene 字段，任务场景位于 list[].task_scene。\n\n超过 50 条、需要完整跟踪或已保存全部任务 ID 时，使用 task/batch_get 按最多 50 个 ID 分组查询，不能用项目列表的最近 50 条推断整批完成。\n\nHTTP 200 和 ret=0 仅表示查询成功。等待每条任务 status=success 且输出实际音频或视频 URL 后再报告生成完成；failed、cancelled 为终态，读取 error_msg。","tags":["口播音视频"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tool_id":{"type":"string","description":"工具箱项目 ID，同时是关联任务的 source_id。","minLength":1}},"required":["tool_id"]},"example":{"tool_id":"tool_example"}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"tool_id":{"type":"string","description":"查询的工具箱项目 ID。"},"list":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","description":"任务记录 ID。"},"task_id":{"type":"string","description":"任务 ID。"},"task_type":{"type":"string","description":"任务类型。"},"task_scene":{"type":"string","description":"任务场景。"},"source_id":{"type":"string","description":"关联的工具或工作流 ID。"},"status":{"type":"string","description":"任务状态。","enum":["pending","running","success","failed","cancelled"]},"priority":{"type":"integer","description":"任务优先级，数字越小优先级越高。"},"timeout_seconds":{"type":"integer","description":"任务超时时间，秒。"},"owner":{"type":"string","description":"任务所属用户标识；只能查询当前用户的任务。"},"project_id":{"type":"string","description":"关联项目 ID。"},"inputs":{"description":"任务输入，JSON 对象、数组或 null。","nullable":true},"outputs":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"aiactor":{"type":"object","properties":{"actor_id":{"type":"string","description":"从数字人列表取得的真实角色 ID，不能为空。","minLength":1},"name":{"type":"string","description":"数字人名称，建议保留以便项目展示。"},"id":{"type":"integer","description":"角色记录 ID。"},"ct":{"type":"integer","description":"创建时间，Unix 秒。"},"ut":{"type":"integer","description":"更新时间，Unix 秒。"},"hired_by":{"type":"string","description":"角色租用信息。"},"hired_at":{"type":"integer","description":"角色租用时间。"},"age":{"type":"string","description":"年龄分类。"},"gender":{"type":"string","description":"性别。"},"situation":{"type":"array","items":{"type":"string"},"description":"适用场景。","nullable":true},"pose":{"type":"string","description":"姿势。"},"shot_type":{"type":"string","description":"景别。"},"skin_tone":{"type":"string","description":"肤色。"},"accessories":{"description":"配饰信息，JSON 值。"},"voice_id":{"type":"string","description":"声音 ID；使用角色已配置的声音。"},"special_for":{"description":"角色适用信息，JSON 值。"},"preview_url":{"type":"string","description":"预览地址。"},"photo_url":{"type":"string","description":"角色照片地址。"},"original_show_off_url":{"type":"string","description":"原始展示视频地址。"},"show_off_url":{"type":"string","description":"展示视频地址。"},"light":{"type":"string","description":"光照描述。"},"audition_audio_url":{"type":"string","description":"声音试听地址。"},"score":{"type":"integer","description":"角色评分。"},"favourite":{"type":"boolean","description":"当前用户是否收藏。"},"status":{"type":"string","description":"角色状态；自建角色可能仍在生成中。"},"voices":{"description":"角色声音信息，JSON 值。"},"voice_vendor":{"type":"string","description":"声音服务商。"},"voice_account_id":{"type":"integer","description":"声音账号标识。"},"ethnicity":{"type":"string","description":"族裔。"},"poses":{"type":"array","items":{"type":"string"},"description":"姿势标签。","nullable":true},"shot_types":{"type":"array","items":{"type":"string"},"description":"景别标签。","nullable":true},"industries":{"type":"array","items":{"type":"string"},"description":"行业标签。","nullable":true},"subregion":{"type":"string","description":"地区。"},"professions":{"type":"array","items":{"type":"string"},"description":"职业标签。","nullable":true},"looks":{"type":"array","items":{"type":"object","properties":{"look_id":{"type":"string","description":"外观 ID。"},"name":{"type":"string","description":"外观名称。"},"background_image_url":{"type":"string","description":"背景图地址。"},"clothes_image_url":{"type":"string","description":"服装图地址。"},"result_image_url":{"type":"string","description":"外观结果图地址。"},"prompt":{"type":"string","description":"外观描述。"},"status":{"type":"integer","description":"外观状态码。"},"ct":{"type":"integer","description":"创建时间，Unix 秒。"},"preview_url":{"type":"string","description":"外观预览图片或视频地址。"},"error_msg":{"type":"string","description":"外观生成错误信息。"}}},"description":"可选外观；使用其中的 look_id，不要根据名称猜测 ID。","nullable":true}},"required":["actor_id"],"description":"数字人对象，可直接保留列表返回的完整对象。提交时至少包含 actor_id。"},"voiceover":{"type":"object","properties":{"topic":{"type":"string","description":"口播主题。"},"angle":{"type":"string","description":"内容角度。"},"draft":{"type":"string","description":"口播正文，使用时须为非空文本。"},"expression_style":{"type":"string","description":"表达风格。"},"source_id":{"type":"string","description":"可选的文案来源 ID。"},"version":{"type":"integer","description":"可选的文案版本。"}}},"script":{"type":"string","description":"音频对应的口播正文。"},"with_subtitle":{"type":"boolean","description":"是否包含字幕或字幕时间线。"},"audio_url":{"type":"string","description":"音频任务的可播放音频 URL。"},"duration":{"type":"integer","description":"音频时长，秒。"},"analysis":{"description":"按需生成的时间线或分析数据。","nullable":true},"workspace_id":{"type":"string","description":"视频合成工作区 ID。"},"workspace":{"type":"object","description":"视频合成工作区信息。","additionalProperties":true},"output_video_url":{"type":"string","description":"视频任务的最终成片 URL。"},"output_mime_type":{"type":"string","description":"成片 MIME 类型。"}}},"description":"按 task_type 读取：aiactor_batch_say 返回 aiactor、script、audio_url 等；aiactor_perform_render_avatar 返回 workspace_id、output_video_url 等。"},"workspace_ids":{"type":"array","items":{"type":"string"},"description":"仅视频任务返回的工作区 ID 数组。"}},"description":"任务成功时的口播结果；音频与视频返回不同字段，不能把提交回执当作生成结果。","nullable":true},"error_msg":{"description":"任务错误详情，JSON 值或 null。","nullable":true},"retry_count":{"type":"integer","description":"已重试次数。"},"max_retry":{"type":"integer","description":"最大重试次数。"},"start_time":{"type":"integer","description":"开始时间，Unix 秒。"},"finish_time":{"type":"integer","description":"结束时间，Unix 秒。"},"ct":{"type":"integer","description":"创建时间，Unix 秒。"},"ut":{"type":"integer","description":"更新时间，Unix 秒。"}}},"description":"当前用户拥有的项目任务，按记录 ID 倒序，最多 50 条。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"tool_id":"tool_example","list":[{"task_id":"task_video_example","task_type":"aiactor_perform_render_avatar","task_scene":"toolbox_batch_say_render_avatar","source_id":"tool_example","status":"success","inputs":{"render_item":{"aiactor":{"actor_id":"act_example","name":"示例数字人"},"script":"大家好，今天为大家介绍如何把一段口播文案快速制作成数字人视频。","with_subtitle":true}},"outputs":{"workspace_ids":["workspace_example"],"items":[{"workspace_id":"workspace_example","with_subtitle":true,"output_video_url":"https://cdn.example.com/talking-video.mp4","output_mime_type":"video/mp4"}]},"error_msg":null},{"task_id":"task_audio_example","task_type":"aiactor_batch_say","source_id":"tool_example","status":"success","outputs":{"items":[{"aiactor":{"actor_id":"act_example","name":"示例数字人"},"script":"大家好，今天为大家介绍如何把一段口播文案快速制作成数字人视频。","voiceover":{"draft":"大家好，今天为大家介绍如何把一段口播文案快速制作成数字人视频。"},"audio_url":"https://cdn.example.com/talking-audio.mp3","duration":6,"with_subtitle":false}]},"error_msg":null}]}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/toolbox/wechat_article_analysis":{"post":{"operationId":"wechat_article_analysis","summary":"文章原文与爆款分析","description":"分析公众号文章、普通网页或文档，提取原文、转换 Markdown 并拆解内容结构与爆款逻辑。\n\n本地文档先调用文档上传接口，再将 file_url、file_name、mime_type 传入本接口。\n\n用 task/batch_get 获取结果。outputs 包含分析结果、article_row，以及按需获取的 stats。\n\n独立文章分析不依赖跟创能力开关。","tags":["文章分析"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wechat_url":{"type":"string","description":"公众号文章链接，支持 /s/分享码与含 __biz、mid、idx、sn 的长链接。"},"article_url":{"type":"string","description":"兼容的文章链接字段，优先级低于 wechat_url。"},"url":{"type":"string","description":"普通网页 HTTP(S) 链接；也兼容公众号文章链接。"},"file_url":{"type":"string","description":"文档 HTTP(S) 下载地址。填写后优先按文档分析。"},"file_name":{"type":"string","description":"文档文件名，建议使用上传接口返回值。"},"mime_type":{"type":"string","description":"文档 MIME 类型，建议使用上传接口返回值。"},"fetch_stats":{"type":"boolean","description":"是否获取公众号阅读、点赞等统计，默认 false；可能额外计费。网页和文档忽略此项。"},"fetch_article_stats":{"type":"boolean","description":"fetch_stats 的兼容字段。"},"include_stats":{"type":"boolean","description":"fetch_stats 的兼容字段。"}},"anyOf":[{"required":["wechat_url"],"properties":{"wechat_url":{"type":"string","minLength":1}}},{"required":["article_url"],"properties":{"article_url":{"type":"string","minLength":1}}},{"required":["url"],"properties":{"url":{"type":"string","minLength":1}}},{"required":["file_url"],"properties":{"file_url":{"type":"string","minLength":1}}}],"description":"wechat_url、article_url、url、file_url 至少填写一项非空来源。文档优先，其次按 wechat_url → article_url → url 取值。"},"example":{"wechat_url":"https://mp.weixin.qq.com/s/ARTICLE_SHARE_CODE","fetch_stats":false}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"tool_id":{"type":"string","description":"工具箱项目 ID，同时用作项目 ID 与任务 source_id。"},"task_id":{"type":"string","description":"异步任务 ID。"}},"required":["tool_id","task_id"]}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"tool_id":"tool_example","task_id":"task_example"}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/toolbox/wechat_article_analysis/upload":{"post":{"operationId":"article_upload","summary":"上传分析文档","description":"上传单个参考文档，获取可用于独立文章分析的文件地址与元信息。\n\n使用 multipart/form-data，字段名必须为 file。由客户端自动生成 Content-Type 边界。\n\n单个文件最大 50 MiB，不支持空文件。上传后再提交分析任务。","tags":["文章分析"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","description":"单个文档文件，最大 50 MiB。支持 PDF、Word、PPT、Excel、CSV/TSV、OpenDocument、EPUB、HTML/MHTML 和 OFD。","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"file_url":{"type":"string","description":"可用于分析的文档 URL。"},"file_name":{"type":"string","description":"文件名称。"},"mime_type":{"type":"string","description":"文件 MIME 类型。"},"size":{"type":"integer","description":"文件大小，字节。"}},"required":["file_url","file_name","mime_type","size"]}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"file_url":"https://cdn.example.com/reference.pdf","file_name":"reference.pdf","mime_type":"application/pdf","size":1024}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/task/batch_get":{"post":{"operationId":"task_batch_get","summary":"批量查询任务","description":"批量查询当前 API Key 所属用户的异步任务，获取执行状态、输入参数、输出结果与错误信息。\n\npending、running 表示执行中；success 表示完成；failed、cancelled 表示终止。建议间隔 3–5 秒轮询，并设置总超时。\n\nHTTP 200 或 ret=0 不等于任务完成，应继续检查每条任务的 status。\n\ninputs、outputs、error_msg 由服务端解码为 JSON。兼容旧结果时，可对字符串值再执行 JSON.parse。","tags":["任务管理"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"task_ids":{"type":"array","items":{"type":"string","description":"任务 ID。"},"description":"任务 ID 数组，去除空白、空字符串和重复项后需为 1–50 个。","minItems":1,"maxItems":50}},"required":["task_ids"]},"example":{"task_ids":["task_example"]}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"list":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","description":"任务记录 ID。"},"task_id":{"type":"string","description":"任务 ID。"},"task_type":{"type":"string","description":"任务类型。"},"task_scene":{"type":"string","description":"任务场景。"},"source_id":{"type":"string","description":"关联的工具或工作流 ID。"},"status":{"type":"string","description":"任务状态。","enum":["pending","running","success","failed","cancelled"]},"priority":{"type":"integer","description":"任务优先级，数字越小优先级越高。"},"timeout_seconds":{"type":"integer","description":"任务超时时间，秒。"},"owner":{"type":"string","description":"任务所属用户标识；只能查询当前用户的任务。"},"project_id":{"type":"string","description":"关联项目 ID。"},"inputs":{"description":"任务输入，JSON 对象、数组或 null。","nullable":true},"outputs":{"description":"任务结果，JSON 值或 null；success 时读取。","nullable":true},"error_msg":{"description":"任务错误详情，JSON 值或 null。","nullable":true},"retry_count":{"type":"integer","description":"已重试次数。"},"max_retry":{"type":"integer","description":"最大重试次数。"},"start_time":{"type":"integer","description":"开始时间，Unix 秒。"},"finish_time":{"type":"integer","description":"结束时间，Unix 秒。"},"ct":{"type":"integer","description":"创建时间，Unix 秒。"},"ut":{"type":"integer","description":"更新时间，Unix 秒。"}}},"description":"按请求顺序返回当前用户拥有的任务。不存在或无权限的任务会被省略。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"list":[{"task_id":"task_example","status":"running","inputs":{"url":"https://v.douyin.com/VIDEO_SHARE_CODE/","split_video":false},"outputs":null,"error_msg":null}]}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/capabilities":{"post":{"operationId":"capabilities","summary":"查询跟创能力","description":"获取支持的模式、审稿范围和默认创作配置。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}},"example":{}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"schema_version":{"type":"integer","description":"能力协议版本。"},"modes":{"type":"array","items":{"type":"string"},"description":"local / wechat_draft。"},"review_scopes":{"type":"array","items":{"type":"string"},"description":"content / wechat_release。"},"formal_publish":{"type":"boolean","description":"是否支持正式发布，当前为 false。"},"default_config":{"type":"object","properties":{"article_category":{"type":"string","description":"文章类别。"},"target_reader":{"type":"string","description":"目标读者。"},"tone":{"type":"string","description":"语气，默认：轻松专业。"},"topic_direction":{"type":"string","description":"选题方向。"},"title_style":{"type":"string","description":"标题风格，默认：干货型。"},"title_max_length":{"type":"integer","description":"标题建议长度，默认 64。"},"writing_style":{"type":"string","description":"写作风格，默认：口语化。"},"paragraph_preference":{"type":"string","description":"段落偏好，默认：短段为主。"},"heading_density":{"type":"string","description":"小标题密度。"},"target_word_count":{"type":"string","description":"目标字数，默认字符串 2500。"},"default_author":{"type":"string","description":"文章署名，可为空，最多 8 个字符。","maxLength":8},"forbidden_title_phrases":{"type":"array","items":{"type":"string"},"description":"标题禁用短语。"},"forbidden_words":{"type":"array","items":{"type":"string"},"description":"正文禁用词。"},"image_style":{"type":"string","description":"配图风格。"},"image_density":{"type":"string","description":"配图密度。"},"cover_aspect":{"type":"string","description":"封面比例，默认 2.35:1。"},"article_image_aspect":{"type":"string","description":"正文图片比例，默认 16:9。"},"business_context":{"type":"string","description":"账号定位、业务资料与品牌背景。"}},"description":"创作配置；未填写的选项按服务默认值补齐。可从 capabilities.default_config 获取。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"schema_version":1,"modes":["local","wechat_draft"],"review_scopes":["content","wechat_release"],"formal_publish":false,"default_config":{"tone":"轻松专业","target_word_count":"2500"}}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/quote":{"post":{"operationId":"quote","summary":"预估操作积分","description":"在提交异步操作前，按动作和输入参数查询积分报价。此接口不创建任务。\n\n示例中的积分仅用于展示。实际请求应采用实时 credits 设置 max_credits。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","description":"需要报价的异步动作。","enum":["analysis_article","article_preferences","article_topics","article_draft","image_plan","image_generate","article_review"]},"inputs":{"type":"object","description":"目标动作的输入参数，与实际提交内容保持一致。","additionalProperties":true}},"required":["action","inputs"]},"example":{"action":"analysis_article","inputs":{"wechat_url":"https://mp.weixin.qq.com/s/ARTICLE_SHARE_CODE","fetch_stats":false}}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"credits":{"type":"integer","description":"预计消耗积分，以实时返回值为准。"},"action":{"type":"string","description":"报价动作。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"credits":10,"action":"analysis_article"}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/account/list":{"post":{"operationId":"account_list","summary":"查询已授权公众号","description":"分页查询当前用户已绑定的公众号，用于选择草稿同步账号。\n\n查询成功且 total=0 时，前往工作台的公众号管理页面完成绑定，然后继续原工作流。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"integer","description":"页码，默认 1。","minimum":1},"size":{"type":"integer","description":"每页条数，1–100；省略或越界时使用 20。","minimum":1,"maximum":100}}},"example":{"page":1,"size":20}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"list":{"type":"array","items":{"type":"object","description":"公众号信息，使用 account_id 选择账号。","additionalProperties":true},"description":"已绑定公众号列表。","nullable":true},"total":{"type":"integer","description":"账号总数。"},"page":{"type":"integer","description":"当前页。"},"size":{"type":"integer","description":"每页条数。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"list":[],"total":0,"page":1,"size":20}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/themes":{"post":{"operationId":"themes","summary":"查询排版主题","description":"获取可用于 article_template_render 的排版主题列表。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}},"example":{}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"themes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"主题标识。"},"category":{"type":"string","description":"主题分类。"},"description":{"type":"string","description":"主题说明。"}}},"description":"可用主题列表。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"themes":[{"name":"default","category":"basic","description":"微信经典风格，温暖舒适"}]}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/workflow/info":{"post":{"operationId":"workflow_info","summary":"查询工作流详情","description":"读取工作流步骤、产物与操作记录，用于恢复流程和确认操作状态。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"}},"required":["flow_id"]},"example":{"flow_id":"flow_example"}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"workflow":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"scene":{"type":"string","description":"工作流场景。"},"current_step":{"type":"string","description":"当前步骤。"},"ct":{"type":"integer","description":"创建时间。"},"ut":{"type":"integer","description":"更新时间。"}}},"steps":{"type":"array","items":{"type":"object","description":"工作流步骤。","additionalProperties":true},"description":"步骤及状态。"},"produce_info":{"type":"object","description":"按产物类型索引的 JSON 字符串，需单独解析。","additionalProperties":{"type":"string"}},"operations":{"type":"array","items":{"type":"object","properties":{"idempotency_key":{"type":"string","description":"原请求幂等键。"},"action":{"type":"string","description":"操作动作。"},"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"task_id":{"type":"string","description":"任务 ID，异步时返回。"},"status":{"type":"string","description":"started / submitted / done / failed / unknown。"},"response":{"description":"已保存的操作回执。"}}},"description":"可恢复操作记录。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"workflow":{"flow_id":"flow_example","scene":"wechat_article_follow_create","current_step":"analysis_article"},"steps":[],"produce_info":{},"operations":[]}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/analysis_article":{"post":{"operationId":"analysis_article","summary":"分析参考文章","description":"分析参考来源并创建跟创工作流，返回 flow_id 和 task_id。\n\n首次调用可省略 flow_id；已有工作流时可传入。来源字段至少填写一项，规则与独立文章分析一致。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。\n\n同一工作流的写操作串行执行。结果未知时保留原 idempotency_key，通过 workflow/info 查看记录，并以原请求恢复。\n\n跟创 API 需要服务端启用相应能力。article_publish 只同步微信草稿箱，正式群发需在公众号后台完成。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"idempotency_key":{"type":"string","description":"本次操作的唯一幂等键，8–128 个字符。同一请求重试保持原键与原请求体；修改内容后使用新键。","minLength":8,"maxLength":128},"max_credits":{"type":"integer","description":"本次异步操作允许消耗的积分上限。先用 quote 获取报价，再明确填写预算。","minimum":0},"wechat_url":{"type":"string","description":"公众号文章链接，支持 /s/分享码与含 __biz、mid、idx、sn 的长链接。"},"article_url":{"type":"string","description":"兼容的文章链接字段，优先级低于 wechat_url。"},"url":{"type":"string","description":"普通网页 HTTP(S) 链接；也兼容公众号文章链接。"},"file_url":{"type":"string","description":"文档 HTTP(S) 下载地址。填写后优先按文档分析。"},"file_name":{"type":"string","description":"文档文件名，建议使用上传接口返回值。"},"mime_type":{"type":"string","description":"文档 MIME 类型，建议使用上传接口返回值。"},"fetch_stats":{"type":"boolean","description":"是否获取公众号阅读、点赞等统计，默认 false；可能额外计费。网页和文档忽略此项。"},"fetch_article_stats":{"type":"boolean","description":"fetch_stats 的兼容字段。"},"include_stats":{"type":"boolean","description":"fetch_stats 的兼容字段。"}},"required":["idempotency_key","max_credits"],"anyOf":[{"required":["wechat_url"],"properties":{"wechat_url":{"type":"string","minLength":1}}},{"required":["article_url"],"properties":{"article_url":{"type":"string","minLength":1}}},{"required":["url"],"properties":{"url":{"type":"string","minLength":1}}},{"required":["file_url"],"properties":{"file_url":{"type":"string","minLength":1}}}]},"example":{"idempotency_key":"example-analysis_article-001","max_credits":100,"wechat_url":"https://mp.weixin.qq.com/s/ARTICLE_SHARE_CODE","fetch_stats":false}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"task_id":{"type":"string","description":"异步任务 ID；使用 task/batch_get 查询执行结果。"}},"required":["flow_id","task_id"]}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"flow_id":"flow_example","task_id":"skill_example"}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/article_preferences":{"post":{"operationId":"article_preferences","summary":"推导创作偏好","description":"从参考文章中提炼账号定位、目标读者与创作文风。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。\n\n同一工作流的写操作串行执行。结果未知时保留原 idempotency_key，通过 workflow/info 查看记录，并以原请求恢复。\n\n跟创 API 需要服务端启用相应能力。article_publish 只同步微信草稿箱，正式群发需在公众号后台完成。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"idempotency_key":{"type":"string","description":"本次操作的唯一幂等键，8–128 个字符。同一请求重试保持原键与原请求体；修改内容后使用新键。","minLength":8,"maxLength":128},"max_credits":{"type":"integer","description":"本次异步操作允许消耗的积分上限。先用 quote 获取报价，再明确填写预算。","minimum":0},"source_url":{"type":"string","description":"参考来源 URL。"},"title":{"type":"string","description":"参考文章标题。"},"author":{"type":"string","description":"参考作者。"},"content":{"type":"string","description":"参考正文，不能为空。","minLength":1},"analysis_summary":{"type":"string","description":"参考文章结构分析摘要。"}},"required":["flow_id","idempotency_key","max_credits","content"]},"example":{"flow_id":"flow_example","idempotency_key":"example-article_preferences-001","max_credits":100,"title":"参考文章标题","content":"从文章分析结果中获取的参考正文。"}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"task_id":{"type":"string","description":"异步任务 ID；使用 task/batch_get 查询执行结果。"}},"required":["flow_id","task_id"]}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"flow_id":"flow_example","task_id":"skill_example"}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/article_topics":{"post":{"operationId":"article_topics","summary":"生成文章选题","description":"根据创作配置与参考材料生成选题、候选标题和大纲。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。\n\n同一工作流的写操作串行执行。结果未知时保留原 idempotency_key，通过 workflow/info 查看记录，并以原请求恢复。\n\n跟创 API 需要服务端启用相应能力。article_publish 只同步微信草稿箱，正式群发需在公众号后台完成。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"idempotency_key":{"type":"string","description":"本次操作的唯一幂等键，8–128 个字符。同一请求重试保持原键与原请求体；修改内容后使用新键。","minLength":8,"maxLength":128},"max_credits":{"type":"integer","description":"本次异步操作允许消耗的积分上限。先用 quote 获取报价，再明确填写预算。","minimum":0},"mode":{"type":"string","description":"选题模式，默认 specific。","enum":["specific","direction","open","series"]},"topic":{"type":"string","description":"选题或方向；除 open 外必填。"},"config":{"type":"object","properties":{"article_category":{"type":"string","description":"文章类别。"},"target_reader":{"type":"string","description":"目标读者。"},"tone":{"type":"string","description":"语气，默认：轻松专业。"},"topic_direction":{"type":"string","description":"选题方向。"},"title_style":{"type":"string","description":"标题风格，默认：干货型。"},"title_max_length":{"type":"integer","description":"标题建议长度，默认 64。"},"writing_style":{"type":"string","description":"写作风格，默认：口语化。"},"paragraph_preference":{"type":"string","description":"段落偏好，默认：短段为主。"},"heading_density":{"type":"string","description":"小标题密度。"},"target_word_count":{"type":"string","description":"目标字数，默认字符串 2500。"},"default_author":{"type":"string","description":"文章署名，可为空，最多 8 个字符。","maxLength":8},"forbidden_title_phrases":{"type":"array","items":{"type":"string"},"description":"标题禁用短语。"},"forbidden_words":{"type":"array","items":{"type":"string"},"description":"正文禁用词。"},"image_style":{"type":"string","description":"配图风格。"},"image_density":{"type":"string","description":"配图密度。"},"cover_aspect":{"type":"string","description":"封面比例，默认 2.35:1。"},"article_image_aspect":{"type":"string","description":"正文图片比例，默认 16:9。"},"business_context":{"type":"string","description":"账号定位、业务资料与品牌背景。"}},"description":"创作配置；未填写的选项按服务默认值补齐。可从 capabilities.default_config 获取。"},"source_materials":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"材料名称。"},"url":{"type":"string","description":"来源链接。"},"content":{"type":"string","description":"参考内容。"}}},"description":"参考资料列表。"}},"required":["flow_id","idempotency_key","max_credits"]},"example":{"flow_id":"flow_example","idempotency_key":"example-article_topics-001","max_credits":100,"mode":"direction","topic":"中小企业如何用 AI 提升内容效率","config":{"target_reader":"中小企业经营者"}}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"task_id":{"type":"string","description":"异步任务 ID；使用 task/batch_get 查询执行结果。"}},"required":["flow_id","task_id"]}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"flow_id":"flow_example","task_id":"skill_example"}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/article_draft":{"post":{"operationId":"article_draft","summary":"创作与修改初稿","description":"支持初稿、改写、续写、去 AI 味及标题建议，结果通过任务查询获取。\n\ntitle_suggest 需要 markdown 或 topic。异步写作完成后可调用 version/save 保存版本快照。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。\n\n同一工作流的写操作串行执行。结果未知时保留原 idempotency_key，通过 workflow/info 查看记录，并以原请求恢复。\n\n跟创 API 需要服务端启用相应能力。article_publish 只同步微信草稿箱，正式群发需在公众号后台完成。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"idempotency_key":{"type":"string","description":"本次操作的唯一幂等键，8–128 个字符。同一请求重试保持原键与原请求体；修改内容后使用新键。","minLength":8,"maxLength":128},"max_credits":{"type":"integer","description":"本次异步操作允许消耗的积分上限。先用 quote 获取报价，再明确填写预算。","minimum":0},"action":{"type":"string","description":"写作动作，默认 draft。","enum":["draft","rewrite","continue","humanize","title_suggest"]},"topic":{"type":"string","description":"选题；draft 时 topic 或 topic_card 至少填一项。"},"topic_card":{"type":"object","properties":{"id":{"type":"string","description":"选题 ID。"},"name":{"type":"string","description":"选题名称。"},"type":{"type":"string","description":"选题类型。"},"angle":{"type":"string","description":"切入角度。"},"reader_pain":{"type":"string","description":"读者痛点。"},"titles":{"type":"array","items":{"type":"string"},"description":"候选标题。"},"outline":{"type":"array","items":{"type":"string"},"description":"大纲。"},"summary_options":{"type":"array","items":{"type":"string"},"description":"摘要候选。"},"estimated_words":{"type":"integer","description":"预计字数。"},"material_needs":{"type":"string","description":"所需材料。"}},"description":"article_topics 返回的候选选题。"},"markdown":{"type":"string","description":"已有正文；rewrite、continue、humanize 时必填。"},"instruction":{"type":"string","description":"补充创作或修改要求。"},"config":{"type":"object","properties":{"article_category":{"type":"string","description":"文章类别。"},"target_reader":{"type":"string","description":"目标读者。"},"tone":{"type":"string","description":"语气，默认：轻松专业。"},"topic_direction":{"type":"string","description":"选题方向。"},"title_style":{"type":"string","description":"标题风格，默认：干货型。"},"title_max_length":{"type":"integer","description":"标题建议长度，默认 64。"},"writing_style":{"type":"string","description":"写作风格，默认：口语化。"},"paragraph_preference":{"type":"string","description":"段落偏好，默认：短段为主。"},"heading_density":{"type":"string","description":"小标题密度。"},"target_word_count":{"type":"string","description":"目标字数，默认字符串 2500。"},"default_author":{"type":"string","description":"文章署名，可为空，最多 8 个字符。","maxLength":8},"forbidden_title_phrases":{"type":"array","items":{"type":"string"},"description":"标题禁用短语。"},"forbidden_words":{"type":"array","items":{"type":"string"},"description":"正文禁用词。"},"image_style":{"type":"string","description":"配图风格。"},"image_density":{"type":"string","description":"配图密度。"},"cover_aspect":{"type":"string","description":"封面比例，默认 2.35:1。"},"article_image_aspect":{"type":"string","description":"正文图片比例，默认 16:9。"},"business_context":{"type":"string","description":"账号定位、业务资料与品牌背景。"}},"description":"创作配置；未填写的选项按服务默认值补齐。可从 capabilities.default_config 获取。"},"source_materials":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"材料名称。"},"url":{"type":"string","description":"来源链接。"},"content":{"type":"string","description":"参考内容。"}}},"description":"参考资料列表。"}},"required":["flow_id","idempotency_key","max_credits"]},"example":{"flow_id":"flow_example","idempotency_key":"example-article_draft-001","max_credits":100,"action":"draft","topic":"中小企业的 AI 内容工作流","config":{"target_word_count":"2500"}}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"task_id":{"type":"string","description":"异步任务 ID；使用 task/batch_get 查询执行结果。"}},"required":["flow_id","task_id"]}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"flow_id":"flow_example","task_id":"skill_example"}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/image_plan":{"post":{"operationId":"image_plan","summary":"规划文章配图","description":"根据标题、正文与风格配置规划封面和正文图片。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。\n\n同一工作流的写操作串行执行。结果未知时保留原 idempotency_key，通过 workflow/info 查看记录，并以原请求恢复。\n\n跟创 API 需要服务端启用相应能力。article_publish 只同步微信草稿箱，正式群发需在公众号后台完成。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"idempotency_key":{"type":"string","description":"本次操作的唯一幂等键，8–128 个字符。同一请求重试保持原键与原请求体；修改内容后使用新键。","minLength":8,"maxLength":128},"max_credits":{"type":"integer","description":"本次异步操作允许消耗的积分上限。先用 quote 获取报价，再明确填写预算。","minimum":0},"mode":{"type":"string","description":"规划模式，默认 article。","enum":["article","sticker"]},"title":{"type":"string","description":"文章标题；title 或 markdown 至少一项。"},"markdown":{"type":"string","description":"文章正文。"},"count":{"type":"integer","description":"规划图片总数；article 默认 4，sticker 默认 6，超出服务上限时会截断。"},"config":{"type":"object","properties":{"article_category":{"type":"string","description":"文章类别。"},"target_reader":{"type":"string","description":"目标读者。"},"tone":{"type":"string","description":"语气，默认：轻松专业。"},"topic_direction":{"type":"string","description":"选题方向。"},"title_style":{"type":"string","description":"标题风格，默认：干货型。"},"title_max_length":{"type":"integer","description":"标题建议长度，默认 64。"},"writing_style":{"type":"string","description":"写作风格，默认：口语化。"},"paragraph_preference":{"type":"string","description":"段落偏好，默认：短段为主。"},"heading_density":{"type":"string","description":"小标题密度。"},"target_word_count":{"type":"string","description":"目标字数，默认字符串 2500。"},"default_author":{"type":"string","description":"文章署名，可为空，最多 8 个字符。","maxLength":8},"forbidden_title_phrases":{"type":"array","items":{"type":"string"},"description":"标题禁用短语。"},"forbidden_words":{"type":"array","items":{"type":"string"},"description":"正文禁用词。"},"image_style":{"type":"string","description":"配图风格。"},"image_density":{"type":"string","description":"配图密度。"},"cover_aspect":{"type":"string","description":"封面比例，默认 2.35:1。"},"article_image_aspect":{"type":"string","description":"正文图片比例，默认 16:9。"},"business_context":{"type":"string","description":"账号定位、业务资料与品牌背景。"}},"description":"创作配置；未填写的选项按服务默认值补齐。可从 capabilities.default_config 获取。"}},"required":["flow_id","idempotency_key","max_credits"]},"example":{"flow_id":"flow_example","idempotency_key":"example-image_plan-001","max_credits":100,"mode":"article","title":"中小企业的 AI 内容工作流","markdown":"## 从一个具体问题开始\n文章正文……","count":3}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"task_id":{"type":"string","description":"异步任务 ID；使用 task/batch_get 查询执行结果。"}},"required":["flow_id","task_id"]}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"flow_id":"flow_example","task_id":"skill_example"}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/image_generate":{"post":{"operationId":"image_generate","summary":"生成封面与配图","description":"按图片规划生成图片，异步结果包含图片 ID、生成 URL 与比例等信息。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。\n\n同一工作流的写操作串行执行。结果未知时保留原 idempotency_key，通过 workflow/info 查看记录，并以原请求恢复。\n\n跟创 API 需要服务端启用相应能力。article_publish 只同步微信草稿箱，正式群发需在公众号后台完成。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"idempotency_key":{"type":"string","description":"本次操作的唯一幂等键，8–128 个字符。同一请求重试保持原键与原请求体；修改内容后使用新键。","minLength":8,"maxLength":128},"max_credits":{"type":"integer","description":"本次异步操作允许消耗的积分上限。先用 quote 获取报价，再明确填写预算。","minimum":0},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"对应规划中的图片 ID。"},"kind":{"type":"string","description":"cover 为封面，content 为正文；兼容 body。"},"prompt":{"type":"string","description":"图片生成提示词，不能为空。","minLength":1},"aspect_ratio":{"type":"string","description":"图片比例，如 2.35:1、16:9。"}},"required":["prompt"]},"description":"待生成的图片列表。默认最多 1 张封面与 10 张正文图，实际上限由服务配置决定。","minItems":1},"quality":{"type":"string","description":"生成质量，默认 medium。","enum":["low","medium","high"]}},"required":["flow_id","idempotency_key","max_credits","items"]},"example":{"flow_id":"flow_example","idempotency_key":"example-image_generate-001","max_credits":100,"items":[{"id":"cover","kind":"cover","prompt":"简洁的 AI 内容工作流信息插画，无文字","aspect_ratio":"2.35:1"}],"quality":"medium"}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"task_id":{"type":"string","description":"异步任务 ID；使用 task/batch_get 查询执行结果。"}},"required":["flow_id","task_id"]}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"flow_id":"flow_example","task_id":"skill_example"}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/image_apply":{"post":{"operationId":"image_apply","summary":"上传配图到公众号","description":"将本工作流已生成的图片上传到选定公众号，保存可恢复的素材回执。\n\ncover 返回永久素材 media_id；content 返回正文素材 URL。body 会被规范化为 content。每个账号需单独上传素材。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。\n\n同一工作流的写操作串行执行。结果未知时保留原 idempotency_key，通过 workflow/info 查看记录，并以原请求恢复。\n\n跟创 API 需要服务端启用相应能力。article_publish 只同步微信草稿箱，正式群发需在公众号后台完成。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"idempotency_key":{"type":"string","description":"本次操作的唯一幂等键，8–128 个字符。同一请求重试保持原键与原请求体；修改内容后使用新键。","minLength":8,"maxLength":128},"image_id":{"type":"string","description":"本工作流生成结果中的图片 ID。"},"account_id":{"type":"string","description":"当前用户拥有的公众号 ID。"},"image_url":{"type":"string","description":"与 image_id 匹配的生成图片 HTTP(S) URL。"},"kind":{"type":"string","description":"上传用途，推荐使用 cover / content。","enum":["cover","content","body"]},"filename":{"type":"string","description":"可选文件名。"},"content_type":{"type":"string","description":"可选图片 MIME 类型。"}},"required":["flow_id","idempotency_key","image_id","account_id","image_url","kind"]},"example":{"flow_id":"flow_example","idempotency_key":"example-image_apply-001","image_id":"cover","account_id":"account_example","image_url":"https://cdn.example.com/cover.png","kind":"cover"}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"image_id":{"type":"string","description":"图片 ID。"},"account_id":{"type":"string","description":"公众号 ID。"},"kind":{"type":"string","description":"cover / content。"},"media_id":{"type":"string","description":"封面的永久素材 ID。"},"url":{"type":"string","description":"微信图片 URL。"},"image_url":{"type":"string","description":"原生成图片 URL。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"flow_id":"flow_example","image_id":"cover","account_id":"account_example","kind":"cover","media_id":"media_example","url":"https://mmbiz.qpic.cn/example","image_url":"https://cdn.example.com/cover.png"}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/article_review":{"post":{"operationId":"article_review","summary":"审阅文章内容","description":"审阅正文、图片与账号配置，生成审稿报告；微信草稿同步前须完成最终审阅。\n\n同步微信草稿需 review_scope=wechat_release、final=true，且 selected_account_id 与目标账号一致。修改内容或素材后应重新审阅。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。\n\n同一工作流的写操作串行执行。结果未知时保留原 idempotency_key，通过 workflow/info 查看记录，并以原请求恢复。\n\n跟创 API 需要服务端启用相应能力。article_publish 只同步微信草稿箱，正式群发需在公众号后台完成。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"idempotency_key":{"type":"string","description":"本次操作的唯一幂等键，8–128 个字符。同一请求重试保持原键与原请求体；修改内容后使用新键。","minLength":8,"maxLength":128},"max_credits":{"type":"integer","description":"本次异步操作允许消耗的积分上限。先用 quote 获取报价，再明确填写预算。","minimum":0},"review_scope":{"type":"string","description":"审阅范围，默认 content。","enum":["content","wechat_release"]},"title":{"type":"string","description":"文章标题。"},"digest":{"type":"string","description":"文章摘要。"},"markdown":{"type":"string","description":"待审阅的正文，不能为空。","minLength":1},"config":{"type":"object","properties":{"article_category":{"type":"string","description":"文章类别。"},"target_reader":{"type":"string","description":"目标读者。"},"tone":{"type":"string","description":"语气，默认：轻松专业。"},"topic_direction":{"type":"string","description":"选题方向。"},"title_style":{"type":"string","description":"标题风格，默认：干货型。"},"title_max_length":{"type":"integer","description":"标题建议长度，默认 64。"},"writing_style":{"type":"string","description":"写作风格，默认：口语化。"},"paragraph_preference":{"type":"string","description":"段落偏好，默认：短段为主。"},"heading_density":{"type":"string","description":"小标题密度。"},"target_word_count":{"type":"string","description":"目标字数，默认字符串 2500。"},"default_author":{"type":"string","description":"文章署名，可为空，最多 8 个字符。","maxLength":8},"forbidden_title_phrases":{"type":"array","items":{"type":"string"},"description":"标题禁用短语。"},"forbidden_words":{"type":"array","items":{"type":"string"},"description":"正文禁用词。"},"image_style":{"type":"string","description":"配图风格。"},"image_density":{"type":"string","description":"配图密度。"},"cover_aspect":{"type":"string","description":"封面比例，默认 2.35:1。"},"article_image_aspect":{"type":"string","description":"正文图片比例，默认 16:9。"},"business_context":{"type":"string","description":"账号定位、业务资料与品牌背景。"}},"description":"创作配置；未填写的选项按服务默认值补齐。可从 capabilities.default_config 获取。"},"final":{"type":"boolean","description":"是否最终审阅；同步草稿前必须为 true。"},"selected_account_id":{"type":"string","description":"最终审阅选定的公众号 ID。"},"image_placeholders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"图片 ID。"},"kind":{"type":"string","description":"图片用途，cover 为封面，content 为正文。"},"image_url":{"type":"string","description":"生成图片的 CDN URL。"},"wx_image_url":{"type":"string","description":"上传后的微信图片 URL。"},"placement":{"type":"string","description":"插入位置。"},"caption":{"type":"string","description":"配图说明。"},"prompt":{"type":"string","description":"图片生成提示词。"},"aspect_ratio":{"type":"string","description":"图片比例。"}}},"description":"图片规划与占位信息。"},"generated_images":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"图片 ID。"},"kind":{"type":"string","description":"cover / content。"},"prompt":{"type":"string","description":"生成提示词。"},"url":{"type":"string","description":"生成图片 URL。"},"wechat_url":{"type":"string","description":"微信图片 URL。"},"media_id":{"type":"string","description":"微信永久素材 ID。"},"account_id":{"type":"string","description":"素材所属公众号 ID。"}}},"description":"已生成及已上传的图片凭证。"}},"required":["flow_id","idempotency_key","max_credits","markdown"]},"example":{"flow_id":"flow_example","idempotency_key":"example-article_review-001","max_credits":100,"review_scope":"content","title":"中小企业的 AI 内容工作流","digest":"从选题到成稿的实践方法。","markdown":"## 从一个具体问题开始\n文章正文……","final":false}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"task_id":{"type":"string","description":"异步任务 ID；使用 task/batch_get 查询执行结果。"}},"required":["flow_id","task_id"]}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"flow_id":"flow_example","task_id":"skill_example"}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/article_template_render":{"post":{"operationId":"article_template_render","summary":"渲染公众号排版","description":"将已审阅的 Markdown 转为公众号可用 HTML，并返回排版检查结果。\n\n草稿同步必须使用最终审阅之后的渲染产物。预览使用生成图片 CDN URL；传入微信草稿时按 image_apply 回执替换为微信图片 URL。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。\n\n同一工作流的写操作串行执行。结果未知时保留原 idempotency_key，通过 workflow/info 查看记录，并以原请求恢复。\n\n跟创 API 需要服务端启用相应能力。article_publish 只同步微信草稿箱，正式群发需在公众号后台完成。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"idempotency_key":{"type":"string","description":"本次操作的唯一幂等键，8–128 个字符。同一请求重试保持原键与原请求体；修改内容后使用新键。","minLength":8,"maxLength":128},"markdown":{"type":"string","description":"待排版 Markdown，不能为空。","minLength":1},"theme":{"type":"string","description":"主题标识，默认 default；可用主题见 themes。"},"font_size":{"type":"string","description":"正文字号配置。"},"background_type":{"type":"string","description":"背景样式配置。"},"title":{"type":"string","description":"文章标题。"},"author":{"type":"string","description":"文章署名。"},"digest":{"type":"string","description":"摘要。"}},"required":["flow_id","idempotency_key","markdown"]},"example":{"flow_id":"flow_example","idempotency_key":"example-article_template_render-001","markdown":"## 从一个具体问题开始\n文章正文……","theme":"default","title":"中小企业的 AI 内容工作流"}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"html":{"type":"string","description":"渲染后的 HTML。"},"theme":{"type":"string","description":"主题。"},"font_size":{"type":"string","description":"字号。"},"background_type":{"type":"string","description":"背景。"},"word_count":{"type":"integer","description":"字数。"},"estimated_read_time":{"type":"integer","description":"预计阅读时长。"},"metadata":{"type":"object","description":"解析得到的标题、作者、摘要。","additionalProperties":true},"images":{"type":"array","items":{"type":"object","description":"图片 URL 与位置。","additionalProperties":true},"description":"图片列表。"},"checks":{"type":"array","items":{"type":"object","description":"检查项。","additionalProperties":true},"description":"排版检查。"},"source":{"type":"string","description":"渲染来源。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"flow_id":"flow_example","html":"<section><h2>从一个具体问题开始</h2><p>文章正文……</p></section>","theme":"default","word_count":20}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/article_publish":{"post":{"operationId":"article_publish","summary":"同步到微信草稿箱","description":"将最终审阅并排版的文章创建或更新至公众号草稿箱。此接口不会正式群发。\n\n示例结构用于说明字段；必须填入当前工作流真实的审稿、排版和素材产物后才能通过门禁。\n\n必须先上传封面及所有规划图片，完成该账号的最终审阅并重新排版。存在 must 问题、素材未准备或内容已变更时会拒绝同步。\n\n遇到 50111 结果未知时，保持原键恢复，避免重复创建微信草稿。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。\n\n同一工作流的写操作串行执行。结果未知时保留原 idempotency_key，通过 workflow/info 查看记录，并以原请求恢复。\n\n跟创 API 需要服务端启用相应能力。article_publish 只同步微信草稿箱，正式群发需在公众号后台完成。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"idempotency_key":{"type":"string","description":"本次操作的唯一幂等键，8–128 个字符。同一请求重试保持原键与原请求体；修改内容后使用新键。","minLength":8,"maxLength":128},"account_id":{"type":"string","description":"目标公众号 ID，必须属于当前用户且已授权。"},"article_id":{"type":"string","description":"更新现有草稿时填写上次回执的 article_id。"},"revision":{"type":"integer","description":"更新时填写上次回执的 revision，成功后递增。"},"articles":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","description":"已审阅的文章标题。"},"author":{"type":"string","description":"署名，最多 8 个字符。","maxLength":8},"digest":{"type":"string","description":"已审阅摘要。"},"content_html":{"type":"string","description":"已排版 HTML，图片替换为当前账号微信 URL。"},"content_source_url":{"type":"string","description":"阅读原文 URL，可选。"},"thumb_media_id":{"type":"string","description":"当前账号已上传封面的永久素材 ID。"},"thumb_asset_id":{"type":"string","description":"封面资产 ID，可选。"},"need_open_comment":{"type":"integer","description":"是否开启留言：1 开启，0 关闭。","enum":[0,1]},"only_fans_can_comment":{"type":"integer","description":"是否仅粉丝可留言：1 是，0 否。","enum":[0,1]},"show_cover_pic":{"type":"integer","description":"是否显示封面。"},"source_markdown":{"type":"string","description":"与最终审阅一致的正文，图片按回执替换为微信 URL。"},"creative_config":{"type":"object","properties":{"article_category":{"type":"string","description":"文章类别。"},"target_reader":{"type":"string","description":"目标读者。"},"tone":{"type":"string","description":"语气，默认：轻松专业。"},"topic_direction":{"type":"string","description":"选题方向。"},"title_style":{"type":"string","description":"标题风格，默认：干货型。"},"title_max_length":{"type":"integer","description":"标题建议长度，默认 64。"},"writing_style":{"type":"string","description":"写作风格，默认：口语化。"},"paragraph_preference":{"type":"string","description":"段落偏好，默认：短段为主。"},"heading_density":{"type":"string","description":"小标题密度。"},"target_word_count":{"type":"string","description":"目标字数，默认字符串 2500。"},"default_author":{"type":"string","description":"文章署名，可为空，最多 8 个字符。","maxLength":8},"forbidden_title_phrases":{"type":"array","items":{"type":"string"},"description":"标题禁用短语。"},"forbidden_words":{"type":"array","items":{"type":"string"},"description":"正文禁用词。"},"image_style":{"type":"string","description":"配图风格。"},"image_density":{"type":"string","description":"配图密度。"},"cover_aspect":{"type":"string","description":"封面比例，默认 2.35:1。"},"article_image_aspect":{"type":"string","description":"正文图片比例，默认 16:9。"},"business_context":{"type":"string","description":"账号定位、业务资料与品牌背景。"}},"description":"创作配置；未填写的选项按服务默认值补齐。可从 capabilities.default_config 获取。"},"review_report":{"type":"object","description":"article_review 返回的审稿报告；服务端仍会重新校验持久化报告。","additionalProperties":true},"image_plan":{"type":"object","description":"图片规划结果。","additionalProperties":true},"generated_images":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"图片 ID。"},"kind":{"type":"string","description":"cover / content。"},"prompt":{"type":"string","description":"生成提示词。"},"url":{"type":"string","description":"生成图片 URL。"},"wechat_url":{"type":"string","description":"微信图片 URL。"},"media_id":{"type":"string","description":"微信永久素材 ID。"},"account_id":{"type":"string","description":"素材所属公众号 ID。"}}},"description":"已生成及已上传的图片凭证。"},"format_theme":{"type":"string","description":"排版主题。"},"format_font_size":{"type":"string","description":"正文字号。"},"format_background":{"type":"string","description":"背景配置。"},"topic_seed":{"type":"string","description":"选题方向。"},"topic_card":{"type":"object","properties":{"id":{"type":"string","description":"选题 ID。"},"name":{"type":"string","description":"选题名称。"},"type":{"type":"string","description":"选题类型。"},"angle":{"type":"string","description":"切入角度。"},"reader_pain":{"type":"string","description":"读者痛点。"},"titles":{"type":"array","items":{"type":"string"},"description":"候选标题。"},"outline":{"type":"array","items":{"type":"string"},"description":"大纲。"},"summary_options":{"type":"array","items":{"type":"string"},"description":"摘要候选。"},"estimated_words":{"type":"integer","description":"预计字数。"},"material_needs":{"type":"string","description":"所需材料。"}},"description":"article_topics 返回的候选选题。"},"knowledge_notes":{"type":"string","description":"知识资料。"},"research_notes":{"type":"string","description":"研究资料。"},"preference_source_url":{"type":"string","description":"参考文章 URL。"},"preference_title":{"type":"string","description":"参考标题。"},"preference_author":{"type":"string","description":"参考作者。"},"preference_content":{"type":"string","description":"参考正文。"},"preference_analysis_summary":{"type":"string","description":"参考分析摘要。"},"preference_result":{"type":"object","description":"偏好推导结果。","additionalProperties":true},"wechat_cover_url":{"type":"string","description":"微信封面 URL。"},"wechat_image_urls":{"type":"array","items":{"type":"string"},"description":"微信正文图片 URL。"},"wechat_image_account_id":{"type":"string","description":"素材所属账号。"},"workflow_stage":{"type":"string","description":"工作流阶段。"},"content_mode":{"type":"string","description":"内容模式。"}},"required":["title","content_html","thumb_media_id","source_markdown"]},"description":"当前必须恰好包含一篇文章。","minItems":1,"maxItems":1}},"required":["flow_id","idempotency_key","account_id","articles"]},"example":{"flow_id":"flow_example","idempotency_key":"example-article_publish-001","account_id":"account_example","articles":[{"title":"中小企业的 AI 内容工作流","author":"","digest":"从选题到成稿的实践方法。","content_html":"<section>最终审阅后渲染的 HTML</section>","thumb_media_id":"media_example","source_markdown":"最终审阅通过的正文","need_open_comment":1,"only_fans_can_comment":0,"creative_config":{},"generated_images":[]}]}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"article_id":{"type":"string","description":"文章 ID，更新时复用。"},"draft_media_id":{"type":"string","description":"微信草稿素材 ID。"},"revision":{"type":"integer","description":"当前修订号。"},"status":{"type":"string","description":"草稿状态。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"flow_id":"flow_example","article_id":"article_example","draft_media_id":"draft_example","revision":1,"status":"draft"}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/version/save":{"post":{"operationId":"version_save","summary":"保存文章新版本","description":"将一次写作结果保存为新的版本快照，便于后续选择和恢复。\n\nsource_id 必须是当前用户的跟创工作流。最多保留 50 个版本。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。\n\n同一工作流的写操作串行执行。结果未知时保留原 idempotency_key，通过 workflow/info 查看记录，并以原请求恢复。\n\n跟创 API 需要服务端启用相应能力。article_publish 只同步微信草稿箱，正式群发需在公众号后台完成。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"idempotency_key":{"type":"string","description":"本次操作的唯一幂等键，8–128 个字符。同一请求重试保持原键与原请求体；修改内容后使用新键。","minLength":8,"maxLength":128},"source_id":{"type":"string","description":"版本所属工作流 ID，通常与 flow_id 一致。","maxLength":64},"project_id":{"type":"string","description":"项目 ID，可选。","maxLength":64},"snapshot":{"type":"object","properties":{"action":{"type":"string","description":"来源动作，如 draft、rewrite、continue、humanize、title_suggest。"},"label":{"type":"string","description":"版本标签。"},"title":{"type":"string","description":"文章标题。"},"digest":{"type":"string","description":"文章摘要。"},"markdown":{"type":"string","description":"文章 Markdown，不能为空，最多 60000 个字符。","minLength":1,"maxLength":60000},"image_placeholders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"图片 ID。"},"kind":{"type":"string","description":"图片用途，cover 为封面，content 为正文。"},"image_url":{"type":"string","description":"生成图片的 CDN URL。"},"wx_image_url":{"type":"string","description":"上传后的微信图片 URL。"},"placement":{"type":"string","description":"插入位置。"},"caption":{"type":"string","description":"配图说明。"},"prompt":{"type":"string","description":"图片生成提示词。"},"aspect_ratio":{"type":"string","description":"图片比例。"}}},"description":"图片规划与占位信息。"}},"required":["markdown"]}},"required":["flow_id","idempotency_key","source_id","snapshot"]},"example":{"flow_id":"flow_example","idempotency_key":"example-version-save-001","source_id":"flow_example","snapshot":{"action":"draft","label":"初稿","title":"文章标题","markdown":"## 标题\n文章正文……"}}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"source_id":{"type":"string","description":"来源 ID。"},"gen_version":{"type":"integer","description":"新版本号。"},"snapshot":{"type":"object","properties":{"action":{"type":"string","description":"来源动作，如 draft、rewrite、continue、humanize、title_suggest。"},"label":{"type":"string","description":"版本标签。"},"title":{"type":"string","description":"文章标题。"},"digest":{"type":"string","description":"文章摘要。"},"markdown":{"type":"string","description":"文章 Markdown，不能为空，最多 60000 个字符。","minLength":1,"maxLength":60000},"image_placeholders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"图片 ID。"},"kind":{"type":"string","description":"图片用途，cover 为封面，content 为正文。"},"image_url":{"type":"string","description":"生成图片的 CDN URL。"},"wx_image_url":{"type":"string","description":"上传后的微信图片 URL。"},"placement":{"type":"string","description":"插入位置。"},"caption":{"type":"string","description":"配图说明。"},"prompt":{"type":"string","description":"图片生成提示词。"},"aspect_ratio":{"type":"string","description":"图片比例。"}}},"description":"图片规划与占位信息。"}},"required":["markdown"]},"created_at":{"type":"integer","description":"创建时间，Unix 秒。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"source_id":"flow_example","gen_version":1,"snapshot":{"action":"draft","title":"文章标题","markdown":"## 标题\n文章正文……"},"created_at":1793700000}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/version/update":{"post":{"operationId":"version_update","summary":"更新已有版本快照","description":"原地回填图片 URL 等快照信息，保留当前版本号。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。\n\n同一工作流的写操作串行执行。结果未知时保留原 idempotency_key，通过 workflow/info 查看记录，并以原请求恢复。\n\n跟创 API 需要服务端启用相应能力。article_publish 只同步微信草稿箱，正式群发需在公众号后台完成。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"idempotency_key":{"type":"string","description":"本次操作的唯一幂等键，8–128 个字符。同一请求重试保持原键与原请求体；修改内容后使用新键。","minLength":8,"maxLength":128},"source_id":{"type":"string","description":"版本所属工作流 ID。","maxLength":64},"project_id":{"type":"string","description":"项目 ID，可选。","maxLength":64},"gen_version":{"type":"integer","description":"要更新的版本号；省略时使用当前选中的版本。"},"snapshot":{"type":"object","properties":{"action":{"type":"string","description":"来源动作，如 draft、rewrite、continue、humanize、title_suggest。"},"label":{"type":"string","description":"版本标签。"},"title":{"type":"string","description":"文章标题。"},"digest":{"type":"string","description":"文章摘要。"},"markdown":{"type":"string","description":"文章 Markdown，不能为空，最多 60000 个字符。","minLength":1,"maxLength":60000},"image_placeholders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"图片 ID。"},"kind":{"type":"string","description":"图片用途，cover 为封面，content 为正文。"},"image_url":{"type":"string","description":"生成图片的 CDN URL。"},"wx_image_url":{"type":"string","description":"上传后的微信图片 URL。"},"placement":{"type":"string","description":"插入位置。"},"caption":{"type":"string","description":"配图说明。"},"prompt":{"type":"string","description":"图片生成提示词。"},"aspect_ratio":{"type":"string","description":"图片比例。"}}},"description":"图片规划与占位信息。"}},"required":["markdown"]}},"required":["flow_id","idempotency_key","source_id","snapshot"]},"example":{"flow_id":"flow_example","idempotency_key":"example-version-update-001","source_id":"flow_example","gen_version":1,"snapshot":{"action":"draft","title":"文章标题","markdown":"## 标题\n文章正文……","image_placeholders":[]}}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"source_id":{"type":"string","description":"来源 ID。"},"gen_version":{"type":"integer","description":"原版本号。"},"snapshot":{"type":"object","properties":{"action":{"type":"string","description":"来源动作，如 draft、rewrite、continue、humanize、title_suggest。"},"label":{"type":"string","description":"版本标签。"},"title":{"type":"string","description":"文章标题。"},"digest":{"type":"string","description":"文章摘要。"},"markdown":{"type":"string","description":"文章 Markdown，不能为空，最多 60000 个字符。","minLength":1,"maxLength":60000},"image_placeholders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"图片 ID。"},"kind":{"type":"string","description":"图片用途，cover 为封面，content 为正文。"},"image_url":{"type":"string","description":"生成图片的 CDN URL。"},"wx_image_url":{"type":"string","description":"上传后的微信图片 URL。"},"placement":{"type":"string","description":"插入位置。"},"caption":{"type":"string","description":"配图说明。"},"prompt":{"type":"string","description":"图片生成提示词。"},"aspect_ratio":{"type":"string","description":"图片比例。"}}},"description":"图片规划与占位信息。"}},"required":["markdown"]},"created_at":{"type":"integer","description":"版本创建时间。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"source_id":"flow_example","gen_version":1,"snapshot":{"title":"文章标题","markdown":"## 标题\n文章正文……"},"created_at":1793700000}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/workflow/retry":{"post":{"operationId":"workflow_retry","summary":"创建图片重试工作流","description":"从已有工作流复制可复用的产物，创建用于图片重试的新工作流。\n\n返回新 flow_id 后，后续操作使用新工作流。此接口不是对任意失败任务的通用重试。\n\n跟创动作的 JSON 请求体最大 1 MiB；较大的参考文档请使用专用上传接口。\n\n同一工作流的写操作串行执行。结果未知时保留原 idempotency_key，通过 workflow/info 查看记录，并以原请求恢复。\n\n跟创 API 需要服务端启用相应能力。article_publish 只同步微信草稿箱，正式群发需在公众号后台完成。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"当前用户的工作流 ID，由 analysis_article 返回。","example":"flow_example"},"idempotency_key":{"type":"string","description":"本次操作的唯一幂等键，8–128 个字符。同一请求重试保持原键与原请求体；修改内容后使用新键。","minLength":8,"maxLength":128}},"required":["flow_id","idempotency_key"]},"example":{"flow_id":"flow_example","idempotency_key":"example-workflow-retry-001"}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"flow_id":{"type":"string","description":"新工作流 ID。"},"source_flow_id":{"type":"string","description":"原工作流 ID。"}}}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"flow_id":"flow_retry_example","source_flow_id":"flow_example"}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}},"/open/v1/pipeline/wechat_article_follow_create/upload":{"post":{"operationId":"workflow_upload","summary":"上传跟创参考文档","description":"为跟创工作流上传单个参考文档，再将文件信息提交给 analysis_article。\n\n与独立文章分析上传的文件规则一致，单文件最大 50 MiB。此接口需要跟创能力启用。\n\n上传使用 multipart/form-data，不需要 flow_id、idempotency_key 或 max_credits。","tags":["公众号跟创"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","description":"单个文档文件，最大 50 MiB。支持 PDF、Word、PPT、Excel、CSV/TSV、OpenDocument、EPUB、HTML/MHTML 和 OFD。","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"检查 ret：0 为成功，-1 为业务错误。","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"ret":{"type":"integer","enum":[0]},"msg":{"type":"string","description":"响应信息。"},"data":{"type":"object","properties":{"ent":{"type":"object","properties":{"file_url":{"type":"string","description":"可用于分析的文档 URL。"},"file_name":{"type":"string","description":"文件名称。"},"mime_type":{"type":"string","description":"文件 MIME 类型。"},"size":{"type":"integer","description":"文件大小，字节。"}},"required":["file_url","file_name","mime_type","size"]}},"required":["ent"]}},"required":["ret","data"]},{"type":"object","properties":{"ret":{"type":"integer","enum":[-1]},"code":{"type":"integer","description":"业务错误码。"},"msg":{"type":"string","description":"错误说明。"}},"required":["ret","msg"]}]},"example":{"ret":0,"msg":"success","data":{"ent":{"file_url":"https://cdn.example.com/reference.pdf","file_name":"reference.pdf","mime_type":"application/pdf","size":1024}}}}}},"401":{"description":"鉴权失败，请核对 Bearer API Key。"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"在 https://popto.cn/workspace/api 创建 API Key。"}}}}