{"openapi":"3.1.0","info":{"title":"nowm 聚合解析 API","description":"按量付费的短视频/图集聚合解析 API。鉴权：`Authorization: Bearer <API Key>`（或 `X-API-Key` / `?key=`）。金额单位“厘”（1 元 = 1000 厘）。人类可读文档见 /docs。","version":"1.0"},"paths":{"/api/_test/reset-limits":{"post":{"summary":" Reset Limits","operationId":"_reset_limits_api__test_reset_limits_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/parse":{"get":{"summary":"Api Parse","description":"同步解析。可选参数 quality / mode / sub_lang；POST 支持 Idempotency-Key 头防重复扣费","operationId":"api_parse_api_v1_parse_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Api Parse","description":"同步解析。可选参数 quality / mode / sub_lang；POST 支持 Idempotency-Key 头防重复扣费","operationId":"api_parse_api_v1_parse_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/batch":{"post":{"tags":["批量"],"summary":"Api Batch","description":"批量解析：{\"urls\": [...最多 BATCH_MAX 条], \"quality\"/\"mode\"/\"sub_lang\": 可选, \"async\": false}。\n同步模式逐条返回结果（每条独立成功/失败，只对成功的扣费）；async=true 时为每条创建异步任务并返回 task_id（可配合 webhook）","operationId":"api_batch_api_v1_batch_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/quota":{"get":{"summary":"Api Quota","operationId":"api_quota_api_v1_quota_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/usage":{"get":{"summary":"Api Usage","description":"用量统计；by=key 时附加按 Key 汇总，by=platform 时附加按平台汇总","operationId":"api_usage_api_v1_usage_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}},{"name":"by","in":"query","required":false,"schema":{"type":"string","default":"","title":"By"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/errors":{"get":{"tags":["基础"],"summary":"Api Errors","description":"全部错误码：code、HTTP 状态、含义、是否可重试","operationId":"api_errors_api_v1_errors_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/status":{"get":{"tags":["基础"],"summary":"Api Status","description":"公开状态：服务运行时长、解析器健康、近 1 小时/24 小时成功率（无需鉴权，结果缓存 60 秒）","operationId":"api_status_api_v1_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/platforms":{"get":{"summary":"Api Platforms","operationId":"api_platforms_api_v1_platforms_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/pricing":{"get":{"tags":["基础"],"summary":"Api Pricing","description":"产品 × 平台价格（公开）：每个产品的默认单价、单位、是否开放，以及按平台的覆盖价","operationId":"api_pricing_api_v1_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/web/token":{"post":{"summary":"Web Token","description":"首页领取短期解析令牌（绑定 IP + UA，默认 15 分钟 / 30 次），防止脚本直接把网页接口当免费 API 用","operationId":"web_token_api_web_token_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/web/parse":{"post":{"summary":"Web Parse","description":"网页在线解析：游客与登录用户均免费（不扣费），按 IP 限次 + 短期页面令牌 + 同源校验防滥用；程序化调用请用 /api/v1/parse","operationId":"web_parse_api_web_parse_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/web/summary":{"post":{"summary":"Web Summary","description":"网页 AI 摘要：免费，需页面令牌 + 同源 + 按 IP 限次","operationId":"web_summary_api_web_summary_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/summary":{"get":{"tags":["AI 摘要"],"summary":"Api Summary","description":"AI 摘要（当前免费）：传 url（自动取标题/字幕），或直接传 title + text（如转写文案）；输出语言跟随 Accept-Language / ?lang=","operationId":"api_summary_api_v1_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["AI 摘要"],"summary":"Api Summary","description":"AI 摘要（当前免费）：传 url（自动取标题/字幕），或直接传 title + text（如转写文案）；输出语言跟随 Accept-Language / ?lang=","operationId":"api_summary_api_v1_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/pack/{pid}":{"get":{"summary":"Pack Download","description":"流式 ZIP 下载（签名 + 过期，免费，不扣费）","operationId":"pack_download_api_v1_pack__pid__get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"exp","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Exp"}},{"name":"sig","in":"query","required":false,"schema":{"type":"string","default":"","title":"Sig"}},{"name":"sel","in":"query","required":false,"schema":{"type":"string","default":"","title":"Sel"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pack":{"post":{"summary":"Pack Create","description":"用 API Key 为任意（白名单 CDN）链接创建打包链接，免费","operationId":"pack_create_api_v1_pack_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/proxy":{"get":{"summary":"Proxy","description":"防盗链直链转发：需签名 + 未过期 + 域名白名单（每跳重定向都校验白名单与公网 IP）+ 每 IP 限流 + 大小上限","operationId":"proxy_api_proxy_get","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","title":"Url"}},{"name":"exp","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Exp"}},{"name":"sig","in":"query","required":false,"schema":{"type":"string","default":"","title":"Sig"}},{"name":"referer","in":"query","required":false,"schema":{"type":"string","default":"","title":"Referer"}},{"name":"px","in":"query","required":false,"schema":{"type":"string","default":"","title":"Px"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/captcha":{"get":{"tags":["账户"],"summary":"Get Captcha","description":"获取人机验证：mode=local 返回 SVG 图形验证码（id + svg）；mode=turnstile 返回 sitekey；mode=off 不需要","operationId":"get_captcha_api_auth_captcha_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/register":{"post":{"tags":["账户"],"summary":"Register","operationId":"register_api_auth_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/login":{"post":{"tags":["账户"],"summary":"Login","operationId":"login_api_auth_login_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/verify":{"post":{"tags":["账户"],"summary":"Verify Email","operationId":"verify_email_api_auth_verify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/user/resend-verify":{"post":{"tags":["账户"],"summary":"Resend Verify","operationId":"resend_verify_api_user_resend_verify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/forgot":{"post":{"tags":["账户"],"summary":"Forgot","description":"申请重置密码：无论邮箱是否存在都返回成功（防枚举）","operationId":"forgot_api_auth_forgot_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/reset":{"post":{"tags":["账户"],"summary":"Reset Pw","operationId":"reset_pw_api_auth_reset_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/user/me":{"get":{"summary":"Me","operationId":"me_api_user_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/user/keys":{"get":{"summary":"Keys","operationId":"keys_api_user_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Key Create","operationId":"key_create_api_user_keys_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/user/keys/{kid}/{action}":{"post":{"summary":"Key Action","operationId":"key_action_api_user_keys__kid___action__post","parameters":[{"name":"kid","in":"path","required":true,"schema":{"type":"integer","title":"Kid"}},{"name":"action","in":"path","required":true,"schema":{"type":"string","title":"Action"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/user/logs":{"get":{"summary":"My Logs","operationId":"my_logs_api_user_logs_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"","title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/user/ledger":{"get":{"summary":"My Ledger","operationId":"my_ledger_api_user_ledger_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/user/orders":{"get":{"summary":"My Orders","operationId":"my_orders_api_user_orders_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Order","operationId":"create_order_api_user_orders_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/user/orders/{no}/sync":{"post":{"summary":"Sync Order","operationId":"sync_order_api_user_orders__no__sync_post","parameters":[{"name":"no","in":"path","required":true,"schema":{"type":"string","title":"No"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/i18n":{"get":{"tags":["基础"],"summary":"I18N Info","operationId":"i18n_info_api_v1_i18n_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/fx":{"get":{"tags":["基础"],"summary":"Fx Rates","operationId":"fx_rates_api_v1_fx_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/user/settings":{"put":{"tags":["账户"],"summary":"User Settings","description":"low_balance_yuan：余额预警阈值（元，0=关闭）；webhook_url：任务完成回调地址（空=不回调）","operationId":"user_settings_api_user_settings_put","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/user/webhook-secret":{"post":{"tags":["账户"],"summary":"Rotate Whsec","operationId":"rotate_whsec_api_user_webhook_secret_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/user/debug-key":{"get":{"tags":["账户"],"summary":"Debug Key","description":"文档页在线调试自动填充：为当前用户维护一个名为“在线调试”的专用 Key（明文仅以 SECRET_KEY 派生密钥加密保存）","operationId":"debug_key_api_user_debug_key_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/announcements":{"get":{"tags":["公告"],"summary":"Anns Public","operationId":"anns_public_api_announcements_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/user/announcements":{"get":{"tags":["公告"],"summary":"Anns User","operationId":"anns_user_api_user_announcements_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/user/announcements/{aid}/read":{"post":{"tags":["公告"],"summary":"Ann Read","operationId":"ann_read_api_user_announcements__aid__read_post","parameters":[{"name":"aid","in":"path","required":true,"schema":{"type":"string","title":"Aid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks":{"post":{"tags":["异步任务"],"summary":"Task Create","description":"创建异步任务：{\"kind\": \"parse\"|\"transcript\", \"url\": \"...\", \"webhook_url\": \"可选，覆盖账户默认\"}，立即返回 task_id","operationId":"task_create_api_v1_tasks_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"get":{"tags":["异步任务"],"summary":"Task List","operationId":"task_list_api_v1_tasks_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","default":"","title":"Kind"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/transcript":{"post":{"tags":["异步任务"],"summary":"Transcript Create","description":"提取文案（语音转文字），异步：返回 task_id；成功才按音频分钟扣费。url 可以是分享链接或音视频直链","operationId":"transcript_create_api_v1_transcript_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/tasks/{tid}":{"get":{"tags":["异步任务"],"summary":"Task Get","operationId":"task_get_api_v1_tasks__tid__get","parameters":[{"name":"tid","in":"path","required":true,"schema":{"type":"string","title":"Tid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"P Index","operationId":"p_index__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/login":{"get":{"summary":"P Login","operationId":"p_login_login_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/console":{"get":{"summary":"P Console","operationId":"p_console_console_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/docs":{"get":{"summary":"P Docs","operationId":"p_docs_docs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/status":{"get":{"summary":"P Status","operationId":"p_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/platforms":{"get":{"summary":"P Platforms","operationId":"p_platforms_platforms_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/static/{f}":{"get":{"summary":"P Static","operationId":"p_static_static__f__get","parameters":[{"name":"f","in":"path","required":true,"schema":{"type":"string","title":"F"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/static/flags/{f}":{"get":{"summary":"P Flag","operationId":"p_flag_static_flags__f__get","parameters":[{"name":"f","in":"path","required":true,"schema":{"type":"string","title":"F"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/static/i18n/{f}":{"get":{"summary":"P I18N","operationId":"p_i18n_static_i18n__f__get","parameters":[{"name":"f","in":"path","required":true,"schema":{"type":"string","title":"F"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/qr":{"get":{"summary":"Qr","description":"本地生成支付二维码 SVG（不外发第三方）","operationId":"qr_api_qr_get","parameters":[{"name":"data","in":"query","required":true,"schema":{"type":"string","title":"Data"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}