VECTRA / API REFERENCE

API 开发文档

从第一次请求,到稳定上线。与当前 v1 接口保持一致的接入说明。

01 / QUICKSTART

快速开始

使用网站账号开通 API 服务并创建密钥。API 采用异步任务协议:提交图片 → 查询状态 → 下载 SVG。收到 202 仅表示已接收,不代表转换完成。

01 POST /tasks保存 taskId→02 GET /tasks/{id}等待 succeeded→03 GET /…/result保存 SVG 文件
BASE URLhttps://svgo-api.com/openapi/v1Bearer · v1

准备环境变量

Shell · 接入配置
export API_BASE_URL='https://svgo-api.com/openapi/v1'
export API_KEY='YOUR_API_KEY'
# 一个业务任务固定一个键;断线重试仍用原键。下一张新图片换新键。
export IDEMPOTENCY_KEY='your-business-request-0001'

示例中的密钥是占位符。每个新业务任务生成唯一幂等键,原任务重试保留原键及原图片。先用 GET /capabilities 检查 acceptsTasks,未开放时不要提交图片。

提交并保存任务

cURL · 创建任务
curl --fail-with-body -sS "$API_BASE_URL/tasks" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: $IDEMPOTENCY_KEY" \
  -F 'image=@image.png' \
  -o task.json

# 需要 jq;请保存 task.json 中的 taskId。
TASK_ID=$(jq -r '.taskId // empty' task.json)
cat task.json
示例响应 · 202 application/json
{
  "taskId": "6dd39862-bec8-44e4-b72e-50a40618ba6e",
  "status": "queued",
  "errorCode": null,
  "createdAt": "2026-10-28T02:00:00.000Z",
  "finishedAt": null,
  "expiresAt": null,
  "billing": {
    "source": "package",
    "state": "reserved",
    "reservedCents": 0,
    "chargedCents": null,
    "successOrdinal": null
  }
}

查询并领取结果

cURL · 查询与下载
curl --fail-with-body -sS "$API_BASE_URL/tasks/$TASK_ID" \
  -H "Authorization: Bearer $API_KEY"

# 仅在 status=succeeded 后下载,以下响应是文件,不是 JSON。
curl --fail -sS "$API_BASE_URL/tasks/$TASK_ID/result" \
  -H "Authorization: Bearer $API_KEY" \
  -o result.svg

建议间隔 2–3 秒查询。只有 succeeded 可以下载;failed、cancelled、expired 为不成功的终态。

02 / AUTHENTICATION

鉴权与安全

全部 /openapi/v1 接口都需要 Authorization: Bearer YOUR_API_KEY。网站 Cookie、会员状态和 URL 查询参数不能替代 API Key。生产请求使用 HTTPS。

Scope允许操作
tasks:write提交、申请取消任务
tasks:read查询任务、下载结果
account:read查看本账户额度
usage:read查看本账户成功结算记录

查询能力只要求有效 Key。控制台创建的密钥当前包含上述四种权限;细分权限可由管理端配置。完整 Key 只在创建时展示一次,最多保留 20 把有效 Key。

  • 密钥仅保存在自己的服务器或密钥管理系统,不嵌入网页、插件、Git 仓库或日志。
  • 泄露后立即撤销旧 Key,创建替代 Key 并更新服务端配置;撤销不会撤销已提交任务。
  • 同账户多把 Key 共用额度、历史次数、队列和双并发,可查询同账户任务。
  • 访问其他账户的任务统一返回 404。不要尝试用账户 ID 参数切换任务归属。
03 / FILE CONTRACT

输入与输出

上传方式multipart/form-data,仅一个名为 image 的二进制文件字段
URL 输入application/json 请求体:{"imageUrl":"https://图片地址"}。支持 HTTPS 直链、COS/OSS 临时签名链接;仅 443 端口,不跟随重定向,不支持登录 Cookie 或自定义认证头。
格式 PNG、JPEG/JPG、WebP;以实际解码结果校验,不只看扩展名;不支持多帧图片
输入上限 单文件 10 MiB(10,485,760 字节);最多 20,000,000 输入像素
处理尺寸等比例缩放至最长边不超过 1,200 像素,不放大小图
输出 SVG 文件,Content-Type: image/svg+xml;当前无其他输出格式参数
领取期 默认成功后 24 小时,以 expiresAt 和能力接口配置为准

