文脈とスタイルを理解する、開発者のための翻訳API
Irodori Translation API は、標準的な翻訳に加え、関西弁・敬語・カジュアルなどのスタイル指定が可能なREST APIです。 ルビ振り機能やカタカナ読み出力など、日本語学習者向けの機能も備えています。
すべてのリクエストにはHTTPヘッダーで X-API-KEY を付与してください。
X-API-KEY: sk-xxxxxxxxxxxx
APIキーは ダッシュボード から無料で取得できます(登録不要)。
| 項目 | Standard | Premium |
|---|---|---|
| モデル | gpt-oss-120b | Gemini 3 Flash |
| パラメータ | model: "standard" | model: "premium" |
| 制限 | 2,800回/月(全体共有) | 4/30まで無制限 通常: 20回/日 |
| 利用資格 | 誰でも可 | 管理者発行キーが必要 |
| 超過時 | 503エラー | Standardへ自動フォールバック |
POST https://blackbird.weblike.jp/honyaku/api/translate.php
| 名前 | 必須 | 説明 |
|---|---|---|
text |
必須 | 翻訳するテキスト(最大1500文字) |
target |
任意 |
翻訳先言語(デフォルト: english)対応言語: japanese english chinese korean french
|
source |
任意 | 翻訳元言語(auto で自動検出) |
model |
任意 | standard(デフォルト)または premium |
style |
任意 |
文体指定(デフォルト: standard)共通: standard custom日本語: casual polite kansai academic英語: american british middle_school中国語: traditional (繁体字) / simplified (簡体字)
|
custom_prompt |
任意 | style: "custom" 時の自由指示(例: 「5歳児向けに」) |
is_literal |
任意 | true で直訳モード |
{
"translation": "こんにちは",
"katakana": "コンニチハ",
"ruby_text": "今日{きょう}は",
"detected_source": "english",
"used_model": "gpt-oss-120b",
"explanation": ["挨拶表現です"]
}
難読漢字には 漢字{よみ} 形式でルビ情報が付与されます。アプリ側でパースしてご利用ください。
# APIエンドポイントへPOSTリクエストを送信
curl -X POST https://blackbird.weblike.jp/honyaku/api/translate.php \
-H "Content-Type: application/json" \
-H "X-API-KEY: sk-xxxxxxxxxxxx" \
-d '{
"text": "Hello world",
"target": "japanese",
"source": "auto",
"model": "standard",
"style": "casual",
"custom_prompt": "",
"is_literal": false
}'
import requests
import json
# APIエンドポイントとヘッダー
url = "https://blackbird.weblike.jp/honyaku/api/translate.php"
headers = {
"Content-Type": "application/json",
"X-API-KEY": "sk-xxxxxxxxxxxx"
}
# リクエストデータ
data = {
"text": "Hello world",
"target": "japanese",
"source": "auto", # Optional
"model": "standard", # Optional
"style": "casual", # Optional
"custom_prompt": "", # Optional
"is_literal": False # Optional
}
# POSTリクエスト送信 (ensure_ascii=False で文字化け防止)
response = requests.post(url, headers=headers, data=json.dumps(data, ensure_ascii=False))
print(response.json())
// APIエンドポイント
const url = "https://blackbird.weblike.jp/honyaku/api/translate.php";
// ヘッダー
const headers = {
"Content-Type": "application/json",
"X-API-KEY": "sk-xxxxxxxxxxxx"
};
// リクエストボディ
const body = JSON.stringify({
text: "Hello world",
target: "japanese",
source: "auto", // Optional
model: "standard", // Optional
style: "casual", // Optional
custom_prompt: "", // Optional
is_literal: false // Optional
});
// 非同期リクエスト送信
fetch(url, { method: "POST", headers, body })
.then(res => res.json())
.then(data => console.log(data))
.catch(console.error);
<?php
// APIエンドポイント
$url = "https://blackbird.weblike.jp/honyaku/api/translate.php";
// リクエストデータ
$data = [
"text" => "Hello world",
"target" => "japanese",
"source" => "auto", // Optional
"model" => "standard", // Optional
"style" => "casual", // Optional
"custom_prompt" => "", // Optional
"is_literal" => false // Optional
];
// cURL初期化
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"X-API-KEY: sk-xxxxxxxxxxxx"
]);
curl_setopt($ch, CURLOPT_POST, true);
// JSONエンコード (日本語の文字化け防止)
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data, JSON_UNESCAPED_UNICODE));
// リクエスト実行
$response = curl_exec($ch);
// エラーハンドリング
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
} else {
echo $response;
}
curl_close($ch);
?>
400 Bad Request — JSON形式エラー、必須パラメータ不足401 Unauthorized — APIキーが無効または未設定429 Too Many Requests — レート制限超過(60回/分)503 Service Unavailable — 月間リクエスト上限に到達レスポンスがここに表示されます