Dokumen
Nggabungake terjemahan kuat menyang aplikasi sampeyan karo REST API sederhana kita.
Getting Started
TranslateAPI nyadiakeun antarmuka REST sederhana pikeun ngawaler teks antara 180+ basa. Sadaya titik tungtung API balikkeun tanggapan JSON.
1. Get Your API Key
Nggawe akun gratis lan ngasilake kunci API saka dashboard:
- Daftar ing translateapi.ai/signup
- P_ariksa Dashboard → Kunci API
- Klik "Create API Key" lan salinan kunci sampeyan
API keys start with ta_ diikuti oleh 56 karakter hex.
https://api.translateapi.ai/api/v1/2. Nggawe Panggonan Kapisan
Ganti YOUR_API_KEY karo kunci saka dashboard sampeyan:
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
}
Autentikasi
Autentikasi pitakonan nganggo kunci API. Sampeyan bisa nyipta kunci API saka dashboard.
Autentikasi bagéan ndhuwur (dianjurake)
Authorization: Bearer ta_your_api_key_here
ApiKey Header
Authorization: ApiKey ta_your_api_key_here
Parameter Query
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Түүхий текст
Terjemah teks menyang siji basa tujuan.
POST https://api.translateapi.ai/api/v1/translate/
Tubuh Panggonan
| Parameter | _Jenis | Diperlukan | Keterangan |
|---|---|---|---|
text |
string | Iya | Teks kanggo diterjemahake (nganti 50.000 aksara) |
target_language |
string | Ya* | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Ora | Source language code. Default: "auto" (auto-detect) |
engine |
string | Ora | Mesin terjemahan: "auto" (piranti lunak), "huggingface", utawa "madlad". Lihat Model Penerjemahan. Model terjemahan. |
* Gunakan target_language (string) kanggo basa tunggal utawa target_languages (array) kanggo multiple. Lihat Terjemahan multi-target.
Balasan
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
source_language utawa aturke dadi "auto" kanggo ngenali basa sumber kanthi otomatis. Basa sing ditemokake bakal dikembalikan ing kolom source_language Jawaban
Terjemahan multi-target
Nerjemahkeun teks kana sababaraha basa dina panyungsi tunggal. Ngagunakeun titik akhir anu sami sareng panyungsi tunggal.
POST https://api.translateapi.ai/api/v1/translate/
Tubuh Panggonan
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
Pangguna target_languages (array) ngganti target_language (string) kanggo target ganda.
Balasan
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
Terjemah
Terjemahkeun sababaraha teks sakaligus nganggo pamrosésan async. Kirim batches sarta polls pikeun hasil.
POST https://api.translateapi.ai/api/v1/translate/batch/
Langkah 1: Kirim 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"
}'
Jawaban (HTTP 202 Diterima)
{
"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: Poll for Results
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)
Jawaban (rampung)
{
"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
}
}
Pelacakan kemajuan wektu nyata
| Lapangan | Keterangan |
|---|---|
status |
pending (kapungkur, ngenteni GPU worker), processing (aktif nerjemahake), completed, failed |
processed_texts |
Jumlah terjemahan individu anu réngsé dugi ka ayeuna. Ngamutahirkeun dina waktu nyata nalika unggal teks diterjemahkeun. |
progress_percentage |
Persén réngsé (0-100). Dikalkulasi ti processed_texts / total_texts. |
queue_position |
Posisi anjeun dina gulungan lamun statusna "ngadatar" (1 = saterusna). Null lamun diolah atawa réngsé. Gunakeun ieu pikeun ngukur waktos tunggu sarta némbongkeun status gulungan ka pamaké anjeun. |
processing_time |
Total waktos pamrosésan dina detik (disadiakeun nalika réngsé). |
Multi-Language Batch
Terjemahake sawetara teks menyang pirang-pirang basa sekaligus:
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
Hasil_data rampung
{
"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 pitakonan
| Parameter | _Jenis | Diperlukan | Keterangan |
|---|---|---|---|
texts |
array | Iya | Array strings kanggo disalin |
target_language |
string | Ya* | Kode basa target kanggo basa tunggal |
target_languages |
array | Ya* | Array saka kode basa target kanggo akeh basa |
source_language |
string | Ora | Source language code. Default: "auto" |
* Nyawiji salah siji target_language utawa target_languages, ora loro.
Best Practices kanggo Workloads gedhe
- Kirim 1 basa target per panjaluk batch. Hal ieu ngajaga saben batch gancang sarta ngajadikeun pangwangunan gampang dilacak.
- Ngajaga batches dina 50-100 teks. batches leutik réngsé langkung gancang sarta méré anjeun pangénggalna pamutahiran langkung sering.
- Kirimkeun sajumlah tugas batch anu diperlukeun - GPU cluster urang otomatis-skala pikeun ngarawat permintaan. Tugas diproses sacara paralel ngaliwatan sababaraha instansi.
- Nalika timeout, polling deui job_id anu sami tinimbang ngirimkeun batch anyar. Karya aslina masih bisa diolah dina GPU.
- Polling saben 3-5 detik. Polling langkung sering henteu ngirangan laju pamrosesan.
Terjemahan Dokumen
Terjemahake sakumna dokumén nalika ngalestarikeun pangolahan. Dukung format berkas ganda.
POST https://api.translateapi.ai/api/v1/translate/document/
Panggonan (multipart/form-data)
| Parameter | _Jenis | Diperlukan | Keterangan |
|---|---|---|---|
file |
file | Iya | Dokumen kanggo diterjemahake (maksimum 10MB) |
target_language |
string | Iya | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Ora | Source language code. Default: "auto" (auto-detect) |
Tipe Fail sing Didukung
Dokumen
.txt- Fayil teks biasa.docx- Dokumen Word.pdf- Dokumen PDF (kalebu sing dipindai)
Data & Lokalisasi
.json- Berkas JSON (ngerjemahake nilai string).xml- Fail XML.srt- Fayl subtitle.po/.pot- Fail terjemahan Gettext
Gambar (OCR)
.jpg/.jpeg- Gambar JPEG (OCR).png- Gambar PNG (OCR).tiff/.tif- Gambar TIFF (OCR).bmp- Gambar BMP (OCR).webp- Gambar WebP (OCR)
Conto (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}/
Ngetes status terjemahan dokumèn utawa ngundhuh URL.
Nilai Status
pending |
Berkas wis diunggah, ngenteni diproses |
processing |
Translation in progress |
completed |
Terjemahan rampung, bisa diunduh |
failed |
terjemahan gagal (cek error_message) |
Basa- basa sing didukung
Njupuk dhaptar saka kabeh basa sing didhukung.
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 nganggo model terjemahan sumber terbuka anu paling canggih anu dijalankeun dina infrastruktur GPU urang sorangan. Sadaya model dilisensikan sacara komersial (Apache 2.0).
| Model | Basa | Paling apik kanggo |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ pasangan basa | Basa-basa umum (EN, ES, FR, DE, IT, PT, RU, ZH, JA, lsp.) |
| Google MADLAD-400 | 400+ basa | Basa-basa langka, panglipur komprehensif |
API otomatis milih model sing paling apik kanggo pasangan basa sampeyan. Sampeyan bisa nyetel pilihan engine پارامتر:
| Mesin | Keterangan |
|---|---|
"auto" |
Piawai. Ngupayakake HuggingFace pisanan, banjur bali menyang MADLAD-400 |
"huggingface" |
Force HuggingFace/MarianMT (paling cepet, 50+ basa) |
"madlad" |
Force MADLAD-400 (400+ basa) |
Pengendalian Kesalahan
API nggunakake kode status HTTP standar kanggo nuduhake sukses utawa gagal.
| Kode | Keterangan |
|---|---|
| 200 | Sukses |
| 202 | Diterima — tugas grup diunggah kanthi sukses |
| 400 | Panggonan sing ora bener — Parameter ora sah (teks kang ilang, basa sing ora didhukung, lsp.) |
| 401 | Tanpa ijin - Kunci API ora sah utawa ilang |
| 402 | Pembayaran Diperlukeun — Kredit karakter réngsé. Pamutahiran rencana anjeun atanapi mésér tambahan. |
| 403 | Dilarang — Kunci API ora duwe skop sing dibutuhake utawa IP ora ana ing daftar putih |
| 503 | Service Unavailable - Translation engine temporarily down |
Bentuk Balasan Kesalahan
{
"error": "insufficient_credits",
"credits_remaining": 0
}
Чектөөлөрү
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:
| Plane | Карактар/Ай | API Batch | Dokumen | Harga | |
|---|---|---|---|---|---|
| Bebas | 250,000 | — | — | $0 | Gabung Free |
| Pemula | 2,500,000 | $9/ms | Langganan | ||
| Pro | 10,000,000 | $29/ms | Langganan | ||
| Bisnis | 40,000,000 | $79/ms | Langganan | ||
| Skala | 125,000,000 | $199/ms | Langganan | ||
| Enterprise | Unlimited | $499/ms | Contact Sales |
Nalika sampeyan ngluwihi watesan, sampeyan bakal nampa 402 Payment Required respon nganti wulan sabanjure utawa sampeyan upgrade.
Infrastruktur awan otomatis-skala
TranslateAPI dijalankeun dina instansi GPU NVIDIA A100 anu didedikasikan kalayan skala horisontal otomatis. Nalika paménta naék, instansi GPU tambahan diluncurkeun dina sababaraha menit pikeun ngajaga waktos tanggapan gancang. Sadaya panyungsi diunggah sareng diproses — kirimkeun ratusan panyungsi anu sarua sareng aranjeunna bakal sadayana ditangani. Panyungsi waktos nyata kéngingkeun prioritas, prosés tugas batches dina latar tukang.
Perlu kredit luwih?
Keun karakter tengah bulan? mésér hiji-waktu kredit top-up tanpa ngarobah rencana anjeun. Lihat paket tambahan