交给客户端库生成 multipart boundary;不要手动写死 Content-Type: multipart/form-data。文件上传和 JSON URL 输入二选一。额外字段、Base64 输入、自定义颜色、背景和输出参数当前不受支持。

URL 下载最多 10 MiB,DNS 最多等待 5 秒、连接与下载最多 25 秒。URL 下载不占转换并发,失败不预留或扣除额度。签名链接需覆盖本次下载时间。同一幂等键保留原 URL(包括签名参数),已保存的图片副本在 1 小时内复用;任务建立后始终返回原任务,不重新下载。

cURL · HTTPS 图片 / COS / OSS 签名链接
curl --fail-with-body -sS 'https://svgo-api.com/openapi/v1/tasks' -H 'Authorization: Bearer YOUR_API_KEY' -H 'Idempotency-Key: your-url-task-0001' -H 'Content-Type: application/json' --data '{"imageUrl":"https://your-image-host.com/image.png"}'
04 / WORKING EXAMPLES

完整代码示例

下面的 Node.js 和 Python 示例包含能力检查、上传、轮询、结果保存及有限退避。网络中断重试始终保留原幂等键和相同图片,不将等待超时当作转换失败。

cURL · 提交、查询与下载
export API_BASE_URL='https://svgo-api.com/openapi/v1'
export API_KEY='YOUR_API_KEY'
# 一个业务任务固定一个键;断线重试仍用原键。下一张新图片换新键。
export IDEMPOTENCY_KEY='your-business-request-0001'

# 先确认 acceptsTasks=true,查询能力不收费。
curl --fail-with-body -sS "$API_BASE_URL/capabilities" \
  -H "Authorization: Bearer $API_KEY"

curl --fail-with-body -sS "$API_BASE_URL/tasks" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: $IDEMPOTENCY_KEY" \
  -F 'image=@image.png' \
  -o task.json

# 需要 jq;请保存 task.json 中的 taskId。
TASK_ID=$(jq -r '.taskId // empty' task.json)
cat task.json

# 查询时若还未成功,间隔 2–3 秒再次查询;不要直接下载或重新创建。
curl --fail-with-body -sS "$API_BASE_URL/tasks/$TASK_ID" \
  -H "Authorization: Bearer $API_KEY"

# 仅在 status=succeeded 后下载,以下响应是文件,不是 JSON。
curl --fail -sS "$API_BASE_URL/tasks/$TASK_ID/result" \
  -H "Authorization: Bearer $API_KEY" \
  -o result.svg

示例使用 curl 和 jq。查询仍未成功时继续等待,不要把最后一条下载命令当成自动轮询。

这些是 HTTP 接入示例,不是已发布的官方 SDK。首次接入建议先调用免费的账户和能力查询。当前没有免费转换测试模式。

05 / ENDPOINTS

接口参考

下列路径相对于 https://svgo-api.com/openapi/v1。所有接口均按 Key 所属账户进行权限校验。只有下载结果返回文件,其余成功响应均为 JSON。

POST/tasks提交转换任务

上传一张图片,或使用 JSON 提交 imageUrl,创建异步转换任务并预留额度。同账户不同 Key 使用同一幂等键,仍对应同一任务。

所需权限 tasks:write
参数 / 位置说明
Authorizationheader · 必填Bearer YOUR_API_KEY
Idempotency-Keyheader · 必填1–80 个 ASCII 字符:[A-Za-z0-9:_-]。每个逻辑任务唯一,原任务重试保留原键。
imagemultipart · binary · 可选仅一个 PNG/JPEG/WebP 文件,最大 10 MiB、2,000 万像素,不支持动画多帧或额外表单字段。
imageUrlJSON · string · 可选与 image 二选一;最大 8192 字符的 HTTPS 图片直链或 COS/OSS 临时签名链接,不支持重定向或自定义认证头。

成功响应:202 接受新任务;200 返回幂等键对应的原任务。两者均返回 Task JSON。

文件上传与 JSON imageUrl 二选一。URL 仅 HTTPS 443,无登录凭证,不跟随跳转;支持 COS/OSS 临时签名链接。同一幂等键必须保持原链接(含签名参数),已保存的图片副本会复用。不手动设置 multipart 的 Content-Type 或 boundary,由 HTTP 客户端生成。只返回 taskId 等状态信息,不直接返回 SVG。

