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.

URL Dasar: 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
Priksa manawa kunci API sampeyan aman! Nanging, ora ana sing bisa ditemokaké ing situs-situs resmi.

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.

Tip: Sampeyan bisa nerjemahaké nganti 50 basa ing siji panjaluk.
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.

Batas: paling akèh 500 teks saben batch, paling akèh 750 item (teks × basa tujuan). Tugas timeout 30 menit sawisé pamrosesan diwiwiti (wektu tunggu gulungan ora diitung).
Wektu pamrosesan béda-béda miturut basa: basa umum (Spanyol, Prancis, Jerman, lsp.) migunakaké model cepet (~0.1s saben teks), nanging basa sing kurang umum migunakaké model multibasa gedhe (~1-3s saben teks). A 100-teks batch lumrahé rampung ing 10-30 detik kanggo basa umum, utawa 2-5 menit kanggo sing kurang umum. Kanggo asil paling apik, kirim 1 basa target saben panjaluk batch lan jaga ukuran batch ing ngisor 50 teks.
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).
Tip: Nalika 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.

Pangolahan Async: Batch requests return instantly witha 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)
Dukungan OCR: Berkas gambar lan PDF sing dipindai diproses nganggo optical character recognition (OCR) kanggo ngekstrak teks sadurunge terjemahan. Kanggo asil paling apik, gunakake gambar kang jelas, resolusi dhuwur.
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 terjemahan. Output terjemahan 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 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.

Rangking kaca iki
Matur nuwun kanggé rating sampeyan!
/5 dumadi saka ratings