Dokumen
Saliyané iku, basa iki uga bisa digunakaké ing aplikasi-aplikasi komputer.
Diwiwiti
TranslateAPI nawakake antarmuka REST sederhana kanggo nerjemahake teks ing antarane 180+ basa. Kabeh titik pungkasan API mbalekaké tanggapan JSON.
1. Get API Key sampeyan
Nggawé akun gratis lan ngasilake kunci API saka dashboard:
- Langganan ing translateapi.ai/signup
- Pindhah menyang Dashboard → Kunci API
- Klik "Create API Key" lan salin kuncimu
Kunci API wiwitan karo ta_ diikuti déning 56 aksara heks.
https://api.translateapi.ai/api/v1/2. Lakukan Panggonan Kapisan
Ngganti YOUR_API_KEY karo kunci saka dashboardmu:
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
}
Otentikasi
Otentikasi pitakonan sampeyan nganggo kunci API. Sampeyan bisa nyipta kunci API saka dashboard.
Otentikasi Kepala (Dianjurake)
Authorization: Bearer ta_your_api_key_here
ApiKey Header
Authorization: ApiKey ta_your_api_key_here
Parameter pitakonan
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Terjemahake Teks
Terjemah teks ing siji basa target.
POST https://api.translateapi.ai/api/v1/translate/
Badan pitakonan
| Paramèter | Tipe | Diperlukan | Keterangan |
|---|---|---|---|
text |
string | Ya | Teks kanggo diterjemahake (maksimum 50,000 karakter) |
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 pitados), "huggingface", utawa "madlad". Lihat Model terjemahan. Transliterasi. |
* Nggunakake target_language (string) kanggo basa tunggal utawa target_languages (array) kanggo multiple. Lihat Multi-Target Translation.
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 atur dadi "auto" kanggo kanthi otomatis ndeteksi basa sumber. Basa sing ditemokaké bakal dikembalikan ing source_language Jawaban
Multi-Target Translation
Nerjemahaké teks menyang pirang-pirang basa ing pitakon tunggal. Nggunakaké titik pungkasan sing padha kaya terjemahan tunggal.
POST https://api.translateapi.ai/api/v1/translate/
Badan pitakonan
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
Nggunakake target_languages (array) ngganti target_language (string) kanggé sapérangan target.
Balasan
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
Pangertèn
Terjemahaké tèks kang akèh ing wektu kang padha karo pamrosesan async. Kirimi batch lan poll kanggo asil.
POST https://api.translateapi.ai/api/v1/translate/batch/
Step 1: Submit 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 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)
Balasan (karampungan)
{
"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
| Lapangan | Keterangan |
|---|---|
status |
pending (ing gulungan, ngarep-arep GPU worker), processing (aktif nerjemahake), completed, failed |
processed_texts |
Jumlah terjemahan individu sing wis rampung nganti saiki. Dioptimalake ing wektu nyata nalika saben teks diterjemahaké. |
progress_percentage |
Persentase rampung (0-100). Dikalkulake saka processed_texts / total_texts. |
queue_position |
Posisi sampeyan ing gulungan nalika status "ngadhepi" (1 = sabanjuré). Null nalika diproses utawa rampung. Gunakaké iki kanggo ngitung wektu ngenteni lan nyritakaké status gulungan marang pangguna. |
processing_time |
Total wektu pamrosesan ing detik (bisa nalika rampung). |
Multi-Basa Batch
Terjemahaké akèh teks menyang akèh basa bebarengan:
{
"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
| Paramèter | Tipe | Diperlukan | Keterangan |
|---|---|---|---|
texts |
array | Ya | Array strings kanggo diwaca |
target_language |
string | Ya* | Kode basa target kanggo basa tunggal |
target_languages |
array | Ya* | Array saka kodhe basa target kanggo pirang-pirang basa |
source_language |
string | Ora | Source language code. Default: "auto" |
* Nyawiji salah sijine target_language utawa target_languages, ora loro.
Best Practices for Large Workloads
- Kirim 1 basa target saben panjaluk batch. Iki tetep saben batch cepet lan ndadèkaké kemajuan gampang dilacak.
- Njaga batches ing 50-100 teks. Batches sing luwih cilik rampung luwih cepet lan menehi sampeyan pembaharuan kemajuan sing luwih asring.
- Sebar akèh tugas batch kaya sing dibutuhaké - GPU cluster kita otomatis-skala kanggo ngontrol permintaan. Tugas diproses kanthi paralel liwat pirang-pirang instansi.
- Nalika timeout, polling maneh job_id kang padha tinimbang ngirim batch anyar. Tugas asli bisa isih diproses ing GPU.
- Polling saben 3-5 detik. Polling kang luwih kerep ora bakal ningkataké pamrosesan.
Dokumen
Nerjemahaké kabèh dokumèn kanthi nglestariaké formating. Ndukung macem-macem format file.
POST https://api.translateapi.ai/api/v1/translate/document/
Panggonan (multipart/form-data)
| Paramèter | Tipe | Diperlukan | Keterangan |
|---|---|---|---|
file |
file | Ya | Dokumen kang kudu disalin (maksimum 10MB) |
target_language |
string | Ya | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Ora | Source language code. Default: "auto" (auto-detect) |
Tipe Berkas sing Didhukung
Dokumen
.txt- Berkas teks biasa.docx- Dokumen Word.pdf- Dokumen PDF (kalebu sing wis disain)
Data & Lokalisasi
.json- Berkas JSON (ngerjemahake nilai string).xml- XML.srt- Berkas subtitle.po/.pot- Berkas terjemahan Gettext
Gambar (OCR)
.jpg/.jpeg- JPEG (OCR).png- Gambar PNG (OCR).tiff/.tif- Gambar TIFF.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}/
Priksa status terjemahan dokumèn utawa njaluk URL ngunduh.
Nilai Status
pending |
Fayl diundhuh, ngarep-arep diproses |
processing |
Pangertèn |
completed |
Terjemahan rampung, unduh kasedhiya |
failed |
Penerjemahan gagal (cek error_message) |
Basa kang didhukung
Njupuk dhaptar saka kabèh 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"},
...
]
}
Transliterasi
Kita nggunakake model terjemahan sumber terbuka paling anyar sing dioperasikaké ing infrastruktur GPU kita dhewe. Sampeyan model lisensi komersial (Apache 2.0).
| Model | Basa | Paling apik kanggo |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ pasangan basa | Tembung-tembung ing basa Inggris (EN, ES, FR, DE, IT, PT, RU, ZH, JA, lsp.) |
| Google MADLAD-400 | 400+ basa | Basa Indonésia, basa kang paling akèh dipigunakaké. |
API kanthi otomatis milih model kang paling apik kanggo pasangan basamu. Sampeyan bisa nyedhiyani pilihan engine Paramèter:
| Mesin | Keterangan |
|---|---|
"auto" |
Panggonan piawai. Ngupaya HuggingFace pisanan, bali menyang MADLAD-400 |
"huggingface" |
Force HuggingFace/MarianMT (paling cepet, 50+ basa) |
"madlad" |
Dhèwèké duwé 400+ lagu. |
Ngatur Kesalahan
API iki nggunakake kode status HTTP standar kanggo nyritakaké sukses utawa gagal.
| Kode | Keterangan |
|---|---|
| 200 | Sukses |
| 202 | Diterima — tugas batch wis sukses diunggah ing gulungan |
| 400 | Panggonan ora bener - Paramèter ora sah (teks kang ilang, basa kang ora didhukung, lsp.) |
| 401 | Ora sah - Kunci API ora sah utawa ilang |
| 402 | Pembayaran Diperlukan — Karakter kredit wis rampung. Upgrade rencanamu utawa tuku tambahan. |
| 403 | Dilarang — Kunci API ora ana ing skop sing dibutuhake utawa IP ora ana ing daftar putih |
| 503 | Service Unavailable - Translation engine temporarily down |
Format Balasan Kesalahan
{
"error": "insufficient_credits",
"credits_remaining": 0
}
Batas Pangguna
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:
| Planit | Karakter/wulan | Batch API | Dokumen | Regane | |
|---|---|---|---|---|---|
| Bebas | 250,000 | — | — | $0 | Sign Up Free |
| Starter | 2,500,000 | $9/mnt | Langganan | ||
| Pro | 10,000,000 | $29/mnt | Langganan | ||
| Bisnis | 40,000,000 | $79/mnt | Langganan | ||
| Skala | 125,000,000 | $199/mnt | Langganan | ||
| Enterprise | Unlimited | $499/mnt | Contact Sales |
Nalika sampeyan ngluwihi watesan, sampeyan bakal nampa 402 Payment Required respon nganti wulan sabanjuré utawa sampeyan nganyari.
Infrastruktur awan kanthi otomatis-skala
TranslateAPI dijalanaké ing instansi GPU NVIDIA A100 kanthi skala horisontal otomatis. Nalika panjaluk tambah, instansi GPU tambahan diluncuraké sajrone menit kanggo njaga wektu tanggapan cepet. Sedaya pitakonan diurutake lan diproses — kirim ratusan pitakonan sing padha lan bakal ditangani. Penerjemahan real-time entuk prioritas, proses tugas batch ing latar mburi.
Keperluan kredit luwih?
Ketok karakter ing tengah wulan? Tuku kredit tambahan siji-wektu tanpa ngganti rencanamu. Papan top-up