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:

  1. Daftar ing translateapi.ai/signup
  2. P_ariksa Dashboard → Kunci API
  3. Klik "Create API Key" lan salinan kunci sampeyan

API keys start with ta_ diikuti oleh 56 karakter hex.

URL Dasar: 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
Tahan kunci API sampeyan aman! Henteu dianjurkeun pikeun nyiptakeun kode klien-side atanapi repositori publik.

Түүхий текст

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
}
Ditemui kanthi otomatis: _Lepas 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
}
_Ciri: Anjeun bisa narjamahkeun ka nepi ka 50 basa dina hiji pamundut.

Terjemah

Terjemahkeun sababaraha teks sakaligus nganggo pamrosésan async. Kirim batches sarta polls pikeun hasil.

Batas: Max 100 teks per batch, max 300 total item (teks × basa target). Karya timeout 45 menit sanggeus prosés dimimitian.
Kecepatan: Basa umum (ES, FR, DE) nganggo model gancang (~0.1s/teks). Basa anu kurang umum nganggo model multibahasa urang (~1-3s/teks).
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"
}
Сүрөттөр Berkas gambar jeung PDF anu dipindai diolah ku pangidentipikasi aksara optik (OCR) pikeun ngabédakeun téks saméméh diterjemahkeun. Pikeun hasil anu pangalusna, gunakeun gambar anu jelas, resolusi luhur.
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"},
        ...
    ]
}

Lihat kabeh 186 basa

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

Rangking kaca iki
Matur nuwun kanggo rating sampeyan!
/5 berdasarkan pada ratings