DEVELOPER API · V1

批量清稿接入现有工作流,不用牺牲计费安全

一次提交最多 5 篇,每篇独立返回。失败不扣额度,网络重试不重复扣费;API 只消耗长期有效的付费额度。

POSThttps://prosemend.com/api/v1/rewrite
最多 5 篇

一次批量提交

每篇独立返回状态,单项失败不拖累整批。

失败扣 0 字

按成功结果计费

处理失败或超时的条目不会消耗付费额度。

不重复扣费

幂等安全重试

沿用同一个 Idempotency-Key,网络重试不会产生双重扣费。

QUICK START

三步完成第一次批量调用

01

登录并创建 Key

确认账号有付费额度,再创建只显示一次的 API Key。

02

复制调用示例

替换密钥和正文,给每批请求一个稳定的幂等键。

03

检查首个响应

逐项读取 status,成功取 result,失败按 error.code 处理。

STEP 1

创建 API Key

先确认账号有付费额度再创建密钥。完整密钥只显示一次;服务端只保存不可逆哈希,撤销后立即失效。

正在读取账号密钥…

请求规则

  • 认证:Authorization: Bearer sk_qg_...
  • 幂等:每次必须提供 Idempotency-Key,重试沿用原值。
  • 数量:每批 1—5 篇;所有原文总计不超过 10,000 字。
  • 上下文:单篇参考风格和真实补料分别不超过 3,000 字,整批附加上下文不超过 10,000 字。
  • 计费:API 只使用长期有效的付费额度,按每篇原文字数扣除;失败条目扣 0 字。
  • 数据:提交即表示同意保存原文、补料、参考风格、清稿结果和处理状态,便于历史找回与故障排查。
  • 处理:整批最多 5 篇并行;长文在单篇内顺序分段,整站模型网络并发不超过 5。
字段必填说明
items1—5 个稿件对象
items[].clientReference调用方唯一标识,最多 64 字符;默认使用数组下标
items[].text需要清稿的原文;整批合计最多 10,000 字
items[].scenario自动判断、种草推荐、经验分享、观点长文、职场表达
items[].platform通用、公众号、小红书、知乎、职场、微博或抖音
items[].referenceStyle临时参考的作者风格文本;单篇最多 3,000 字
items[].supplementalDetails用户提供的真实经历、数字或限制条件;单篇最多 3,000 字

返回结果

HTTP 200 表示批次完成,不代表每篇都成功。请逐项检查 items[].status。

JSON 响应

{
  "ok": true,
  "batchId": "cm...",
  "status": "completed",
  "totalInputChars": 1680,
  "consumedChars": 920,
  "items": [
    {"clientReference":"article-001","status":"succeeded","consumedChars":920,"result":{"rewrittenText":"..."}},
    {"clientReference":"article-002","status":"failed","consumedChars":0,"error":{"code":"processing_timeout","message":"处理超时,本项未扣额度"}}
  ]
}

常见错误码

错误码HTTP说明
invalid_api_key401密钥无效或已经撤销
paid_quota_required402账号没有可供 API 消耗的付费额度
insufficient_quota402余额不足以覆盖整批最大消耗
idempotency_conflict409同一幂等键提交了不同请求体
batch_processing409原批次仍在处理
batch_too_large400整批原文超过 10,000 字
invalid_platform400发布平台不在产品支持列表内
batch_context_too_large400整批参考风格和真实补料超过 10,000 字
request_too_large413请求体超过 128KB
batch_recovery_failed500异常批次无法自动恢复且系统已阻止重复扣费
processing_timeout条目级该篇超时且未扣额度

复制即可开始

替换 API Key 和正文后即可运行;生产重试时沿用原来的 Idempotency-Key。

cURL

curl --request POST 'https://prosemend.com/api/v1/rewrite' \
  --header 'Authorization: Bearer sk_qg_你的密钥' \
  --header 'Idempotency-Key: batch-20260712-001' \
  --header 'Content-Type: application/json' \
  --data '{
    "items": [
      {"clientReference":"article-001","text":"需要清稿的第一篇原文","scenario":"自动判断"},
      {"clientReference":"article-002","text":"需要清稿的第二篇原文","platform":"公众号"}
    ]
  }'

Python

import requests

response = requests.post(
    "https://prosemend.com/api/v1/rewrite",
    headers={
        "Authorization": "Bearer sk_qg_你的密钥",
        "Idempotency-Key": "batch-20260712-001",
    },
    json={"items": [
        {"clientReference": "article-001", "text": "第一篇原文"},
        {"clientReference": "article-002", "text": "第二篇原文", "platform": "公众号"},
    ]},
    timeout=180,
)
response.raise_for_status()
print(response.json())

Node.js

const response = await fetch("https://prosemend.com/api/v1/rewrite", {
  method: "POST",
  headers: {
    "Authorization": "Bearer sk_qg_你的密钥",
    "Idempotency-Key": "batch-20260712-001",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ items: [
    { clientReference: "article-001", text: "第一篇原文" },
    { clientReference: "article-002", text: "第二篇原文", platform: "公众号" },
  ]}),
});
console.log(await response.json());