APIドキュメント

簡単なREST APIで強力な翻訳をアプリケーションに統合する。

始める

TranslateAPIは180以上の言語間でテキストを翻訳するための簡単なRESTインタフェースを提供します。すべてのAPIエンドポイントはJSON応答を返します。

1. Get Your API Key

Create a free account and generate your API key from the dashboard:

  1. Sign up at translateapi.ai/signup
  2. Go to ダッシュボード → API キー
  3. Click "Create API Key" and copy your key

API keys start with ta_ followed by 56 hex characters.

ベース URL: https://api.translateapi.ai/api/v1/
2. Make Your First Request

Replace YOUR_API_KEY with the key from your dashboard:

curl -X POST https://api.translateapi.ai/api/v1/translate/ \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "text": "Hello, world!",
    "target_language": "es"
  }'
import requests

response = requests.post(
    "https://api.translateapi.ai/api/v1/translate/",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
    },
    json={
        "text": "Hello, world!",
        "target_language": "es"
    }
)

result = response.json()
print(result["translated_text"])  # "Hola, mundo!"
const response = await fetch("https://api.translateapi.ai/api/v1/translate/", {
    method: "POST",
    headers: {
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
    },
    body: JSON.stringify({
        text: "Hello, world!",
        target_language: "es"
    })
});

const result = await response.json();
console.log(result.translated_text);  // "Hola, mundo!"
$ch = curl_init("https://api.translateapi.ai/api/v1/translate/");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer YOUR_API_KEY",
        "Content-Type: application/json"
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "text" => "Hello, world!",
        "target_language" => "es"
    ])
]);

$result = json_decode(curl_exec($ch), true);
echo $result["translated_text"];  // "Hola, mundo!"
payload := strings.NewReader(`{
    "text": "Hello, world!",
    "target_language": "es"
}`)

req, _ := http.NewRequest("POST", "https://api.translateapi.ai/api/v1/translate/", payload)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")

resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()

var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result["translated_text"])  // "Hola, mundo!"
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");

var content = new StringContent(
    JsonSerializer.Serialize(new {
        text = "Hello, world!",
        target_language = "es"
    }),
    Encoding.UTF8,
    "application/json"
);

var response = await client.PostAsync("https://api.translateapi.ai/api/v1/translate/", content);
var result = JsonSerializer.Deserialize<JsonElement>(
    await response.Content.ReadAsStringAsync()
);
Console.WriteLine(result.GetProperty("translated_text"));  // "Hola, mundo!"
応答
{
    "translated_text": "Hola, mundo!",
    "source_language": "en",
    "target_language": "es",
    "translations": {
        "es": "Hola, mundo!"
    },
    "character_count": 13,
    "translation_time": 0.45
}

認証

API キーを使ってリクエストを認証します。API キーを作成するには、 ダッシュボード.

ヘッダ認証 (推奨)
Authorization: Bearer ta_your_api_key_here
ApiKey Header
Authorization: ApiKey ta_your_api_key_here
クエリパラメータ
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
API キーを安全に保管してください! クライアントサイドコードや公開リポジトリにこれらを公開しない。

テキストを翻訳

テキストを単一のターゲット言語に翻訳します。

POST https://api.translateapi.ai/api/v1/translate/
リクエストの本文
パラメータ タイプ 必須 説明
text string はい 翻訳するテキスト (最大50,000 文字)
target_language string はい* Target language code (e.g., "es", "fr", "de")
source_language string いいえ Source language code. Default: "auto" (auto-detect)
engine string いいえ Translation engine: "auto" (default), "huggingface", or "madlad". See Translation Models. 翻訳モデル.

* 使用 target_language (文字列) 単一言語または target_languages (array) は複数の意味です マルチターゲット翻訳.

応答
{
    "translated_text": "Hola, mundo!",
    "source_language": "en",
    "target_language": "es",
    "translations": {
        "es": "Hola, mundo!"
    },
    "character_count": 13,
    "translation_time": 0.45
}
Auto-Detection: Omit source_language or set it to "auto" to automatically detect the source language. The detected language is returned in the source_language response field.

