メインコンテンツまでスキップ

翻訳 API リファレンス

Shisa 翻訳 API は、​単一の​ multipart/form-data リクエストで、​ソース言語と​ターゲット言語の​間で​テキストを​翻訳します。​この​ページでは、​エンドポイント、​その​フォームフィールド、​非ストリーミングレスポンス、​ストリーミング形式に​ついて​説明します。

エンドポイント

POST https://api.shisa.ai/translate/

Authorization ヘッダーで、​そのままの​ shsk: トークンを​使って​認証します。

Authorization: shsk:YOUR_API_KEY
警告

翻訳では​翻訳専用の​認証ヘッダーを​使用します。​トークンは​ そのまま 送信します — 他の​ Shisa サービスとは​異なり、Bearer プレフィックスは​ 付けません。​トークンが​欠落または​不正な​形式の​場合は​ 401 エラーが​返されます。​完全な​規約に​ついては​ 認証 を​参照してください。

リクエストボディは​ multipart/form-data です — 以下の​フィールドは​ JSON ではなく​フォームフィールドとして​送信します。

リクエストフィールド

FieldTypeRequired説明
textstringRequired翻訳する​テキスト。
source_langstringRequiredソース言語コード​(例: ja)。
target_langstringRequiredターゲット言語コード​(例: en)。
streamstringOptional単一の​ JSON レスポンスの​場合は​ "false"(デフォルト)、​Server-Sent Events の​場合は​ "true"

非ストリーミングレスポンス

stream=false(デフォルト)の​場合、​API は​ OpenAI スタイルの​ JSON オブジェクトを​返します。​翻訳された​テキストは​ choices[0].message.content に​あります。

{
"id": "trans_20f537a6-da14-4c98-8ee3-063319c45072",
"object": "translation.completion",
"created": 1768299459,
"model": "shisa-ai/chotto",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "お腹が空いた。"
},
"finish_reason": "stop"
}
],
"transcription": "I am hungry",
"source_lang": "en",
"target_lang": "ja",
"balance": {
"free": 1000,
"premium": 0
},
"usage": {
"prompt_tokens": 3,
"completion_tokens": 1,
"total_tokens": 4
}
}
Field説明
id翻訳の​一意の​識別子。trans_ の​プレフィックスが​付きます。
objectオブジェクトタイプ。​非ストリーミングレスポンスの​場合は​ translation.completion です。
created翻訳が​作成された​時刻の​ Unix タイムスタンプ​(秒)。
model翻訳を​生成した​モデル — shisa-ai/chotto
choices翻訳の​選択肢の​配列。​各エントリには​ indexrole と​ content を​持つ messagefinish_reason が​あります。
choices[0].message.content翻訳された​テキスト。
transcription翻訳された​元の​ソーステキスト。
source_lang翻訳に​使用された​ソース言語コード。
target_lang翻訳に​使用された​ターゲット言語コード。
balance残りの​クレジット残高。free と​ premium の​トークン数を​含みます。
usageトークンの​集計: prompt_tokenscompletion_tokenstotal_tokens

ストリーミングレスポンス

リアルタイム配信の​ために​翻訳を​ Server-Sent Events と​して​受け取るには​ stream=true を​設定します。

curl -X POST "https://api.shisa.ai/translate/" \
-H "Authorization: shsk:YOUR_API_KEY" \
-F "text=I am hungry" \
-F "source_lang=en" \
-F "target_lang=ja" \
-F "stream=true"

各チャンクは​ data: イベントで、​その​オブジェクトは​ translation.completion.chunk であり、​部分的な​テキストを​ choices[0].delta.content に​持ちます。​最後の​チャンクは​ finish_reason を​ "stop" に​設定し、usage を​含み、​その後に​ data: [DONE] ターミネーターが​続きます。

data: {"id": "trans_446d7397-...", "object": "translation.completion.chunk", "choices": [{"delta": {"content": ""}, "index": 0}]}
data: {"id": "trans_fe190f5d-...", "object": "translation.completion.chunk", "choices": [{"delta": {"content": "お"}, "index": 0}]}
data: {"id": "trans_71bbdcec-...", "object": "translation.completion.chunk", "choices": [{"delta": {"content": "腹が"}, "index": 0}]}
data: {"id": "trans_7c2d47d7-...", "object": "translation.completion.chunk", "choices": [{"delta": {"content": "空いた"}, "index": 0}]}
data: {"id": "trans_99e10e01-...", "object": "translation.completion.chunk", "choices": [{"delta": {"content": "。"}, "index": 0}]}
data: {"id": "trans_0a0396bd-...", "choices": [{"delta": {}, "index": 0, "finish_reason": "stop"}], "usage": {...}}
data: [DONE]

次の​ステップ

  • クイックスタート で​実際に​動作する​リクエストを​送信します。
  • サービス全体の​認証ヘッダー規約を​ 認証 で​学びます。
  • 利用が​どのように​課金されるかを​ 価格 で​確認します。