Dokumentasi API

Mengintegrasikan terjemahan yang kuat ke dalam aplikasi anda dengan API REST mudah kami.

Memulakan

TranslateAPI menyediakan antaramuka REST mudah untuk menterjemah teks antara 180+ bahasa. Semua titik akhir API mengembalikan maklum balas JSON.

1. Dapatkan Kekunci API Anda

Cipta akaun percuma dan cipta kekunci API anda dari dashboard:

  1. Daftar masuk di translateapi.ai/signup
  2. Pergi ke Dashboard → Kekunci API
  3. Klik "Create API Key" dan salin kekunci anda

Kekunci API bermula dengan ta_ diikuti oleh 56 aksara heks.

URL Asas: https://api.translateapi.ai/api/v1/
2. Buat Permintaan Pertama Anda

Gantikan YOUR_API_KEY dengan kekunci dari dashboard anda:

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!"
Balasan
{
    "translated_text": "Hola, mundo!",
    "source_language": "en",
    "target_language": "es",
    "translations": {
        "es": "Hola, mundo!"
    },
    "character_count": 13,
    "translation_time": 0.45
}

Pengesahan

Sahkan permintaan anda menggunakan kekunci API. Anda boleh cipta kekunci API dari papan pemuka.

Pengesahan Pengepala (Dicadangkan)
Authorization: Bearer ta_your_api_key_here
Pengepala ApiKey
Authorization: ApiKey ta_your_api_key_here
Parameter Pertanyaan
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Simpan kunci API anda dengan selamat! Jangan paparkan mereka dalam kod sisi klien atau repositori awam.

Terjemah Teks

Terjemah teks ke dalam bahasa sasaran tunggal.

POST https://api.translateapi.ai/api/v1/translate/
Tubuh Permintaan
Parameter Jenis Diperlukan Huraian
text string Ya Teks untuk diterjemah (maksimum 50,000 aksara)
target_language string Ya* Target language code (e.g., "es", "fr", "de")
source_language string Tidak Source language code. Default: "auto" (auto-detect)
engine string Tidak Enjin terjemahan: "auto" (piawai), "huggingface", atau "madlad". Lihat Model Terjemahan. Model Terjemahan.

* Guna target_language (rantai) untuk bahasa tunggal atau target_languages (array) untuk berbilang. Lihat Penterjemahan Sasaran Berbilang.

Balasan
{
    "translated_text": "Hola, mundo!",
    "source_language": "en",
    "target_language": "es",
    "translations": {
        "es": "Hola, mundo!"
    },
    "character_count": 13,
    "translation_time": 0.45
}
Autokesan: Langkau source_language atau tetapkannya kepada "auto" untuk mengesan bahasa sumber secara automatik. Bahasa yang dikesan dikembalikan dalam source_language medan respon.

Penterjemahan Sasaran Berbilang

Terjemah teks ke beberapa bahasa dalam satu permintaan. Guna titik akhir yang sama sebagai terjemahan tunggal.

POST https://api.translateapi.ai/api/v1/translate/
Tubuh Permintaan
{
    "text": "Hello, world!",
    "target_languages": ["es", "fr", "de", "ja"],
    "source_language": "en"
}

Guna target_languages (aras) bukannya target_language (string) untuk sasaran berbilang.

Balasan
{
    "source_language": "en",
    "translations": {
        "es": "Hola, mundo!",
        "fr": "Bonjour, monde!",
        "de": "Hallo, Welt!",
        "ja": "こんにちは、世界!"
    },
    "character_count": 52,
    "translation_time": 2.31
}
Jenis: Anda boleh menterjemahkan sehingga 50 bahasa dalam satu permintaan.

Terjemahan Baru

Terjemah teks berbilang pada satu masa dengan pemprosesan asynchronous. Hantar sepucuk dan undian untuk hasil.

