开放 API把服务端工具接到你自己的系统里

用 Bearer 密钥调用需要服务端的那批工具:HEIC / TIFF / RAW / AVIF 转图、PDF 处理、视频转码与转 GIF、GIF 拆帧与倒放、图片降噪。上传 → 拿任务号 → 轮询 → 下载结果,四步走完。

一、鉴权

每个请求都带上密钥:

Authorization: Bearer tdd_xxxxxxxxxxxxxxxx

密钥只发给登录用户(游客拿不到,否则等于给匿名流量开一条绕过页面限流的路)。明文只在创建那一屏出现一次,服务端只存 sha256——忘了只能重新生成。

二、调用流程

  1. 建任务:POST /api/v1/tasks,multipart 表单字段 tool(工具代号)、file(多文件用 files[])、params(JSON 字符串)
  2. 查状态:GET /api/v1/tasks?no=任务号,status 为 done 时返回 result.url
  3. 下结果:GET /api/v1/results?no=任务号,同样带 Bearer 头
  4. 看用量:GET /api/v1/usage,返回今日额度与本分钟已用次数

示例(HEIC 转 JPG):

curl -X POST https://www.tdd8.cn/api/v1/tasks \
  -H "Authorization: Bearer tdd_xxx" \
  -F "tool=convert_heic" \
  -F "params={\"format\":\"jpg\"}" \
  -F "file=@photo.heic"

# 返回 {"ok":true,"task_no":"T2026...","status":"pending","left":19,"ttl":7200}

curl -H "Authorization: Bearer tdd_xxx" \
  "https://www.tdd8.cn/api/v1/tasks?no=T2026..."        # 查状态
curl -H "Authorization: Bearer tdd_xxx" -o out.jpg \
  "https://www.tdd8.cn/api/v1/results?no=T2026..."      # 下载

工具代号就是各工具页的 code,例如 convert_heic、pdf_to_jpg、 video_convert、gif_reverse、denoise。 只有在浏览器里跑不动、必须服务端处理的工具才开放 API,传本地工具代号会返回 404。

三、额度与限流

  • 额度:和网页共用同一份——免费用户 20 次/天,会员按套餐(200 起),每天 0 点重置。一个文件算一次。
  • 限流:每个密钥每分钟最多建 你创建时选的那个值 个任务,超限返回 429 并带 Retry-After: 60。
  • 并发:同一密钥最多 3 个任务在排队或处理中,超了返回 429。
  • 结果保留:跟随账号——免费 2 小时,会员 24 小时 / 72 小时 / 7 天,过期文件被清理,接口返回 410。
  • 计费:目前不单独收费,API 与网页共用额度;后续若推出按调用量计费的套餐,会另行公告,不会默默改规则。

四、错误码

状态码含义怎么处理
401没带密钥 / 密钥无效 / 已吊销检查 Authorization 头,或重新生成密钥
404工具不存在、不需要服务端处理,或任务不属于这个密钥确认工具代号;任务只能由创建它的密钥查
409任务还没完成继续轮询,别急着下载
410结果已过期被清理重新提交任务
413文件超过体积上限(图片 20MB、视频 100MB)先压缩或截短
415不支持的格式支持 JPG/PNG/WebP/GIF/BMP/TIFF/AVIF/HEIC/PDF/MP4
422参数不合法(如合并任务混了格式)按提示调整后重试
429额度用完 / 触发限流 / 排队已满看返回的 limit、used 与 Retry-After

五、我的密钥

密钥只对登录用户开放。登录后可以在这一页直接创建,没有账号就 注册一个。

常见问题

为什么只能调服务端工具?

压缩、改尺寸、水印、裁剪这些在浏览器本地就能完成,不需要服务端算力,做成接口反而多一次上传。开放的是浏览器做不到或做不好的那批:HEIC 解码、PDF、视频转码、GIF 拆帧、降噪。

密钥泄露了怎么办?

在这一页立刻吊销,旧密钥马上返回 401,再新建一个换上。用旧密钥建过的任务仍然可以查询和下载,不受影响。

会单独收费吗?

现在不收费,API 与网页共用同一份每日额度。后续若推出按调用量计费的套餐,会先公告再生效。

结果文件能被人猜到吗?

下载链接只认任务号 + 归属:任务号是 20 位带随机的字符串,且必须与密钥所属用户一致,别人拿到链接也下不了。