API 文档
imagetranslate.ai 的公开 REST API。用 Bearer 令牌鉴权,传一张 base64 图片进去,拿回翻好字的图。
翻译图片上的文字,保持原排版,渲染回原图。
快速开始
获取 API key
去 API Keys 页面生成一个。
处理响应
response.resultImage 是一段 base64 编码的 PNG,前面带 data:image/png;base64,(不是 HTTP URL)。在浏览器里 <img src={response.resultImage} /> 就能直接显示;要存成文件,把前缀去掉再 base64 解码写进去就行。
身份验证
每个请求在 Authorization header 里带上 API key,格式是 Bearer:
API key 是 32 字节随机串,前缀 sk_imagetranslate_。当密码用就行 —— 放服务端的密钥库里,别提交到代码仓库,也别在前端代码里出现。
幂等性
网络超时后重试请求时,带上同一个 Idempotency-Key header,避免重复扣积分:
- 第一次用某个 key 调用:正常处理。
- 同一个 key 再调一次(按 API key 隔离):返回
409 Conflict,带上原来的recordId。这次重试不扣积分。 - 不同的 key 算不同的调用。
key 在客户端生成就行,UUIDv4 没问题。不带这个 header 的话,每次重试都会重新扣一次积分、重新调一次 Torii。
翻译图片
同步接口。返回翻译好的图片,base64 编码,前缀 data:image/png;base64,。
Base URL
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
imageBase64 | string | 是 | base64 编码的图片。纯 base64 字符串和完整 data URL(data:image/png;base64,...)都行。解码后最大 20MB。 |
sourceLanguage | string | 是 | ISO 语言代码,或 auto 让系统自动识别。见语言代码。 |
targetLanguage | string | 是 | ISO 语言代码。见语言代码。 |
mode | string | 否 | 渲染风格。默认 general。见 mode 值。 |
translator | string | 否 | 翻译模型。默认 Grok。见 translator 模型。 |
customPrompt | string | 否 | 给模型的额外指令,最多 1000 个字符。 |
响应
| 字段 | 类型 | 说明 |
|---|---|---|
success | boolean | 翻译成功就是 true。 |
recordId | string | 这次调用的唯一日志 ID,出问题找客服时报这个。 |
resultImage | string | 翻译后的图片,base64 编码,前缀 data:image/png;base64,(不是 HTTP URL)。直接 <img src={...} /> 渲染,或者去掉前缀 base64 解码存文件。 |
remainingCredit | number | 扣完这次以后,账户里剩余的高级积分(advanced credit)。 |
示例
响应示例
错误码
| Status | 含义 |
|---|---|
400 | 请求格式错误,或 imageBase64 不是有效的 base64。 |
401 | API key 缺失或无效。去 API Keys 生成一个。 |
402 | 高级积分不够。去计费页面充值。本次调用没扣积分。 |
403 | 当前套餐没开 API 权限,去计费页面升级到 Professional 或以上才能用。 |
409 | Idempotency-Key 已经用过。返回 { "error": "idempotency_replay", "recordId": "<id>" },本次没扣积分。 |
413 | 图片 base64 解码后超过 20MB,压缩或缩小尺寸再发。 |
422 | 请求体验证失败(字段缺失/无效)。响应 body 含 detail 数组指明错误位置。 |
429 | 超过套餐的速率上限。未扣积分。 |
500 | 翻译失败。积分已自动退还。 |
错误响应格式
- 4xx / 500:
{ "detail": "<message>" } - 422:
{ "detail": [{ "loc": [...], "msg": "...", "type": "..." }] } - 409:
{ "error": "idempotency_replay", "recordId": "<id>", "message": "..." }
速率限制
每个 API key 按分钟限速,具体看套餐:
| 套餐 | 限速 |
|---|---|
| Free | 不支持 |
| Starter | 不支持 |
| Professional | 60 req/min |
| Enterprise | 300 req/min |
需要更高?发邮件给 [email protected]。
计费
每次调用扣 10 个高级积分。具体套餐和积分包看计费页面。
附录
语言代码
sourceLanguage 用 ISO 639-1 / BCP-47 代码,或者 auto 让系统自动识别。
targetLanguage 用同一套代码(不支持 auto)。
常用代码:
| Code | 语言 | Code | 语言 |
|---|---|---|---|
auto | 自动识别(只用于 source) | pt | 葡萄牙语 |
en | 英语 | ru | 俄语 |
zh | 中文 | ar | 阿拉伯语 |
zh-cn | 简体中文 | hi | 印地语 |
zh-tw | 繁体中文 | th | 泰语 |
ja | 日语 | vi | 越南语 |
ko | 韩语 | id | 印尼语 |
es | 西班牙语 | tr | 土耳其语 |
fr | 法语 | it | 意大利语 |
de | 德语 | nl | 荷兰语 |
完整列表 —— 按区域分,共 130+ 种
东亚
| Code | 语言 |
|---|---|
zh | 中文 |
zh-cn | 简体中文 |
zh-tw | 繁体中文 |
ja | 日语 |
ko | 韩语 |
mn | 蒙古语 |
jv | 爪哇语 |
su | 巽他语 |
东南亚
| Code | 语言 |
|---|---|
vi | 越南语 |
th | 泰语 |
id | 印尼语 |
ms | 马来语 |
my | 缅甸语 |
km | 高棉语 |
lo | 老挝语 |
fil | 菲律宾语 |
ceb | 宿务语 |
ilo | 伊洛卡诺语 |
南亚
| Code | 语言 | Code | 语言 |
|---|---|---|---|
hi | 印地语 | ne | 尼泊尔语 |
bn | 孟加拉语 | si | 僧伽罗语 |
ur | 乌尔都语 | as | 阿萨姆语 |
ta | 泰米尔语 | bho | 博杰普尔语 |
te | 泰卢固语 | dv | 迪维希语 |
ml | 马拉雅拉姆语 | doi | 多格拉语 |
gu | 古吉拉特语 | gom | 孔卡尼语 |
kn | 卡纳达语 | mai | 迈蒂利语 |
mr | 马拉地语 | lus | 米佐语 |
or | 奥里亚语 | pa | 旁遮普语 |
sa | 梵语 | sd | 信德语 |
非洲
| Code | 语言 | Code | 语言 |
|---|---|---|---|
am | 阿姆哈拉语 | kri | 克里奥语 |
sw | 斯瓦希里语 | ln | 林加拉语 |
ha | 豪萨语 | nso | 北索托语 |
yo | 约鲁巴语 | om | 奥罗莫语 |
zu | 祖鲁语 | st | 塞索托语 |
xh | 科萨语 | sn | 修纳语 |
af | 南非荷兰语 | ti | 提格雷尼亚语 |
mg | 马尔加什语 | ts | 聪加语 |
so | 索马里语 | ak | 契维语 |
bm | 班巴拉语 | ee | 埃维语 |
ny | 齐切瓦语 | lg | 卢干达语 |
ig | 伊博语 | rw | 卢旺达语 |
欧洲
| Code | 语言 | Code | 语言 |
|---|---|---|---|
fr | 法语 | lt | 立陶宛语 |
de | 德语 | lv | 拉脱维亚语 |
es | 西班牙语 | et | 爱沙尼亚语 |
it | 意大利语 | is | 冰岛语 |
ru | 俄语 | sq | 阿尔巴尼亚语 |
pl | 波兰语 | hy | 亚美尼亚语 |
uk | 乌克兰语 | az | 阿塞拜疆语 |
nl | 荷兰语 | eu | 巴斯克语 |
pt | 葡萄牙语 | be | 白俄罗斯语 |
el | 希腊语 | bs | 波斯尼亚语 |
cs | 捷克语 | ca | 加泰罗尼亚语 |
hu | 匈牙利语 | co | 科西嘉语 |
sv | 瑞典语 | fy | 弗里西语 |
da | 丹麦语 | gl | 加利西亚语 |
fi | 芬兰语 | ka | 格鲁吉亚语 |
no | 挪威语 | kk | 哈萨克语 |
ro | 罗马尼亚语 | ky | 吉尔吉斯语 |
bg | 保加利亚语 | lb | 卢森堡语 |
hr | 克罗地亚语 | mk | 马其顿语 |
sk | 斯洛伐克语 | mt | 马耳他语 |
sl | 斯洛文尼亚语 | sr | 塞尔维亚语 |
tg | 塔吉克语 | tt | 鞑靼语 |
tk | 土库曼语 | ug | 维吾尔语 |
uz | 乌兹别克语 |
中东
| Code | 语言 |
|---|---|
ar | 阿拉伯语 |
fa | 波斯语 |
tr | 土耳其语 |
he | 希伯来语 |
ku | 库尔德语 |
ckb | 索拉尼库尔德语 |
ps | 普什图语 |
美洲与大洋洲
| Code | 语言 |
|---|---|
ay | 艾马拉语 |
gn | 瓜拉尼语 |
ht | 海地克里奥尔语 |
haw | 夏威夷语 |
qu | 克丘亚语 |
sm | 萨摩亚语 |
mi | 毛利语 |
其他
| Code | 语言 |
|---|---|
eo | 世界语 |
la | 拉丁语 |
cy | 威尔士语 |
ga | 爱尔兰语 |
gd | 苏格兰盖尔语 |
hmn | 苗语 |
yi | 意第绪语 |
mode 值
mode 决定渲染风格,挑一个最贴近图片内容的:
| Value | 说明 |
|---|---|
general (默认) | 默认模式,不做特殊渲染。 |
manga | 保留原文排版,带文字描边。 |
e-commerce | 保留原文排版,不带文字描边。 |
light-novel | 把译文叠加在原图上。 |
translator 模型
translator 决定用哪个 AI 模型翻译。每个模型都是 10 积分一次。
Grok(默认)GeminiDeepseekChatGPTClaude
开始集成
准备好集成?去创建第一个 API key →