GET /v1/campaigns
分发计划与分发配额 分发计划(缺省不含已归档; includeArchived=true 才含),以及当前档位的分发上限与已用量。免费。
查询参数 字段 类型 说明 productId string 只看该产品的计划。 includeArchived boolean
响应200 字段 类型 说明 success enum 可选值:true data CampaignList └ campaignsarray<Campaign> └ campaignIdstring └ productIdstring └ namestring └ statusenum completed 是算出来的:所有任务都已上线、已核实、失败或跳过。 可选值:activecompletedarchived └ quotainteger 建计划时选了多少个渠道。 └ startsAtstring └ endsAt可为空 string └ countsobject └ totalinteger └ submittedinteger submitted + published + verified。 └ liveinteger published + verified。 └ blockedinteger └ doneinteger └ byStatusobject └ createdAtstring └ quotaDistributionQuota 当前档位的分发上限与已用量。上限为 null 表示不限。 └ planstring └ limitsobject └ channels可为空 integer 单个产品累计可投递的不同渠道数。 └ tasksPerMonth可为空 integer 每个自然月(UTC)可新建的任务数,各产品合计。 └ activeCampaigns可为空 integer 同时进行中的计划数。 └ usageobject └ activeCampaignsinteger └ tasksThisMonthinteger └ channels可为空 integer 只在请求指定了产品时有值。
示例 bash 复制
curl "https://www.querywin.com/api/v1/campaigns" \
-H "Authorization: Bearer $QUERYWIN_API_KEY"json — 响应 复制
{
"success": true,
"data": {
"campaigns": [
{
"campaignId": "string",
"productId": "string",
"name": "string",
"status": "active",
"quota": 0,
"startsAt": "2026-09-01T00:00:00.000Z",
"endsAt": "2026-09-01T00:00:00.000Z",
"counts": {
"total": 0,
"submitted": 0,
"live": 0,
"blocked": 0,
"done": 0,
"byStatus": null
},
"createdAt": "2026-09-01T00:00:00.000Z"
}
],
"quota": {
"plan": "string",
"limits": {
"channels": 0,
"tasksPerMonth": 0,
"activeCampaigns": 0
},
"usage": {
"activeCampaigns": 0,
"tasksThisMonth": 0,
"channels": 0
}
}
}
}POST /v1/campaigns
按明确的渠道清单建计划 每个渠道 id 一条任务,投递素材当场按产品档案备好,零成本。请传实际选定 的渠道 —— 计划是「决定投哪里」的记录,🚫 不是由服务端展开的筛选条件。
该产品已有进行中或已投递任务的渠道会被剔除,列在 skipped 里并给出理由( already_open、 already_submitted、 not_found、 broken、 inactive、 other_product)。一条都不剩时返回 HTTP 200, ok: false 且 failure: "no_valid_targets"。超出当前档位的分发配额是拒绝:**409 quota_exceeded**,响应体带 dimension、 limit、 used、 requested —— 什么都不会建,🚫 不做「能建几条建几条」。
请求体 字段 类型 说明 productId 必填 string name 必填 string targetIds 必填 array<string> 来自 GET /v1/channels 的渠道 id。只传实际选定的渠道。 endsAt string 可选期限,显示在工作台里。到期不会自动关闭任何东西。
响应200 字段 类型 说明 success enum 可选值:true data CreateCampaignOutcome └ okboolean └ failureenum ok 为 false 时出现。 可选值:no_valid_targets └ campaignCampaign └ campaignIdstring └ productIdstring └ namestring └ statusenum completed 是算出来的:所有任务都已上线、已核实、失败或跳过。 可选值:activecompletedarchived └ quotainteger 建计划时选了多少个渠道。 └ startsAtstring └ endsAt可为空 string └ countsobject └ totalinteger └ submittedinteger submitted + published + verified。 └ liveinteger published + verified。 └ blockedinteger └ doneinteger └ byStatusobject └ createdAtstring └ tasksarray<Task> └ taskIdstring └ campaignIdstring └ productIdstring └ statusenum published 是你 回写的。 verified 是 QueryWin 在上线页面上看到的 (目录与 AI 工具榜看链接,其余看提及)。对外转述时请分开说。 可选值:plannedpreparedin_progressblockedsubmittedpublishedverifiedfailedskipped └ blockedReason可为空 enum 可选值:logincaptchapaymentmissing_materialothernull └ missingarray<string> 档案缺少的必填素材。在工作台里补齐档案后,任务会自行重新准备。 └ listingUrl可为空 string └ markedByenum 最近一次状态变化是谁做的:人(或本接口)、浏览器扩展、或 QueryWin 自身。 可选值:userdevicesystem └ hasGeneratedboolean 已有为该渠道改写的版本。 └ reviewDueAt可为空 string 提交后该回头查看的时间(submittedAt + 该渠道的审核天数)。 └ submittedAt可为空 string └ publishedAt可为空 string └ verifiedAt可为空 string └ nextarray<string> 从当前状态出发,可通过 POST /v1/tasks/{id}/status 设置的状态。 └ targetobject └ targetIdstring └ namestring └ urlstring └ submitUrlstring └ kindstring └ sourceenum 可选值:seeduserrivals └ languagestring └ requiresBacklinkboolean └ check可为空 object QueryWin 在条目上线后做的回查。任务上线前为 null。 └ kindenum 查什么:指向产品的链接(目录、AI 工具榜)或品牌提及(其余类型)。 可选值:link_livemention_seen └ state可为空 enum confirmed = 已看到。 unconfirmed = 一轮回查都没找到(状态不变;请核对地址)。 lost = 曾经有、现在没了(任务已置为失败)。 可选值:confirmedunconfirmedlostnull └ checkedAt可为空 string └ dueAt可为空 string └ updatedAtstring └ skippedarray<object> └ targetIdstring └ reasonenum other_product = 属于别的产品的 AI 引用来源候选; inactive = 已停用或被忽略的渠道。 可选值:not_foundbrokeninactiveother_productalready_openalready_submitted
可能的错误 400 product_id_required、 name_required / name_too_long(80 字)、 target_ids_required / too_many_targets(100 条)或 invalid_date
401 鉴权失败
403 missing_scope_publish —— 这把密钥没有 publish 权限
404 product_not_found —— 该 productId 不属于这个账号
409 quota_exceeded —— 响应体带 dimension( active_campaigns / tasks_per_month / channels)、 limit、 used、 requested
示例 bash 复制
curl -X POST https://www.querywin.com/api/v1/campaigns \
-H "Authorization: Bearer $QUERYWIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"productId": "clx1prod000",
"name": "Directories, September",
"targetIds": [
"clx1tgt001",
"clx1tgt002"
]
}'json — 响应 复制
{
"success": true,
"data": {
"ok": true,
"failure": "no_valid_targets",
"campaign": {
"campaignId": "string",
"productId": "string",
"name": "string",
"status": "active",
"quota": 0,
"startsAt": "2026-09-01T00:00:00.000Z",
"endsAt": "2026-09-01T00:00:00.000Z",
"counts": {
"total": 0,
"submitted": 0,
"live": 0,
"blocked": 0,
"done": 0,
"byStatus": null
},
"createdAt": "2026-09-01T00:00:00.000Z"
},
"tasks": [
{
"taskId": "string",
"campaignId": "string",
"productId": "string",
"status": "planned",
"blockedReason": "login",
"missing": [
"string"
],
"listingUrl": "string",
"markedBy": "user",
"hasGenerated": true,
"reviewDueAt": "2026-09-01T00:00:00.000Z",
"submittedAt": "2026-09-01T00:00:00.000Z",
"publishedAt": "2026-09-01T00:00:00.000Z",
"verifiedAt": "2026-09-01T00:00:00.000Z",
"next": [
"string"
],
"target": {
"targetId": "string",
"name": "string",
"url": "string",
"submitUrl": "string",
"kind": "string",
"source": "seed",
"language": "string",
"requiresBacklink": true
},
"check": {
"kind": "link_live",
"state": "confirmed",
"checkedAt": "2026-09-01T00:00:00.000Z",
"dueAt": "2026-09-01T00:00:00.000Z"
},
"updatedAt": "2026-09-01T00:00:00.000Z"
}
],
"skipped": [
{
"targetId": "string",
"reason": "not_found"
}
]
}
}GET /v1/campaigns/{id}
一条计划及其任务 响应200 字段 类型 说明 success enum 可选值:true data CampaignDetail └ campaignCampaign └ campaignIdstring └ productIdstring └ namestring └ statusenum completed 是算出来的:所有任务都已上线、已核实、失败或跳过。 可选值:activecompletedarchived └ quotainteger 建计划时选了多少个渠道。 └ startsAtstring └ endsAt可为空 string └ countsobject └ totalinteger └ submittedinteger submitted + published + verified。 └ liveinteger published + verified。 └ blockedinteger └ doneinteger └ byStatusobject └ createdAtstring └ tasksarray<Task> └ taskIdstring └ campaignIdstring └ productIdstring └ statusenum published 是你 回写的。 verified 是 QueryWin 在上线页面上看到的 (目录与 AI 工具榜看链接,其余看提及)。对外转述时请分开说。 可选值:plannedpreparedin_progressblockedsubmittedpublishedverifiedfailedskipped └ blockedReason可为空 enum 可选值:logincaptchapaymentmissing_materialothernull └ missingarray<string> 档案缺少的必填素材。在工作台里补齐档案后,任务会自行重新准备。 └ listingUrl可为空 string └ markedByenum 最近一次状态变化是谁做的:人(或本接口)、浏览器扩展、或 QueryWin 自身。 可选值:userdevicesystem └ hasGeneratedboolean 已有为该渠道改写的版本。 └ reviewDueAt可为空 string 提交后该回头查看的时间(submittedAt + 该渠道的审核天数)。 └ submittedAt可为空 string └ publishedAt可为空 string └ verifiedAt可为空 string └ nextarray<string> 从当前状态出发,可通过 POST /v1/tasks/{id}/status 设置的状态。 └ targetobject └ targetIdstring └ namestring └ urlstring └ submitUrlstring └ kindstring └ sourceenum 可选值:seeduserrivals └ languagestring └ requiresBacklinkboolean └ check可为空 object QueryWin 在条目上线后做的回查。任务上线前为 null。 └ kindenum 查什么:指向产品的链接(目录、AI 工具榜)或品牌提及(其余类型)。 可选值:link_livemention_seen └ state可为空 enum confirmed = 已看到。 unconfirmed = 一轮回查都没找到(状态不变;请核对地址)。 lost = 曾经有、现在没了(任务已置为失败)。 可选值:confirmedunconfirmedlostnull └ checkedAt可为空 string └ dueAt可为空 string └ updatedAtstring
可能的错误 401 鉴权失败
404 campaign_not_found
示例 bash 复制
curl "https://www.querywin.com/api/v1/campaigns/{id}" \
-H "Authorization: Bearer $QUERYWIN_API_KEY"json — 响应 复制
{
"success": true,
"data": {
"campaign": {
"campaignId": "string",
"productId": "string",
"name": "string",
"status": "active",
"quota": 0,
"startsAt": "2026-09-01T00:00:00.000Z",
"endsAt": "2026-09-01T00:00:00.000Z",
"counts": {
"total": 0,
"submitted": 0,
"live": 0,
"blocked": 0,
"done": 0,
"byStatus": null
},
"createdAt": "2026-09-01T00:00:00.000Z"
},
"tasks": [
{
"taskId": "string",
"campaignId": "string",
"productId": "string",
"status": "planned",
"blockedReason": "login",
"missing": [
"string"
],
"listingUrl": "string",
"markedBy": "user",
"hasGenerated": true,
"reviewDueAt": "2026-09-01T00:00:00.000Z",
"submittedAt": "2026-09-01T00:00:00.000Z",
"publishedAt": "2026-09-01T00:00:00.000Z",
"verifiedAt": "2026-09-01T00:00:00.000Z",
"next": [
"string"
],
"target": {
"targetId": "string",
"name": "string",
"url": "string",
"submitUrl": "string",
"kind": "string",
"source": "seed",
"language": "string",
"requiresBacklink": true
},
"check": {
"kind": "link_live",
"state": "confirmed",
"checkedAt": "2026-09-01T00:00:00.000Z",
"dueAt": "2026-09-01T00:00:00.000Z"
},
"updatedAt": "2026-09-01T00:00:00.000Z"
}
]
}
}GET /v1/channels
可投递的入口,按匹配度排序 内置渠道(目录、启动平台、AI 工具榜、社区、内容平台)、你自行添加的条目,以及 —— 传了 productId 时 —— AI 答案在该产品的搜索词上引用过的站点( source: "rivals")。带 productId 时按相关性排序,每条渠道带 taskStatus(该产品在此已有任务时非空)。免费。
** citedByAi 表示 AI 答案在你的搜索词上引用过该站,🚫 不表示该站会收录你的产品** —— 去争取被提及,正是任务要做的事。
查询参数 字段 类型 说明 productId string 按该产品的匹配度排序、附上 taskStatus,并包含它的 AI 引用来源候选。 kind string 渠道类型。 可选值:directorylaunchai_directorycommunitycontentother source string seed = 内置渠道, user = 自行添加, rivals = 该产品的 AI 引用来源。 可选值:seeduserrivals pricing string 投递费用。 可选值:freeconditionalpaidunknown q string 按名称、域名与主题搜索。 hideSubmitted boolean 隐藏该产品已有进行中或已投递任务的渠道。需要 productId。 page integer 缺省 1。 pageSize integer 缺省 30。
响应200 字段 类型 说明 success enum 可选值:true data ChannelList └ productId可为空 string └ itemsarray<Channel> └ targetIdstring 作为 targetIds 传给 POST /v1/campaigns。 └ namestring └ urlstring └ submitUrlstring 提交表单或发帖页;对 AI 引用来源,是被 AI 答案引用最多的那一页。 └ kindenum 可选值:directorylaunchai_directorycommunitycontentother └ sourceenum seed = 内置渠道, user = 自行添加, rivals = AI 答案在该产品的搜索词上引用过的站点。 可选值:seeduserrivals └ pricingTypeenum 可选值:freeconditionalpaidunknown └ priceNote可为空 string └ languagestring en、 zh、 multi,或 AI 引用来源按搜索词判出的语言代码。 └ topicsarray<string> └ requiresAccountboolean └ requiresBacklinkboolean └ reviewDays可为空 integer 通常的审核天数。任务会在此之后提醒你回头查看。 └ hasFormSpecboolean 该渠道的表单字段已登记,素材按它的字数上限裁。 └ relevance可为空 integer 与请求所指产品的匹配分。只用于排序。 └ taskStatus可为空 string 该产品在此渠道进行中或已完成的任务状态; null = 尚无。 └ citedByAi可为空 object 只有 source: "rivals" 有。AI 答案在所列搜索词上引用过该站。这🚫 不是该站会收录你的产品的承诺 —— 去争取正是任务要做的事。 └ queriesinteger 在多少条不同的搜索词上被引用。 └ samplesinteger 多少次 AI 答案采样引用了它。 └ searchesarray<string> └ pagesarray<string> 被引用的页面,引用最多的在前。较早的采样只记录了域名,此时为空。 └ totalinteger └ pageinteger └ pageSizeinteger
示例 bash 复制
curl "https://www.querywin.com/api/v1/channels" \
-H "Authorization: Bearer $QUERYWIN_API_KEY"json — 响应 复制
{
"success": true,
"data": {
"productId": "string",
"items": [
{
"targetId": "string",
"name": "string",
"url": "string",
"submitUrl": "string",
"kind": "directory",
"source": "seed",
"pricingType": "free",
"priceNote": "string",
"language": "string",
"topics": [
"string"
],
"requiresAccount": true,
"requiresBacklink": true,
"reviewDays": 0,
"hasFormSpec": true,
"relevance": 0,
"taskStatus": "string",
"citedByAi": {
"queries": 0,
"samples": 0,
"searches": [],
"pages": []
}
}
],
"total": 0,
"page": 0,
"pageSize": 0
}
}GET /v1/products
产品清单与各自的档案完整度 分发链从这里开始;其余分发接口都要带 productId。 completeness 与 missing 来自工作台里的产品档案:档案里空着的格,投递素材里就是空的;必填格缺失时任务会停在 blocked / missing_material,直到档案补齐。免费。
响应200 字段 类型 说明 success enum 可选值:true data ProductList └ productsarray<Product> └ productIdstring └ namestring └ urlstring └ domainstring └ primaryLanguageenum 可选值:enzh └ topicsarray<string> └ completenessinteger 档案完整度 0–100。在工作台里填写。 └ missingarray<string> 档案里空着的格。每一格都是所有投递素材里的空缺。 └ sitesarray<object> └ siteIdstring └ domainstring └ syncedThrough可为空 string
示例 bash 复制
curl "https://www.querywin.com/api/v1/products" \
-H "Authorization: Bearer $QUERYWIN_API_KEY"json — 响应 复制
{
"success": true,
"data": {
"products": [
{
"productId": "string",
"name": "string",
"url": "string",
"domain": "string",
"primaryLanguage": "en",
"topics": [
"string"
],
"completeness": 0,
"missing": [
"string"
],
"sites": [
{
"siteId": null,
"domain": null,
"syncedThrough": null
}
]
}
]
}
}GET /v1/tasks
跨计划的任务流水 投递记录,按最近更新排。可按产品、计划或逗号分隔的状态列表筛选。 byStatus 统计的是状态筛选之前 范围内的全部任务。免费。
查询参数 字段 类型 说明 productId string 只看该产品的任务。 campaignId string status string 逗号分隔,如 prepared,in_progress。 page integer 缺省 1。 pageSize integer 缺省 30。
响应200 字段 类型 说明 success enum 可选值:true data TaskList └ itemsarray<Task> └ taskIdstring └ campaignIdstring └ productIdstring └ statusenum published 是你 回写的。 verified 是 QueryWin 在上线页面上看到的 (目录与 AI 工具榜看链接,其余看提及)。对外转述时请分开说。 可选值:plannedpreparedin_progressblockedsubmittedpublishedverifiedfailedskipped └ blockedReason可为空 enum 可选值:logincaptchapaymentmissing_materialothernull └ missingarray<string> 档案缺少的必填素材。在工作台里补齐档案后,任务会自行重新准备。 └ listingUrl可为空 string └ markedByenum 最近一次状态变化是谁做的:人(或本接口)、浏览器扩展、或 QueryWin 自身。 可选值:userdevicesystem └ hasGeneratedboolean 已有为该渠道改写的版本。 └ reviewDueAt可为空 string 提交后该回头查看的时间(submittedAt + 该渠道的审核天数)。 └ submittedAt可为空 string └ publishedAt可为空 string └ verifiedAt可为空 string └ nextarray<string> 从当前状态出发,可通过 POST /v1/tasks/{id}/status 设置的状态。 └ targetobject └ targetIdstring └ namestring └ urlstring └ submitUrlstring └ kindstring └ sourceenum 可选值:seeduserrivals └ languagestring └ requiresBacklinkboolean └ check可为空 object QueryWin 在条目上线后做的回查。任务上线前为 null。 └ kindenum 查什么:指向产品的链接(目录、AI 工具榜)或品牌提及(其余类型)。 可选值:link_livemention_seen └ state可为空 enum confirmed = 已看到。 unconfirmed = 一轮回查都没找到(状态不变;请核对地址)。 lost = 曾经有、现在没了(任务已置为失败)。 可选值:confirmedunconfirmedlostnull └ checkedAt可为空 string └ dueAt可为空 string └ updatedAtstring └ totalinteger └ pageinteger └ pageSizeinteger └ byStatusobject
示例 bash 复制
curl "https://www.querywin.com/api/v1/tasks" \
-H "Authorization: Bearer $QUERYWIN_API_KEY"json — 响应 复制
{
"success": true,
"data": {
"items": [
{
"taskId": "string",
"campaignId": "string",
"productId": "string",
"status": "planned",
"blockedReason": "login",
"missing": [
"string"
],
"listingUrl": "string",
"markedBy": "user",
"hasGenerated": true,
"reviewDueAt": "2026-09-01T00:00:00.000Z",
"submittedAt": "2026-09-01T00:00:00.000Z",
"publishedAt": "2026-09-01T00:00:00.000Z",
"verifiedAt": "2026-09-01T00:00:00.000Z",
"next": [
"string"
],
"target": {
"targetId": "string",
"name": "string",
"url": "string",
"submitUrl": "string",
"kind": "string",
"source": "seed",
"language": "string",
"requiresBacklink": true
},
"check": {
"kind": "link_live",
"state": "confirmed",
"checkedAt": "2026-09-01T00:00:00.000Z",
"dueAt": "2026-09-01T00:00:00.000Z"
},
"updatedAt": "2026-09-01T00:00:00.000Z"
}
],
"total": 0,
"page": 0,
"pageSize": 0,
"byStatus": null
}
}GET /v1/tasks/{id}
一条任务及其投递素材 该渠道表单要求的每一格,按渠道的字数上限从产品档案裁出( source: "profile"),加上已有的渠道改写版本( source: "ai")与在工作台里定稿的修改( source: "override")。 source: "none" 表示档案里没有这一格 —— 🚫 不要自行编造。🚫 不会触发改写,不消耗任何积分。
响应200 字段 类型 说明 success enum 可选值:true data TaskDetailResult └ taskTaskDetail
可能的错误 401 鉴权失败
404 task_not_found
示例 bash 复制
curl "https://www.querywin.com/api/v1/tasks/{id}" \
-H "Authorization: Bearer $QUERYWIN_API_KEY"json — 响应 复制
{
"success": true,
"data": {
"task": null
}
}POST /v1/tasks/{id}/materials
为该渠道改写素材(扣积分) 一次 AI 改写,把档案改成适合这个渠道的说法:更紧凑的目录描述、创始人首评、社区帖、给编辑的投稿信,或 —— 对 AI 引用来源 —— 投稿信加一段可供对方页面直接采用的补充段落。同步返回,几秒钟。只依据档案中的事实;任何一段出现档案之外的链接就整段舍弃、不收费。
输入不变时返回上一版且不重复收费 ( cached: true); force: true 强制重写,照价收费。 GET /v1/tasks/{id} 里从档案裁出的素材通常已够投目录;渠道需要另一种语气(社区、投稿信)时再改写。
产物一段都没通过校验时返回 HTTP 200, ok: false 且 failure: "engine_failed"。积分不足才是真正的 402。
请求体 字段 类型 说明 confirmSpend 必填 integer 授权上限(积分),语义与大纲 / 正文相同。单价从 GET /v1/usage 的 materials.pricePerTask 读。免费额度还在时同样必填。 (min 0) force boolean 即使上一版之后没有任何变化也重写。照价收费。
响应200 字段 类型 说明 success enum 可选值:true data WriteMaterialsOutcome └ okboolean └ failureenum ok 为 false 时出现。不收费。 可选值:engine_failedengine_unavailable └ cachedboolean 输入未变;返回的是上一版,未收费。 └ freeUsedboolean └ creditsSpentinteger └ taskTaskDetail
可能的错误 400 confirm_spend_required 或 confirm_spend_too_low(响应体里带当前 price)
401 鉴权失败
402 insufficient_credits —— 响应体带 requiredCredits、 currentBalance、 shortfall
403 missing_scope_spend —— 这把密钥没有 spend 权限
404 task_not_found
429 rate_limited 或 daily_limit_reached(响应体带 resetAt)
示例 bash 复制
curl -X POST https://www.querywin.com/api/v1/tasks/{id}/materials \
-H "Authorization: Bearer $QUERYWIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"confirmSpend": 10
}'json — 响应 复制
{
"success": true,
"data": {
"ok": true,
"failure": "engine_failed",
"cached": true,
"freeUsed": true,
"creditsSpent": 0,
"task": null
}
}POST /v1/tasks/{id}/status
回写投递结果 记录你用自己的账号投递之后发生的事。QueryWin 从不代你向任何站点投递。表单提交后置为 submitted;条目上线后置为 published 并带上线地址 (条目或帖子本身,🚫 不是站点首页);QueryWin 会在约 72 小时后回查该页面是否出现指向产品的链接(目录、AI 工具榜)或品牌提及(其余类型),并自行置为 verified —— 你不能设置它。
blocked 表示「需要人处理」:请带 reason( login、 captcha、 payment、 missing_material、 other)。 failed / skipped 关闭任务; prepared 放回待投。状态机不允许的转换返回 **409 transition_not_allowed**;任务的 next 字段列出当前状态能推到哪些状态。
请求体 字段 类型 说明 status 必填 enum verified 不能设置;QueryWin 回查条目后自行设置。 可选值:preparedin_progressblockedsubmittedpublishedfailedskipped listingUrl string published 必填:上线的条目或帖子本身,🚫 不是站点首页。仅支持 http/https。已知地址时也可随 submitted 一并传。 note string reason enum blocked 必填。 可选值:logincaptchapaymentmissing_materialother
响应200 字段 类型 说明 success enum 可选值:true data TaskDetailResult └ taskTaskDetail
可能的错误 400 invalid_status、 listing_url_required( published 必须带 listingUrl)、 invalid_listing_url 或 reason_required( blocked 必须带 reason)
401 鉴权失败
403 missing_scope_publish —— 这把密钥没有 publish 权限
404 task_not_found
409 transition_not_allowed —— 先读任务, next 列出允许的状态
示例 bash 复制
curl -X POST https://www.querywin.com/api/v1/tasks/{id}/status \
-H "Authorization: Bearer $QUERYWIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "published",
"listingUrl": "https://example-directory.com/tools/your-product"
}'json — 响应 复制
{
"success": true,
"data": {
"task": null
}
}