API v2 开放接口文档
v2.0 RESTful
兔兔图床提供强大的高并发 RESTful API v2,支持文件流上传、远程 URL 抓取上传以及图片信息检索。开发者可通过简短的 HTTP 请求快速集成图床能力。
认证与鉴权 (Authentication)
所有 API 请求均需要通过请求头携带 API Key。通过密钥上传的图片会归属到您的个人账户,并在账号正常使用期间持续保存;账号删除后的数据清理规则见隐私政策。
API Key 传递方式
推荐使用
Authorization: Bearer YOUR_API_KEY 或 X-Tutu-API-Key: YOUR_API_KEY 请求头。旧表单和 Query 参数仍兼容,但密钥放在 URL 中可能进入日志和历史记录。请勿在前端客户端中公开您的私密密钥。POST
/api/2/upload— 文件流上传接口
支持二进制文件流或 base64 格式上传图片,单图最大支持 10MiB(Free)/ 30MiB(Pro)。
请求参数表:
Authorization或X-Tutu-API-Key请求头(必需):您的 API Key。source(必需): 图片文件流 (multipart File) 或 Base64 编码字符串。anonymousUpload(可选): 设为true或1以匿名上传(隐藏公开上传者身份;图片仍归 API Key 对应账户,计入该账户配额,并由该账户管理)。srcPageUrl(可选): 来源页面 URL(浏览器扩展等场景)。srcImageUrl(可选): 来源图片 URL(浏览器扩展等场景)。
cURL 示例
curl -X POST "https://tutu.to/api/2/upload" \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "source=@/path/to/image.png"
POST
/api/2/urlUpload— 远程 URL 抓取上传
通过远程图片 URL 直接拉取并保存到兔兔图床 CDN 数据平面,免去本地下载再上传的繁琐步骤。
cURL 示例
curl -X POST "https://tutu.to/api/2/urlUpload" \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "imgUrl=https://example.com/image.png"
POST
/api/2/d— 远程文件下载上传(同时支持 GET / POST)
通过远程 URL 下载文件并自动上传到您的个人账户,无需先保存到本地。与
/api/2/urlUpload 的区别在于:本端点会创建并托管图片,推荐使用 POST 请求。旧 GET 入口仅为已有客户端兼容保留。远程上传是否可用以站点配置为准。请求参数表:
Authorization或X-Tutu-API-Key请求头(必需):您的 API Key。url(必需): 远程图片的完整 URL(支持 Form 或 Query 参数传递)。
cURL 示例
curl -X POST "https://tutu.to/api/2/d" -H "Authorization: Bearer YOUR_API_KEY" --data-urlencode "url=https://example.com/image.png"
标准 JSON 响应结构
成功响应包含图片元数据与查看页链接。
chain 字段的 bit0=缩略图、bit1=中图,表示已生成的缓存尺寸。Response 200 OK
{
"status_code": 200,
"success": {
"message": "image uploaded",
"code": 200
},
"image": {
"name": "example",
"extension": "png",
"width": 1920,
"height": 1080,
"url_viewer": "https://tutu.to/image/example.abc123",
"chain": 3
}
}错误码参考
| 错误码 | HTTP 状态 | 说明 |
|---|---|---|
| 230 | 400 | API KeyIcon 无效、缺失或已撤销 — 请检查 KeyIcon 格式(UUID v4)及在设置页的状态 |
| 231 | 403 | API KeyIcon 已被禁用 — 该 KeyIcon 被管理员暂停,请前往设置页查看或重新生成 |
| 250 | 429 | API 调用频率超出限制(分/时/日三窗口)— 限额因套餐而异,具体请在设置页查看 |
| 130 | 400 | 上传来源无效 — 文件为空、远程 URL 拉取失败或 URL 上传功能未启用 |
| 500 | 500 | 服务器内部错误 — 图片处理失败,可稍后重试;持续出现请联系技术支持 |
错误响应格式:
{"status_code": 400, "error": {"message": "...", "code": 230}}