Had: Maksimum 100 teks per lombong, maksimum 300 item keseluruhan (teks × bahasa sasaran). Masa tamat kerja 45 minit selepas pemprosesan bermula.
Kelajuan: Bahasa biasa (ES, FR, DE) menggunakan model pantas (~0.1s/teks). Bahasa kurang biasa menggunakan model berbilang bahasa kami (~1-3s/teks).
POST https://api.translateapi.ai/api/v1/translate/batch/
Langkah 1: Hantar Batch
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"
}'
Balasan (HTTP 202 Terima)
{
    "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/"
}
Langkah 2: Soalan untuk Hasil
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Contoh Polling (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)
Balasan (selesai)
{
    "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
    }
}
Penjejak Kemajuan Masa-Asli
Medan Huraian
status pending (berbaris gilir, menunggu pekerja GPU), processing (secara aktif menerjemahkan), completed, failed
processed_texts Bilangan terjemahan individu yang selesai setakat ini. Kemaskini dalam masa nyata apabila setiap teks diterjemahkan.
progress_percentage Peratusan penyelesaian (0-100). Dikira dari processed_texts / total_texts.
queue_position Posisi anda dalam baris gilir bila status adalah "tertangguh" (1 = seterusnya). Null bila diproses atau selesai. Guna ini untuk memperkirakan masa menunggu dan paparkan status baris gilir kepada pengguna anda.
processing_time Jumlah masa pemprosesan dalam saat (ada apabila selesai).
Batch Berbilang-Bahasa

Terjemah teks berbilang ke berbilang bahasa pada satu masa:

{
    "texts": ["Hello", "Goodbye"],
    "target_languages": ["es", "fr"],
    "source_language": "en"
}
Data_hasil selesai
{
    "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
}
Parameter Permintaan
Parameter Jenis Diperlukan Huraian
texts array Ya Aras rentetan untuk diterjemah
target_language string Ya* Kod bahasa sasaran untuk bahasa tunggal
target_languages array Ya* Aras kod bahasa sasaran untuk berbilang bahasa
source_language string Tidak Source language code. Default: "auto"

* Berikan sama ada target_language atau target_languages, bukan kedua-duanya.

Amalan Terbaik untuk Muatan Kerja Besar
  • Hantar 1 bahasa sasaran setiap permintaan kumpulan. Ini menjadikan setiap kumpulan pantas dan menjadikan kemajuan mudah untuk diikuti.
  • Kekalkan bakul pada 50-100 teks. Bakul yang lebih kecil selesai lebih cepat dan memberikan anda kemaskini kemajuan yang lebih kerap.
  • Hantarkan sebanyak kerja-kerja bakul yang anda perlukan — auto-skala kumpulan GPU kami untuk mengendalikan permintaan. Kerja-kerja diproses secara serentak di dalam beberapa instans.
  • Pada tamat masa, kaji semula job_id yang sama bukannya menghantar batch baru. Tugas asal mungkin masih diproses pada GPU.
  • Soal setiap 3-5 saat. Soal yang lebih kerap tidak mempercepat pemprosesan.

Terjemahan Dokumen

Terjemahkan keseluruhan dokumen sambil memelihara formatan. Menyokong beberapa format fail.

POST https://api.translateapi.ai/api/v1/translate/document/
Permintaan (multipart/form-data)
Parameter Jenis Diperlukan Huraian
file file Ya Dokumen untuk diterjemah (maksimum 10MB)
target_language string Ya Target language code (e.g., "es", "fr", "de")
source_language string Tidak Source language code. Default: "auto" (auto-detect)
Jenis fail disokong
Dokumen
  • .txt - Fail teks biasa
  • .docx - Dokumen Word
  • .pdf - Dokumen PDF (termasuk yang diimbas)
Data & Lokalisasi
  • .json - Fail JSON (menterjemah nilai rentetan)
  • .xml - Fail XML
  • .srt - Fail subtajuk
  • .po / .pot - Fail terjemahan Gettext
Imej (OCR)
  • .jpg / .jpeg - Imej JPEG (OCR)
  • .png - Imej PNG
  • .tiff / .tif - Imej TIFF (OCR)
  • .bmp - Imej BMP (OCR)
  • .webp - Imej WebP (OCR)