マルチターゲット翻訳

単一の要求で複数の言語にテキストを翻訳します。単一の翻訳と同じエンドポイントを使用します。

POST https://api.translateapi.ai/api/v1/translate/
リクエストの本文
{
    "text": "Hello, world!",
    "target_languages": ["es", "fr", "de", "ja"],
    "source_language": "en"
}

使用 target_languages (アレイ) ではなく target_language 複数のターゲットに対して

応答
{
    "source_language": "en",
    "translations": {
        "es": "Hola, mundo!",
        "fr": "Bonjour, monde!",
        "de": "Hallo, Welt!",
        "ja": "こんにちは、世界!"
    },
    "character_count": 52,
    "translation_time": 2.31
}
タイプ: 1つの要求で最大50の言語に翻訳できます。

バッチ翻訳

非同期処理で複数のテキストを一度に翻訳します。結果をバッチで送信し、ポールします。

Limits: Max 100 texts per batch, max 300 total items (texts × target languages). Jobs time out 45 minutes after processing starts.
Speed: Common languages (ES, FR, DE) use fast models (~0.1s/text). Less common languages use our multilingual model (~1-3s/text).
POST https://api.translateapi.ai/api/v1/translate/batch/
ステップ 1: バッチを送信
curl -X POST https://api.translateapi.ai/api/v1/translate/batch/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "texts": ["Hello", "Goodbye", "Thank you"],
    "target_language": "es",
    "source_language": "en"
}'
応答 (HTTP 202 受け入れ)
{
    "job_id": "67535b2b-c9e3-4f82-9499-e237edbc1dd8",
    "status": "pending",
    "total_texts": 3,
    "queue_position": 1,
    "source_language": "en",
    "target_languages": ["es"],
    "character_count": 22,
    "credits_remaining": -1,
    "poll_url": "https://api.translateapi.ai/api/v1/jobs/67535b2b-c9e3-4f82-9499-e237edbc1dd8/"
}
ステップ 2: 結果の投票
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
ポリングの例 (Python)
import time, requests

job_id = response.json()["job_id"]
total = response.json()["total_texts"]
headers = {"Authorization": "Bearer YOUR_API_KEY"}

print(f"Batch submitted: {total} texts (job {job_id})")

while True:
    result = requests.get(f"https://api.translateapi.ai/api/v1/jobs/{job_id}/", headers=headers).json()
    status = result["status"]
    processed = result.get("processed_texts", 0)
    progress = result.get("progress_percentage", 0)

    if status == "completed":
        print(f"Done: {processed}/{total} in {result.get('processing_time', 0):.1f}s")
        translations = result["result_data"]["translations"]
        break
    elif status == "failed":
        raise Exception(result.get("error_message", "Translation failed"))
    elif status == "pending":
        print(f"Queued (position {result.get('queue_position', '?')})")
    else:
        print(f"[{status}] {processed}/{total} ({progress:.0f}%)")

    time.sleep(3)
応答 (完了)
{
    "job_id": "67535b2b-...",
    "status": "completed",
    "processed_texts": 3,
    "total_texts": 3,
    "progress_percentage": 100.0,
    "processing_time": 10.65,
    "result_data": {
        "translations": ["Hola", "Adiós", "Gracias"],
        "source_language": "en",
        "target_language": "es",
        "character_count": 22,
        "processing_time": 10.65
    }
}
Real-Time Progress Tracking
Field 説明
status pending (queued, waiting for a GPU worker), processing (actively translating), completed, failed
processed_texts Number of individual translations completed so far. Updates in real time as each text is translated.
progress_percentage Completion percentage (0-100). Calculated from processed_texts / total_texts.
queue_position Your position in the queue when status is "pending" (1 = next up). Null when processing or completed. Use this to estimate wait time and show queue status to your users.
processing_time Total processing time in seconds (available when completed).
マルチ言語バッチ

複数のテキストを複数の言語に同時に翻訳:

{
    "texts": ["Hello", "Goodbye"],
    "target_languages": ["es", "fr"],
    "source_language": "en"
}
完了した結果データ
{
    "translations": [
        {"es": "Hola", "fr": "Bonjour"},
        {"es": "Adiós", "fr": "Au revoir"}
    ],
    "source_language": "en",
    "target_languages": ["es", "fr"],
    "character_count": 24,
    "processing_time": 2.45
}
リクエストパラメータ
パラメータ タイプ 必須 説明
texts array はい 翻訳する文字列の配列
target_language string はい* 単一言語のターゲット言語コード
target_languages array はい* 複数の言語のターゲット言語コードの配列
source_language string いいえ Source language code. Default: "auto"

* どちらかを指定 target_language もしくは target_languages両方じゃない

Best Practices for Large Workloads
  • Send 1 target language per batch request. This keeps each batch fast and makes progress easy to track.
  • Keep batches at 50-100 texts. Smaller batches complete faster and give you more frequent progress updates.
  • Submit as many batch jobs as you need — our GPU cluster auto-scales to handle demand. Jobs are processed in parallel across multiple instances.
  • On timeout, re-poll the same job_id instead of submitting a new batch. The original job may still be processing on the GPU.
  • Poll every 3-5 seconds. More frequent polling does not speed up processing.

文書翻訳

形式を保持しながら文書全体を翻訳します。複数のファイルフォーマットをサポートします。

POST https://api.translateapi.ai/api/v1/translate/document/
リクエスト (マルチパート/フォームデータ)
パラメータ タイプ 必須 説明
file file はい 翻訳する文書 (最大 10MB)
target_language string はい Target language code (e.g., "es", "fr", "de")
source_language string いいえ Source language code. Default: "auto" (auto-detect)
サポートされているファイルタイプ
Documents
  • .txt - プレーンテキストファイル
  • .docx - Word ドキュメント
  • .pdf - PDF 文書 (スキャンしたものも含む)
Data & Localization
  • .json - JSON ファイル (文字列値を翻訳)
  • .xml - XMLファイル
  • .srt - 字幕ファイル
  • .po / .pot - Gettext 翻訳ファイル
Images (OCR)
  • .jpg / .jpeg - JPEG 画像 (OCR)
  • .png - PNG 画像 (OCR)
  • .tiff / .tif - TIFF 画像 (OCR)
  • .bmp - BMP 画像 (OCR)
  • .webp - WebP 画像 (OCR)
例 (cURL)
# Translate a Word document
curl -X POST https://api.translateapi.ai/api/v1/translate/document/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@document.docx" \
  -F "target_language=es" \
  -F "source_language=en"

# Translate text from an image (OCR)
curl -X POST https://api.translateapi.ai/api/v1/translate/document/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@scanned_page.jpg" \
  -F "target_language=es" \
  -F "source_language=en"
応答
{
    "id": 123,
    "original_filename": "document.docx",
    "file_type": "docx",
    "source_language": "en",
    "target_language": "es",
    "status": "completed",
    "character_count": 5420,
    "translated_file_url": "/media/translated/document_es.docx",
    "created_at": "2024-01-15T10:30:00Z",
    "completed_at": "2024-01-15T10:30:05Z"
}
OCR サポート: 画像ファイルとスキャンした PDF は翻訳前にテキストを抽出するために光学文字認識 (OCR) で処理されます。最良の結果を得るには、明瞭で高解像度の画像を使用してください。
GET https://api.translateapi.ai/api/v1/translate/document/{id}/

ドキュメントの翻訳の状態をチェックし、ダウンロード URL を取得します。

状態値
pending ファイルがアップロードされ、処理を待っています
processing 翻訳中
completed 翻訳完了、ダウンロード可能
failed 翻訳に失敗しました (check error_message)

サポートされている言語

サポートされているすべての言語のリストを取得します。