POST /tasks · 响应示例
{
  "taskId": "6dd39862-bec8-44e4-b72e-50a40618ba6e",
  "status": "queued",
  "errorCode": null,
  "createdAt": "2026-10-28T02:00:00.000Z",
  "finishedAt": null,
  "expiresAt": null,
  "billing": {
    "source": "package",
    "state": "reserved",
    "reservedCents": 0,
    "chargedCents": null,
    "successOrdinal": null
  }
}
GET/tasks/{taskId}查询任务

获取原任务的最新状态、结果领取截止时间及预留/结算信息。

所需权限 tasks:read
参数 / 位置说明
taskIdpath · UUID · 必填提交接口返回的 taskId。

成功响应:200 · Task JSON

建议每 2–3 秒轮询一次,达到终态即停止。reconciling 时继续查原任务,不能据此新建替代任务。

GET /tasks/{taskId} · 响应示例
{
  "taskId": "6dd39862-bec8-44e4-b72e-50a40618ba6e",
  "status": "succeeded",
  "errorCode": null,
  "createdAt": "2026-10-28T02:00:00.000Z",
  "finishedAt": "2026-10-28T02:01:00.000Z",
  "expiresAt": "2026-10-29T02:01:00.000Z",
  "billing": {
    "source": "package",
    "state": "consumed",
    "reservedCents": 0,
    "chargedCents": 0,
    "successOrdinal": "1"
  }
}
GET/tasks/{taskId}/result下载结果

任务 succeeded 后鉴权领取 SVG。重复下载不增加成功次数或重复扣费。

所需权限 tasks:read
参数 / 位置说明
taskIdpath · UUID · 必填属于当前账户且已成功的任务编号。

成功响应:200 · image/svg+xml 二进制内容,Content-Disposition: attachment

此响应不是 JSON。结果默认成功后保留 24 小时,以 Task.expiresAt 为准;410 表示已过期。

POST/tasks/{taskId}/cancel申请取消任务

取消尚在排队的任务,或申请停止已经派发的任务。不需要 JSON 请求体。

所需权限 tasks:write
参数 / 位置说明
taskIdpath · UUID · 必填当前账户任务编号。

成功响应:200 · 最新 Task JSON

排队任务可直接变为 cancelled;已派发任务可能先变为 cancel_requested。成功与取消存在竞态,返回 succeeded 时仍按已完成结算。

GET/account查看账户额度

查看余额、冻结额、可用次数包、历史成功次数与账户并发限制。

所需权限 account:read

除鉴权外,无请求参数或请求体。

成功响应:200 · Account JSON

余额及较大计数字段以十进制字符串返回。显示人民币金额时再除以 100,不使用浮点数做账。

GET /account · 响应示例
{
  "accountId": "6fb13245-5c30-48e4-a5c7-0bfffc34a32f",
  "currency": "CNY",
  "balanceCents": "10000",
  "reservedCents": "20",
  "availableCents": "9980",
  "packageAvailableCalls": "0",
  "packageReservedCalls": "0",
  "lifetimeSuccessCount": "999",
  "nextUnitPriceCents": 20,
  "maxConcurrency": 2,
  "activeTasks": 1,
  "maxPendingTasks": 20,
  "walletFallback": true
}
GET/usage查询成功结算记录

查询当前账户的成功调用记录,按历史成功序号升序返回,每页最多 100 条。

所需权限 usage:read
参数 / 位置说明
afterquery · decimal string · 可选可选,默认 0。不含起点,下一页传入上页 nextCursor;不支持任意日期筛选或 limit 参数。

成功响应:200 · { items, nextCursor };nextCursor 为 null 时本次已到末页。

只包含成功结算记录。排队、失败、恢复中的任务应通过 taskId 查询。chargedCents 单位为分,consumedPackageCalls 为包内次数。

GET /usage · 响应示例
{
  "items": [
    {
      "taskId": "6dd39862-bec8-44e4-b72e-50a40618ba6e",
      "successOrdinal": "1001",
      "source": "wallet",
      "chargedCents": 15,
      "consumedPackageCalls": 0,
      "createdAt": "2026-10-28T02:01:00.000Z"
    }
  ],
  "nextCursor": null
}
GET/capabilities查询服务能力

接入前检查任务接收、支付能力、输入限制和结果保留时间。不产生转换费用。

所需权限 有效 Key 即可

除鉴权外,无请求参数或请求体。

成功响应:200 · Capabilities JSON

acceptsTasks=false 时不要新建任务。paymentAvailable=false 表示在线充值/购包尚未接通,不代表账户中的现有有效额度丢失。