Contoh (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"
Balasan
{
    "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"
}
Sokongan OCR: Fail imej dan PDF yang diimbas diproses dengan pengenalan aksara optikal (OCR) untuk mengekstrak teks sebelum terjemahan. Untuk hasil terbaik, gunakan imej yang jelas, resolusi tinggi.
GET https://api.translateapi.ai/api/v1/translate/document/{id}/

Semak status terjemahan dokumen atau dapatkan URL muat turun.

Nilai Status
pending Fail dimuat naik, menunggu untuk diproses
processing Penterjemahan sedang berjalan
completed Terjemahan lengkap, muat turun tersedia
failed Terjemahan gagal (periksa error_message)

Bahasa yang disokong

Dapatkan senarai semua bahasa yang disokong.

GET https://api.translateapi.ai/api/v1/translate/languages/
Balasan
{
    "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"},
        ...
    ]
}

Lihat Semua 186 Bahasa

Model Terjemahan

Kami menggunakan model terjemahan sumber terbuka terkini yang berjalan pada infrastruktur GPU kami sendiri. Semua model dilesenkan secara komersial (Apache 2.0).

Model Bahasa Terbaik Untuk
Helsinki-NLP/opus-mt 50+ pasangan bahasa Bahasa umum (EN, ES, FR, DE, IT, PT, RU, ZH, JA, dll.)
Google MADLAD-400 400+ bahasa Bahasa langka, liputan komprehensif

API secara automatik memilih model terbaik untuk pasangan bahasa anda. Anda boleh tentukan secara opsyenal engine parameter:

Enjin Huraian
"auto" Lalai. Cuba HuggingFace pertama, kembali ke MADLAD-400
"huggingface" Paksa HuggingFace/MarianMT (terpantas, 50+ bahasa)
"madlad" Force MADLAD-400 (400+ bahasa)

Pengendalian Ralat

API menggunakan kod status HTTP piawai untuk menunjukkan kejayaan atau kegagalan.

Kod Huraian
200 Kejayaan
202 Terima — Kerja kumpulan diiblis dengan berjaya
400 Permintaan Tidak Baik — Parameter tidak sah (teks hilang, bahasa tidak disokong, dll.)
401 Tidak dibenarkan - Kekunci API tidak sah atau hilang
402 Pembayaran Diperlukan — Kredit aksara habis. Naik taraf rancangan anda atau beli tambahan.
403 Dilarang — Kekunci API kurang skop yang diperlukan atau IP tidak dalam senarai putih
503 Servis tidak tersedia - enjin terjemahan untuk sementara terhenti
Format Balasan Ralat
{
    "error": "insufficient_credits",
    "credits_remaining": 0
}

Had Penggunaan

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:

Pelan Aksara/bulan API Batch Dokumen Harga
Bebas 250,000 $0 Daftar Masuk
Pelancar 2,500,000 $9/ms Langganan
Pro 10,000,000 $29/ms Langganan
Perniagaan 40,000,000 $79/ms Langganan
Skala 125,000,000 $199/ms Langganan
Enterprise Unlimited $499/ms Contact Sales

Apabila anda melebihi had anda, anda akan menerima 402 Payment Required respon sehingga bulan depan atau anda menaik taraf.

Infrastruktur Awan Auto-Skala

TranslateAPI berjalan pada instans GPU NVIDIA A100 khusus dengan skala melintang automatik. Apabila permintaan meningkat, instans GPU tambahan dilancarkan dalam masa beberapa minit untuk mengekalkan masa tindak balas pantas. Semua permintaan diiblis dan diproses — hantar beratus-ratus permintaan serentak dan mereka semua akan ditangani. Penterjemahan masa nyata mendapat keutamaan, proses kerja kumpulan di latar belakang.

Perlukan Lebih Kredit?

Kehabisan aksara pada pertengahan bulan? Beli satu kredit sekali tanpa mengubah rancangan anda. Papar pakej top-up

Nilaikan halaman ini
Terima kasih kerana penilaian anda!
/5 berdasarkan penarafan