GET https://api.translateapi.ai/api/v1/translate/languages/
応答
{
    "count": 186,
    "results": [
        {"iso": "en", "name": "English", "en_label": "English"},
        {"iso": "es", "name": "Español", "en_label": "Spanish"},
        {"iso": "fr", "name": "Français", "en_label": "French"},
        ...
    ]
}

View All 186 Languages

Submit Corrections

Suggest a better translation for a given source text. Corrections enter a moderation queue; once approved by our team they surface as "Community Verified" translations for that text.

Note: this endpoint is served from the main domain https://translateapi.ai/api/v1/ (not the api. translation host), and requires an API key.
POST https://translateapi.ai/api/v1/suggestions/
リクエストの本文
Parameter タイプ 説明
source_text string The original text that was translated.
source_language string Source language code (e.g. "en").
target_language string Target language code (e.g. "es").
machine_translation string The machine translation you are correcting.
suggested_translation string Your improved translation (must differ from machine_translation).
Example Request
curl -X POST https://translateapi.ai/api/v1/suggestions/ \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
    "source_text": "Hello, world!",
    "source_language": "en",
    "target_language": "es",
    "machine_translation": "Hola, mundo!",
    "suggested_translation": "¡Hola, mundo!"
}'
応答
{
    "id": 4213,
    "status": "pending",
    "created": true,
    "message": "Correction submitted for review."
}

Re-submitting the same source/language pair updates your existing suggestion instead of creating a duplicate (returns 200 with "created": false).

翻訳モデル

私たちは自社のGPUインフラストラクチャ上で動作する最新のオープンソース翻訳モデルを使用しています。すべてのモデルは商業的にライセンスされています(Apache 2.0)。

モデル 言語 ベスト・フォー
Helsinki-NLP/opus-mt 50以上の言語ペア 共通言語(英語,スペイン語,フランス語,ドイツ語,イタリア語,ポルトガル語,ロシア語,中国語,日本語など)
Google MADLAD-400 400以上の言語 希少言語、総合的なカバレッジ

この API は、あなたの言語ペアに最適なモデルを自動的に選択します。 engine パラメータ:

エンジン 説明
"auto" デフォルト。最初に HuggingFace を試み、MADLAD-400 に戻ります
"huggingface" Force HuggingFace/MarianMT (最速、50以上の言語)
"madlad" フォースMADLAD-400(400以上の言語)

エラーハンドリング

APIは標準HTTPステータスコードを使用して成功か失敗を示す。

コード 説明
200 サクセス
202 Accepted — Batch job queued successfully
400 Bad Request — Invalid parameters (missing text, unsupported language, etc.)
401 無効 - API キーが無効または欠けています
402 Payment Required — Character credits exhausted. Upgrade your plan or purchase a top-up.
403 Forbidden — API key lacks required scope or IP not in whitelist
503 サービスが利用できません - 翻訳エンジンが一時的にダウン
エラー応答フォーマット
{
    "error": "insufficient_credits",
    "credits_remaining": 0
}

Usage Limits

TranslateAPI has no request rate limits. All requests are queued and processed by our auto-scaling GPU cluster. Your plan determines your monthly character allowance:

プラン 文字/月 Batch API Documents プライス
フリー 250,000 $0 無料登録
スター 2,500,000 $9/モー 購読
プロ 10,000,000 $29/モー 購読
ビジネス 40,000,000 $79/モー 購読
スケール 125,000,000 $199/モー 購読
Enterprise Unlimited $499/モー Contact Sales

制限を超えたら 402 Payment Required 来月まで応答しないと アップグレードできない

Auto-Scaling Cloud Infrastructure

TranslateAPI runs on dedicated NVIDIA A100 GPU instances with automatic horizontal scaling. When demand increases, additional GPU instances are launched within minutes to maintain fast response times. All requests are queued and processed — send hundreds of concurrent requests and they'll all be handled. Real-time translations get priority, batch jobs process in the background.

Need More Credits?

Run out of characters mid-month? Purchase a one-time credit top-up without changing your plan. View top-up packs

このページを評価
ありがとうございました
/5 基づいて 評価