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:
- Daftar masuk di translateapi.ai/signup
- Pergi ke Dashboard → Kekunci API
- Klik "Create API Key" dan salin kekunci anda
Kekunci API bermula dengan ta_ diikuti oleh 56 aksara heks.
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
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
}
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
}
Terjemahan Baru
Terjemah teks berbilang pada satu masa dengan pemprosesan asynchronous. Hantar sepucuk dan undian untuk hasil.
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"
}
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"},
...
]
}
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