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.
https://api.translateapi.ai/api/v1/
Startup Cepet
Nggawe pitakon terjemahan pisananmu:
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!"
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
static async Task Main()
{
var client = new HttpClient();
client.DefaultRequestHeaders.Add(
"Authorization", "Bearer YOUR_API_KEY"
);
var content = new StringContent(
JsonConvert.SerializeObject(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 = await response.Content.ReadAsStringAsync();
var data = JsonConvert.DeserializeObject<dynamic>(result);
Console.WriteLine(data.translated_text); // "Hola, mundo!"
}
}
Otentikasi
Otentikasi pitakonan sampeyan nganggo kunci API. Sampeyan bisa nyipta kunci API saka dashboard.
Otentikasi Kepala (Dianjurake)
Authorization: Bearer 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) |
* 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
}
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"Completed: {processed}/{total} texts in {result.get('processing_time', 0):.1f}s")
translations = result["result_data"]["translations"]
break
elif status == "failed":
print(f"Failed at {processed}/{total}: {result.get('error_message', 'unknown')}")
raise Exception(result.get("error_message", "Translation failed"))
elif status == "pending":
queue_pos = result.get("queue_position", "?")
print(f"Queued (position {queue_pos}) — waiting for GPU worker...")
else:
print(f"[{status}] {processed}/{total} ({progress:.0f}%)")
time.sleep(3)
Balasan (ngadhepi — ing gulungan, ngadhepi GPU)
{
"job_id": "67535b2b-...",
"status": "pending",
"processed_texts": 0,
"total_texts": 3,
"progress_percentage": 0.0,
"queue_position": 3
}
Balasan (sadurungé pamrosesan)
{
"job_id": "67535b2b-...",
"status": "processing",
"processed_texts": 1,
"total_texts": 3,
"progress_percentage": 33.33,
"queue_position": null
}
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
Saben balasan poll ngemot medan kemajuan real-time supados sampeyan bisa ngawasi persis apa kang kedadeyan karo batch sampeyan:
| Lapangan | Keterangan |
|---|---|
status |
Keadaan tugas saiki: 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é. |
total_texts |
Jumlah total terjemahan ing batch iki (teks × basa target). |
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). |
status iku "pending", pegawé GPU sibuk karo batches liya. queue_position kanggo ndeleng sapérangan tugas kang luwih dhisik tinimbang sampeyan (1 = sampeyan sing sabanjuré). Tugas sampeyan bakal diwiwiti kanthi otomatis — ora ana tindakan sing dibutuhaké, mung terus polling.
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.
- Laraké paling akèh 2 tugas batch kang padha. GPU ngolah 2 tugas batch kanthi paralel — tugas tambahan ing gulungan lan ora bakal diwiwiti luwih cepet.
- 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.
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.
job_id. Lubung GET /api/v1/jobs/{job_id}/ nganti status iku "completed", banjur baca result_data Pangguna progress_percentage to track progress.
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
.txt- Berkas teks biasa.docx- Dokumen Word.pdf- Dokumen PDF (kalebu sing wis disain).json- Berkas JSON (ngerjemahake nilai string).xml- XML
.srt- Berkas subtitle.po/.pot- Berkas terjemahan Gettext.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"
.txt file.
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"
}
Nilai Status
pending |
Fayl diundhuh, ngarep-arep diproses |
processing |
Pangertèn |
completed |
Terjemahan rampung, unduh kasedhiya |
failed |
Penerjemahan gagal (cek error_message) |
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
Priksa status terjemahan dokumèn utawa njaluk URL ngunduh.
Balasan
{
"id": 123,
"original_filename": "document.docx",
"status": "completed",
"translated_file_url": "/media/translated/document_es.docx",
"character_count": 5420
}
Deteksi Basa
Deteksi basa kawangun ing saben pitakon terjemahan. Set source_language to "auto" (utawa lali iku) lan basa kang ditemokaké bakal dikembalikan ing balasan.
POST https://api.translateapi.ai/api/v1/translate/
Badan pitakonan
{
"text": "Bonjour, comment allez-vous?",
"target_language": "en"
}
Balasan
{
"translated_text": "Hello, how are you?",
"source_language": "fr",
"target_language": "en",
"translations": {
"en": "Hello, how are you?"
},
"character_count": 28,
"translation_time": 0.52
}
The source_language pérangan ing balasan mènèhi basa kang ditemokaké nalika deteksi otomatis digunakaké.
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 |
400 |
Panjaluk ala - Parameter ora sah |
401 |
Ora sah - Kunci API ora sah utawa ilang |
402 |
Pembayaran Diperlukan - Kuota aksara saben dina ngluwihi |
429 |
Akèh pitakon - wates kacepetan ngluwihi |
503 |
Service Unavailable - Translation engine temporarily down |
Format Balasan Kesalahan
{
"error": "daily_limit_exceeded",
"credits_remaining": 0,
"daily_limit": 100000
}
Batas laju
Limits vary by plan. See pricing kanggo rincian lengkap:
| Planit | Karakter/wulan | 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 |
Nalika sampeyan ngluwihi watesan, sampeyan bakal nampa 429 Too Many Requests respon nganti wulan sabanjuré utawa sampeyan nganyari.
Infrastruktur awan kanthi otomatis-skala
TranslateAPI dijalanaké ing instansi GPU NVIDIA A100 kanthi skala horisontal otomatis. Nalika permintaan tambah, instansi GPU tambahan diluncuraké sajrone menit kanggo njaga wektu respons cepet. Iki tegese API kita bisa ngontrol pitakonan konco tanpa wates tanpa degradasi - saka siji pitakonan nganti ewu per menit.