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.

URL Dasar: https://api.translateapi.ai/api/v1/
Mulai Cepat

Nggawe pitakon terjemahan kapisanmu:

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!"
    }
}

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
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)

* 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
}

Terjemahan multi-target

Nerjemahkeun teks kana sababaraha basa dina panyungsi tunggal. Ngagunakeun titik akhir anu sami sareng panyungsi tunggal.

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

Batas: max 500 teks per batch, max 750 total item (teks × basa target). Tugas timeout 30 menit sanggeus prosés dimimitian (waiting waktu baris teu diitung).
Waktu pamrosésan béda-béda gumantung kana basa: basa umum (Spanyol, Perancis, Jerman, jsb.) migunakeun model gancang (~0.1s per teks), sedengkeun basa anu kurang umum migunakeun model multibahasa urang anu ageung (~1-3s per teks). A 100-text batch usually completes in 10-30 seconds for common languages, or 2-5 minutes for less common ones. For best results, send 1 target language per batch request and keep batch sizes below 50 texts.
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"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 (ditunggu-tunggu — diurutan, ngenteni GPU)
{
    "job_id": "67535b2b-...",
    "status": "pending",
    "processed_texts": 0,
    "total_texts": 3,
    "progress_percentage": 0.0,
    "queue_position": 3
}
Jawaban (sadurunge diproses)
{
    "job_id": "67535b2b-...",
    "status": "processing",
    "processed_texts": 1,
    "total_texts": 3,
    "progress_percentage": 33.33,
    "queue_position": null
}
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

Saben balasan survei ngawengku medan kemajuan wektu nyata supaya sampeyan bisa ngawasi persis apa sing kedadeyan karo batch sampeyan:

Lapangan Keterangan
status Keadaan tugas saiki: 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.
total_texts Jumlah total terjemahan dina batches ieu (teks × basa target).
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é).
_Ciri: Kapan status is "pending", para pekerja GPU sibuk karo batches liyane. Check queue_position pikeun ningali sabaraha padamelan anu ngadepan padamelan anjeun (1 = anjeun anu salajengna). Padamelan anjeun bakal dimimitian sacara otomatis — teu aya tindakan anu diperlukeun, ngan tetep polling.
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.
  • Laksanakeun paling loba 2 padamelan batches sawaktu-waktu. GPU ngaproses 2 padamelan batches sawaktu-waktu — padamelan tambahan diulit-ulit sarta moal dimimitian langkung gancang.
  • 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.
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.

Pengolahan Async: Panggonan: job_id. Hole GET /api/v1/jobs/{job_id}/ nganti status is "completed", banjur baca result_data kanggo terjemahan. progress_percentage to track progress.

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
  • .txt - Fayil teks biasa
  • .docx - Dokumen Word
  • .pdf - Dokumen PDF (kalebu sing dipindai)
  • .json - Berkas JSON (ngerjemahake nilai string)
  • .xml - Fail XML
  • .srt - Fayl subtitle
  • .po / .pot - Fail terjemahan Gettext
  • .jpg / .jpeg - Gambar JPEG (OCR)
  • .png - Gambar PNG (OCR)
  • .tiff / .tif - Gambar TIFF (OCR)
  • .bmp - Gambar BMP (OCR)
  • .webp - Gambar WebP (OCR)
Сүрөттөр 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.
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"
Berkas gambar diproses nganggo OCR kanggo ngekstrak teks sadurunge diterjemahake. Output diterjemahake dikembalikan minangka .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 Berkas wis diunggah, ngenteni diproses
processing Translation in progress
completed Terjemahan rampung, bisa diunduh
failed terjemahan gagal (cek error_message)
GET https://api.translateapi.ai/api/v1/translate/document/{id}/

Ngetes status terjemahan dokumèn utawa ngundhuh URL.

Balasan
{
    "id": 123,
    "original_filename": "document.docx",
    "status": "completed",
    "translated_file_url": "/media/translated/document_es.docx",
    "character_count": 5420
}

Penemuan Basa

Penemuan basa diwangun ing saben panerjemahan. Set source_language to "auto" (atawa ulah dilaksanakeun) sarta basa anu kapanggih bakal dikembalikeun dina balasan.

POST https://api.translateapi.ai/api/v1/translate/
Tubuh Panggonan
{
    "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 medan dina balasan nunjukkeun basa anu ditéwak nalika deteksi otomatis digunakeun.

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
400 Panjaluk ala - Parameter ora sah
401 Tanpa ijin - Kunci API ora sah utawa ilang
402 Pembayaran Diperlukan - Jumlah aksara saben dina wis ngluwihi
429 Akèh banget panjaluk - wates kecepatan ngluwihi
503 Service Unavailable - Translation engine temporarily down
Bentuk Balasan Kesalahan
{
    "error": "daily_limit_exceeded",
    "credits_remaining": 0,
    "daily_limit": 100000
}

Batas kecepatan

Limits vary by plan. See pricing for full details:

Plane Карактар/Ай 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

Nalika sampeyan ngluwihi watesan, sampeyan bakal nampa 429 Too Many Requests respon nganti wulan sabanjure utawa sampeyan upgrade.

Auto-Scaling Cloud Infrastructure

TranslateAPI runs on dedicated NVIDIA A100 GPU instances with automatic horizontal scaling. When demand increases, additional GPU instances are launched within minutes to maintain fast response times. This means our API can handle virtually unlimited concurrent requests without degradation — from a single request to thousands per minute.

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