GET /capabilities · 响应示例
{
  "version": "v1",
  "acceptsTasks": false,
  "paymentAvailable": false,
  "formats": [
    "png",
    "jpeg",
    "webp"
  ],
  "inputMethods": [
    "multipart",
    "https-url"
  ],
  "maxFileBytes": 10485760,
  "maxInputPixels": 20000000,
  "processingMaxEdge": 1200,
  "maxConcurrency": 2,
  "resultRetentionSeconds": 86400
}
06 / DATA MODELS

响应字段

Task · 任务及计费状态

字段 / 类型含义
taskIdstring · UUID账户内任务标识。请持久保存,以便中断后继续查询。
statusstring任务状态。只有 succeeded 表示成功转换;HTTP 200/202 不等于转换已成功。
errorCodestring | null任务失败或恢复阶段的稳定原因码;排查时同时保留 taskId。
createdAtstring · date-time任务创建时间,ISO 8601,UTC。
finishedAtstring | null任务到达终态的时间,尚未完成时为 null。
expiresAtstring | null成功结果领取截止时间。以该时间为准,默认成功后 24 小时。
billing.sourcepackage | wallet接收时确定的扣减来源:次数包或余额;同一任务不会双扣。
billing.statereserved | consumed | released额度已预留、已消耗或已释放。预留不是最终扣款。
billing.reservedCentsinteger · 分余额预留金额;次数包来源为 0。可能高于最终扣费。
billing.chargedCentsinteger | null · 分成功结算的现金扣费,次数包为 0;尚无成功结算时为 null。
billing.successOrdinalstring | null历史成功结算序号,以十进制字符串返回,避免大整数精度丢失。

Account · 额度与限制

字段 / 类型含义
accountIdstring当前 Key 所属的 API 计费账户。
currencyCNY人民币;所有 Cents 金额的单位都是分。
balanceCentsstring余额总额,包含仍在预留的部分。
reservedCentsstring已被待处理任务预留的余额。
availableCentsstring当前可用余额,等于 balanceCents − reservedCents。
packageAvailableCallsstring有效包中尚未消耗或预留的次数。
packageReservedCallsstring已预留的包次数,包含仍在处理中的过期包预留。
lifetimeSuccessCountstring历史成功调用总数,包内和余额调用共同累计,不按月重置。
nextUnitPriceCentsinteger以当前历史次数计算的下一次余额调用单价,20 或 15 分。
maxConcurrencyinteger账户执行并发上限,当前为 2,所有 Key 共享。
activeTasksinteger已经占用执行名额的任务数,包含恢复及取消确认中的任务。
maxPendingTasksinteger账户未结束任务上限,当前为 20。
walletFallbackboolean次数包耗尽后是否允许使用余额。

错误与响应头

错误响应示例 · 402 application/json
{
  "error": {
    "code": "API_CREDIT_INSUFFICIENT"
  },
  "requestId": "f7d692da-01bf-48c8-bb45-28d063b3d9d0"
}

应用错误通常包含 requestId,便于排查;网关故障可能只返回 error.code,客户端应容忍非 JSON 的错误响应。

X-Request-Id 应用生成的单次请求编号,不同于 taskId。排查接口错误时保留。
Retry-After429 时建议等待的秒数,当前通常为 60。
Cache-Control 带身份的数据响应为 no-store,不要用公共 CDN 缓存。
Content-Disposition下载成功时为 attachment,文件名对应任务编号。
07 / TASK LIFECYCLE

任务状态与取消

状态说明
queued排队中 · 继续查询已接受并预留额度,等待执行。排队不占执行并发;输入排队窗口默认 1 小时。
dispatching准备执行 · 继续查询已分配执行名额,准备处理图片。
running转换中 · 继续查询任务正在执行,继续使用原 taskId 查询。
reconciling状态确认中 · 继续查询正在恢复确认执行状态,保留名额和预留额度。不要换幂等键重复提交。
cancel_requested取消确认中 · 继续查询已申请取消,尚未确认停止;继续查询,不能据此认定已退回额度。
succeeded已完成 · 终态结果已归档并结算一次,可以下载。
failed未完成 · 终态确定失败,释放预留,不计成功调用次数。查看 errorCode 排查。
cancelled已取消 · 终态已确认取消,释放预留;不会生成新的成功结算。
expired排队已过期 · 终态未能在输入保留窗口内执行,释放预留。

申请取消不是确认取消

