Irodori Translation API

文脈とスタイルを理解する、開発者のための翻訳API

⚠️ 本サービスは実験的なプロジェクトです。過度なアクセスは制限される場合があります。

1. 概要

Irodori Translation API は、標準的な翻訳に加え、関西弁・敬語・カジュアルなどのスタイル指定が可能なREST APIです。 ルビ振り機能やカタカナ読み出力など、日本語学習者向けの機能も備えています。

2. 認証

すべてのリクエストにはHTTPヘッダーで X-API-KEY を付与してください。

X-API-KEY: sk-xxxxxxxxxxxx

APIキーは ダッシュボード から無料で取得できます(登録不要)。

3. モデルと制限

項目StandardPremium
モデルgpt-oss-120bGemini 3 Flash
パラメータmodel: "standard"model: "premium"
制限2,800回/月(全体共有)4/30まで無制限
通常: 20回/日
利用資格誰でも可管理者発行キーが必要
超過時503エラーStandardへ自動フォールバック

4. API仕様

エンドポイント

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": ["挨拶表現です"]
}

ruby_text形式

難読漢字には 漢字{よみ} 形式でルビ情報が付与されます。アプリ側でパースしてご利用ください。

5. サンプルコード

# 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);
?>

6. エラーコード

7. プレイグラウンド

レスポンスがここに表示されます