选题库

修改选题

改一条既有选题,零对外副作用。省略的字段一律保留原值,传 null 才是清空(image / plannedAt)。editor 角色只能改自己创建的选题。plannedAt 在选题界面既不展示也不可编辑,要把导入 / 新建时写进去的值改回来,只能经本端点。

PATCH/api/v1/ideas/{ideaId}
ideas:write写档限流Idempotency-Key 可选

鉴权与护栏

  • 请求头 Authorization: Bearer <长期凭证>,凭证在设置页「接入外部系统 → 长期凭证」签发,见 鉴权与权限。
  • 凭证需带 scope ideas:write;签发者在工作区里的角色也要允许该动作。
  • 限流:写档,每分钟 10 次(按凭证计),超出回 429 并带 Retry-After。
  • 幂等:带 Idempotency-Key 就按它去重,不带也能调。

路径参数

ideaIdstring必填

选题 id。

请求体(application/json)

contentstring可选

选题内容;省略 = 不改,给了不能是空白。

groupIdstring可选

改投到别的分组;分组须属于本工作区。

tagsobject[] { label, color? }可选

话题标签,最多 6 个;给了就整组替换,传空数组 = 清空。转草稿时以 #话题 写进正文开头,不要用来记录进度。

imagestring (URL)可选

配图 URL;传 null = 去掉配图。

plannedAtdatetime (ISO 8601)可选

转草稿时带给草稿的定时发布时间(之后可在创作页改);本身不触发发布,选题界面也不展示。传 null = 清空。

targetAccountIdsstring[]可选

预选的目标账号;给了就整组替换,传空数组 = 清空。

clientRequestIdstring可选

幂等键(8–128 chars of [A-Za-z0-9_.:-]);推荐放在 Idempotency-Key 请求头,头与 body 都给时以头为准。

响应

成功返回 HTTP 200,信封为 { data, meta };右侧(窄屏在本页末尾)给出了各状态码的示例。所有错误都是 { error: { code, message, params }, meta },按机器码处理而不是按 message 匹配,码表见 错误码。

状态码可能的错误码
400invalid_input
401unauthenticated
402plan_limit
403forbidden / workspace_not_found
404not_found
409no_account / needs_reauth / replay
429rate_limited
500internal
502platform_error
503external_writes_off

示例

请求
curl -X PATCH "https://popkit.loxily.com/api/v1/ideas/<ideaId>" \
  -H "Authorization: Bearer popkit_it_••••••••" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: acme-2026-09-21-001" \
  -d '{
  "plannedAt": null,
  "tags": [
    {
      "label": "教程",
      "color": "blue"
    }
  ]
}'
响应
成功
{
  "data": {
    "id": "ide_01J8ZS…",
    "groupId": "idg_01J8…",
    "deepLink": "https://popkit.loxily.com/planning?idea=ide_01J8ZS…"
  },
  "meta": {
    "requestId": "6a1d0c9e-2b7f-4e3a-8c5d-1f0e9b8a7c7a"
  }
}