POST /tasks/{taskId}/cancel 不需要请求体。返回 cancel_requested 时继续查询,额度仍可能保持预留;只有确认取消后才释放。转换已先完成时会返回 succeeded,按照成功结果结算。

幂等键覆盖整个逻辑任务

同一账户的同一幂等键和图片会返回原 taskId,包括任务已经成功、失败或过期的情况;它不会“重新运行”原任务。原图不同返回 409。HTTP 超时或状态确认中,先恢复查询;确认原任务终态且有新的业务意图时,才创建新键。

当前任务记录和幂等信息不会随结果文件删除而清除。不要在任务结束后循环复用历史幂等键。

08 / BILLING

计费与额度预留

历史前 1,000 次¥0.20/ 次
历史第 1,001 次起¥0.15/ 次

历史成功次数按 API 账户永久累计,所有 Key 共用。分段计价不追溯改价。通过余额付费的 1,500 次累计为 275 元。充值只增加余额,不增加成功调用次数。

  • 接收任务时预留当前余额单价。若账号已有管理发放的有效调用额度,会先抵扣该额度;当前不销售调用次数包。
  • 结果成功归档后结算一次。失败、确认取消或排队过期释放预留,不增加成功次数。
  • 同一任务只扣包次数或余额一种。状态未知时保留预留并恢复确认,不立即重新收费或退款。
  • 在第 999 次后并发两个余额任务,可都先预留 20 分;成功序号分别为 1000 和 1001,实际扣 20 分、15 分,多预留的 5 分释放。
  • 查询状态、能力、额度、用量以及重复下载不收费;HTTP 请求数量不等于计费调用次数。

API 控制台提供 ¥10、¥50、¥100、¥500 四档余额充值,支付金额 1:1 入账,不销售调用次数包。微信支付是否开放以实际环境为准;本地预览关闭真实收款。自动退款尚未实现,测试额度不代表真实充值。

09 / RELIABILITY

限流、超时与重试

执行并发 每账户 2 项,所有 Key 共用;任务并发不是 HTTP 请求并发。
待处理任务 每账户最多 20 项,包含排队、执行、恢复和取消确认中的任务。
请求速率 当前账户预算为每 60 秒最多 180 个请求,任务提交另限 30 次;同一请求受多层保护,可能更早返回 429。
轮询建议 每项任务间隔 2–3 秒查询,终态后停止;不要高频刷新或用更多 Key 绕过限制。
客户端超时 单次 HTTP 建议 30 秒左右;任务等待单独计时,不能沿用同步转换的长连接模型。

429 优先遵守 Retry-After;网络错误、500/502/503/504 使用有上限的退避,可在生产中加入抖动。不要自动重试 400、401、402、403、404、409、410、413,先修正原因。

提交响应丢失可能发生在服务端已经接收之后。重传必须保留原键、原文件;下载失败只重试原下载路径。本地停止轮询不会停止服务器任务,只有取消接口才能申请取消。

10 / ERRORS

错误码与排查

先判断 HTTP 状态,再判断 error.code。查询任务返回 HTTP 200,但 status=failed 时,业务转换仍然失败,应查看任务的 errorCode。

400INVALID_IMAGE_URL / IMAGE_URL_FORBIDDEN

URL 不合法或解析到了禁止访问的地址。

仅使用公网 HTTPS 443 图片直链;不包含用户名、密码、片段或空白。
400IMAGE_DOWNLOAD_FAILED / IMAGE_DOWNLOAD_TIMEOUT

图片下载失败、跳转、链接过期或超时;未创建任务,不扣费。

检查链接可访问性与签名有效期;未创建任务时可用原幂等键重试。更新链接需更换幂等键。
409IMAGE_FETCH_IN_PROGRESS

同一幂等键的图片正在下载,或下载中断待核查。

保留原链接与幂等键,稍后重试;持续出现请提供 requestId 联系管理员,勿盲目重复创建。
409IMAGE_INPUT_EXPIRED

图片副本已过期且尚未创建任务。

确认原请求未建立任务后,用新幂等键提交。
429INPUT_CONCURRENCY_LIMIT

当前实例中该账号已有 2 个输入请求在处理。

等待输入请求结束后重试;与账户转换执行并发分别限制。
400IDEMPOTENCY_KEY_REQUIRED

缺少合法幂等键。

补充 1–80 字符的 Idempotency-Key,仅允许字母、数字、冒号、下划线和连字符。
400IMAGE_REQUIRED / INVALID_IMAGE / INVALID_UPLOAD

