画像翻訳ドキュメント

API リファレンス

imagetranslate.ai の公開 REST API。Bearer トークンで認証し、base64 画像を送信するとテキストを翻訳した画像が返ります。

画像内のテキストを翻訳し、元のレイアウトを保ったまま画像として返します。

クイックスタート

API key を発行する

API Keys ページで作成できます。

最初のリクエストを送る

curl -X POST https://api.imagetranslate.ai/translate/image \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "imageBase64": "iVBORw0KGgoAAAANSUhEUgAA...",
    "sourceLanguage": "ja",
    "targetLanguage": "en",
    "mode": "general",
    "translator": "Grok"
  }'

レスポンスを利用する

response.resultImagedata:image/png;base64, で始まる base64 エンコード済み PNG です(HTTP URL ではありません)。ブラウザでは <img src={response.resultImage} /> でそのまま表示できます。ファイルとして保存する場合は、プレフィックスを除去して base64 デコードしてください。

認証

すべてのリクエストで、Authorization ヘッダーに API key を Bearer トークンとして指定してください。

Authorization: Bearer YOUR_KEY

API key は sk_imagetranslate_ プレフィックス付きの 32 バイトのランダム文字列です。パスワード同様に厳重に管理してください。サーバー側のシークレットマネージャーで保管し、リポジトリへのコミットやフロントエンドコードへの埋め込みは避けてください。

べき等性

ネットワークタイムアウト後にリクエストを再送する場合は、クレジットの二重消費を防ぐため、同じ Idempotency-Key ヘッダーを付けて送信してください。

Idempotency-Key: <your-uuid>
  • そのキーでの最初の呼び出し: 通常どおり処理されます。
  • 同じキー(同一 API key 内)での再呼び出し: 409 Conflict と元の recordId を返します。再送ではクレジットを消費しません
  • 異なるキー = 異なる呼び出しです。

キーはクライアント側で生成してください(UUIDv4 で十分です)。指定しない場合、再送のたびに新たなクレジットを消費し、Torii の呼び出しも再実行されます。

画像翻訳

同期エンドポイントです。翻訳済み画像を base64 エンコードした文字列(data:image/png;base64, プレフィックス付き)として返します。

Base URL

https://api.imagetranslate.ai

リクエストボディ

フィールド必須説明
imageBase64stringはいbase64 エンコードした画像。生の base64 文字列と完全な data URL(data:image/png;base64,...)のいずれも指定できます。デコード後のサイズ上限は 20MB です。
sourceLanguagestringはいISO 言語コード。auto を指定すると自動検出します。言語コード を参照。
targetLanguagestringはいISO 言語コード。言語コード を参照。
modestringいいえレンダリングスタイル。既定は generalmode 値 を参照。
translatorstringいいえ翻訳モデル。既定は grok-4translator モデル を参照。
customPromptstringいいえモデルへの追加指示。最大 1000 文字。

レスポンス

フィールド説明
successboolean翻訳が成功した場合 true
recordIdstringこのリクエストのログ ID。サポートへの問い合わせ時に共有してください。
resultImagestring翻訳済み画像。data:image/png;base64, プレフィックス付きの base64 文字列です(HTTP URL ではありません)。<img src={...} /> でそのまま表示するか、プレフィックスを除去して base64 デコードしファイルに保存します。
remainingCreditnumberこのリクエスト後の advanced credit 残高。

サンプル

curl -X POST https://api.imagetranslate.ai/translate/image \
  -H "Authorization: Bearer $IMAGETRANSLATE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "imageBase64": "YOUR_BASE64_IMAGE",
    "sourceLanguage": "ja",
    "targetLanguage": "en",
    "mode": "general",
    "translator": "Grok"
  }'

レスポンスサンプル

{
  "success": true,
  "recordId": "Z3l4abc...",
  "resultImage": "data:image/png;base64,iVBORw0KGgoAAAANSU...",
  "remainingCredit": 9990
}

エラーコード

Status意味
400リクエスト形式が不正、または imageBase64 が有効な base64 ではありません。
401API key が未指定または無効です。API Keys で発行してください。
402advanced credit が不足しています。料金ページ でチャージしてください。このリクエストではクレジットを消費しません
403現在のプランでは API を利用できません。料金ページ から Professional 以上へアップグレードしてください。
409Idempotency-Key が既に使用されています。{ "error": "idempotency_replay", "recordId": "<id>" } を返します。クレジットは消費されません
413デコード後の画像サイズが 20MB を超えています。画像を圧縮または縮小してください。
422リクエストボディの検証に失敗(欠落/無効なフィールド)。ボディに detail 配列でエラー位置を返します。
429プランのレート上限を超えました。クレジットは消費されません。
500翻訳に失敗しました。クレジットは自動で返却されます。

エラーレスポンス形式

  • 4xx / 500: { "detail": "<message>" }
  • 422: { "detail": [{ "loc": [...], "msg": "...", "type": "..." }] }
  • 409: { "error": "idempotency_replay", "recordId": "<id>", "message": "..." }

レート制限

API key 単位の 1 分あたりのリクエスト数で、プランごとに異なります。

プラン制限
Free利用不可
Starter利用不可
Professional60 req/min
Enterprise300 req/min

上限を引き上げたい場合は [email protected] までご連絡ください。

料金

1 リクエストあたり advanced credit を 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 モデルを指定します。いずれのモデルも 1 回あたり 10 ポイントです。

  • Grok (既定)
  • Gemini
  • Deepseek
  • ChatGPT
  • Claude

はじめに

統合の準備が整ったら、最初の API key を作成 →