未提交图片、图片无法读取或上传格式不支持。

使用 multipart/form-data 的 image 单文件字段,移除额外字段。
400INVALID_CURSOR

用量分页游标无效。

使用上页返回的 nextCursor 或从 after=0 开始。
401UNAUTHORIZED

Key 缺失、格式无效、已撤销或已过期。

核对 Authorization: Bearer,必要时在控制台重新创建 Key。
402API_CREDIT_INSUFFICIENT

没有可预留的次数或余额。

检查可用额度及余额兜底设置,补足额度后再提交;当前在线购买尚未开放。
403SCOPE_REQUIRED / ACCOUNT_DISABLED

Key 权限不足或 API 账户已停用。

核对所需 scope;账户停用时联系服务方处理。
404NOT_FOUND

记录不存在,或不属于当前账户。

核对 taskId 与 Key 所属账户;无法查询其他账户的数据。
409IDEMPOTENCY_CONFLICT

同一幂等键对应了不同图片内容。

原任务重传应使用原图;新的业务任务才使用新键。
409RESULT_NOT_READY

任务尚未成功,不能下载结果。

查询任务状态;失败/取消不能通过重复下载变成成功。
410RESULT_EXPIRED

结果已超过领取期或已清理。

检查已保存的文件;下载过期不会自动触发重新转换。
413IMAGE_TOO_LARGE / IMAGE_PIXEL_LIMIT

超过 10 MiB 或 2,000 万输入像素。

先在客户端缩小图片,再作为新的业务任务提交。
429RATE_LIMITED

请求速率超限。

遵守 Retry-After,降低整个账户的请求频率,多把 Key 不增加账户额度。
429ACCOUNT_QUEUE_LIMIT

账户已有 20 项未结束任务。

等待原任务结束或取消尚未执行的任务;查询并发 2 与请求速率是不同限制。
503SERVICE_UNAVAILABLE / UPLOAD_BUSY

服务未开放、暂不可用或上传繁忙。

退避重试;提交响应不确定时,只用原幂等键和相同图片重传。
503RESULT_TEMPORARILY_UNAVAILABLE

已完成的结果暂时无法读取。

仅重试原下载接口,不要重新创建转换任务。

任务侧原因码包括输入异常、转换失败、排队过期及状态恢复等;遇到 STATE_RECONCILING 时先保留 taskId 继续查询,不以换键重传处理。联系服务方时提供 taskId、requestId 和错误码,不提供完整 Key 或私有图片。

11 / TOOLING

OpenAPI 与调试工具

提供 OpenAPI 3.0.3 JSON,可用于 Postman、Apifox 或支持 OpenAPI 的客户端生成工具。规范只包含对外 7 个 v1 接口,不包含控制台会话、管理接口或内部信息。

下载 OpenAPI 规范JSON · v0.1.0
  1. 导入下载的 JSON,并把服务地址配置为 https://svgo-api.com/openapi/v1。
  2. 在本地私有环境变量中设置 Bearer Key,不把真实 Key 同步到公共工作区或分享集合。
  3. 提交接口可选 form-data 的 image 文件字段,或 raw JSON 的 imageUrl;补充独立的 Idempotency-Key 请求头。
  4. 先查看 capabilities,再提交;保存 taskId,成功后以文件响应方式下载。

接口变更通过版本管理。当前没有已发布的官方 npm/PyPI SDK;文档中的下载示例可以直接使用,生成客户端后仍需保留异步轮询与幂等恢复逻辑。

12 / SUPPORTED TODAY

当前能力边界

已实现的 v1 能力尚未提供
单图文件上传、异步任务与 SVG 下载 同步一次请求直接返回 SVG、Base64 上传、批量打包入口
账户双并发、幂等、查询及取消确认Webhook、SSE 推送、客户端指定节点
钱包/次数包预留、历史阶梯结算、用量查询在线充值、包商品购买、自动退款、免费转换测试模式
固定处理参数和 SVG 输出自定义颜色/背景/曲线参数、PDF/EPS/DXF/PNG 等输出格式
可下载 Node.js / Python 接入示例、OpenAPI JSON已发布的官方 SDK 包、独立 CLI 安装包

接口参数与服务开放状态以本平台为准,不能直接套用其他服务的鉴权方式、同步流程或处理参数。生产接入前先完成小规模验证。

API v1 · 文档更新于 2026-10-28 · 示例响应为说明用途,不代表真实调用或付款