Translator
Terjemahkan teks antarbahasa lewat Google, MyMemory, atau model AI pilihan Anda.
Terjemahkan teks tunggal atau array (maks. 5.000 karakter, 50 item) ke puluhan bahasa dengan deteksi bahasa sumber otomatis. Mode auto mencoba Google, lalu Google Dict, lalu MyMemory dan otomatis melewati provider yang diblokir atau kehabisan kuota. Mode AI memakai model AI Gateway pilihan Anda: format, markdown, dan placeholder {x} dipertahankan, gaya bisa diatur (formal/informal), dan biayanya dipotong dari kredit AI.
- Base URL:
https://api.apipedia.id/v1/translate - Autentikasi:
Authorization: Bearer apk_…(token dari console.apipedia.id) - Kategori: Produktivitas
- Halaman: https://apipedia.id/docs/translator
- OpenAPI: https://console.apipedia.id/openapi/translator.yaml
Semua respons memakai amplop { "is_success", "message", "data" } kecuali disebutkan lain. Kode error umum: lihat https://apipedia.id/docs#kode-status-error.
Endpoint (2)
POST /: Terjemahkan teks atau array teksGET /languages: Daftar bahasa dan provider Translator
Terjemahkan teks atau array teks
POST https://api.apipedia.id/v1/translate
Menerjemahkan satu teks atau array teks ke bahasa target.
Body: text wajib — string maks 5.000 karakter, ATAU array string maks 50 item dengan total maks 5.000 karakter (item kosong dikembalikan apa adanya; translatedText ikut berbentuk array dengan urutan sama); target wajib, kode bahasa seperti en, id, ja, zh-CN (lihat GET /translate/languages; kode BCP-47 lain yang didukung provider juga diterima); source opsional, bawaan auto (dideteksi); provider opsional: auto (bawaan) | google | google-dict | mymemory | ai.
Mode auto mencoba google → google-dict → mymemory. Provider yang gagal (captcha Google /sorry/, halaman HTML, kuota harian MyMemory habis, timeout 10 detik) dilewati; data.attempts mencatat setiap percobaan beserta alasannya, dan data.provider adalah provider yang berhasil. Bila semuanya gagal: 502 dengan data.attempts. Memilih provider tertentu berarti tanpa failover. MyMemory dibatasi 500 byte per potongan, jadi teks panjang dipecah per kalimat lalu disambung ulang.
Mode ai (provider: "ai") memakai AI Gateway dengan token Anda sendiri: model wajib (public id dari GET /ai/models), biaya dipotong dari kredit AI (model gratis memakai kuota harian model gratis), dan API key harus mencakup ai-gateway. Format, markdown, baris baru, dan placeholder ({x}, {{nama}}, %s) dipertahankan; instruksi yang tersisip di teks sumber tidak dijalankan, hanya diterjemahkan. Opsional: formality (formal | informal) dan instructions (maks 300 karakter, hanya gaya/istilah). Contoh:
{ "text": ["Halo {name}, pesanan Anda sudah dikirim.", "Terima kasih!"], "target": "en", "provider": "ai", "model": "gpt-4o-mini", "formality": "formal" }
Jawaban: { "translatedText": ["Hello {name}, your order has been shipped.", "Thank you!"], "source": "id", "target": "en", "provider": "ai", "model": "gpt-4o-mini" }. Bila model mengembalikan jumlah item berbeda dari masukan, jawabannya 502.
Cache: hasil provider non-AI di-cache 6 jam per body yang identik (header X-Cache). Mode ai TIDAK pernah di-cache (Cache-Control: no-store).
Body (application/json, wajib):
{
"text": "Selamat pagi, apa kabar?",
"target": "en",
"source": "auto",
"provider": "auto"
}
Contoh request:
curl -X POST "https://api.apipedia.id/v1/translate" \
-H "Authorization: Bearer apk_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"text":"Selamat pagi, apa kabar?","target":"en","source":"auto","provider":"auto"}'
Contoh respons (200):
{
"is_success": true,
"message": "Teks berhasil diterjemahkan (provider mymemory).",
"data": {
"translatedText": "Good morning, how are you?",
"source": "id",
"target": "en",
"provider": "mymemory",
"attempts": [
{
"provider": "google",
"status": "failed",
"reason": "Diblokir captcha Google (redirect ke /sorry/); IP server dianggap lalu lintas otomatis.",
"ms": 700
},
{
"provider": "google-dict",
"status": "failed",
"reason": "Diblokir captcha Google (redirect ke /sorry/); IP server dianggap lalu lintas otomatis.",
"ms": 607
},
{
"provider": "mymemory",
"status": "success",
"ms": 1052
}
]
}
}
Error khusus endpoint ini:
- 402: Mode ai: kredit AI tidak cukup. Pesan dan status AI Gateway diteruskan apa adanya (403 bila API key tidak mencakup
ai-gateway, 404 model tidak dikenal, 429 kuota model gratis habis) (Kredit AI habis. Beli kredit AI di menu Saldo.)
Daftar bahasa dan provider Translator
GET https://api.apipedia.id/v1/translate/languages
Daftar statis 40 bahasa umum (kode, nama Indonesia, nama Inggris; auto hanya untuk source), provider yang tersedia beserta keterangannya, urutan failover mode auto, dan batas masukan. Kode BCP-47 lain yang didukung provider (mis. pt-BR) tetap diterima POST /translate.
Contoh request:
curl -X GET "https://api.apipedia.id/v1/translate/languages" \
-H "Authorization: Bearer apk_xxxxxxxxxxxxxxxx"
Contoh respons (200):
{
"is_success": true,
"message": "40 bahasa umum dan 5 provider.",
"data": {
"languages": [
{
"code": "auto",
"name": "Deteksi otomatis",
"nameEn": "Detect language",
"sourceOnly": true
},
{
"code": "id",
"name": "Indonesia",
"nameEn": "Indonesian"
},
{
"code": "en",
"name": "Inggris",
"nameEn": "English"
},
{
"code": "jv",
"name": "Jawa",
"nameEn": "Javanese"
},
{
"code": "zh-CN",
"name": "Mandarin (Sederhana)",
"nameEn": "Chinese (Simplified)"
},
{
"code": "ja",
"name": "Jepang",
"nameEn": "Japanese"
}
],
"providers": [
{
"id": "auto",
"name": "Otomatis (bawaan)",
"requiresModel": false,
"cached": true,
"description": "Mencoba google, lalu google-dict, lalu mymemory. Provider yang gagal (captcha, kuota habis, timeout) dilewati; daftar percobaan ada di data.attempts."
},
{
"id": "mymemory",
"name": "MyMemory",
"requiresModel": false,
"cached": true,
"description": "Memori terjemahan publik MyMemory. Kuota harian gratis terbatas; teks dipecah per kalimat (maks. 500 byte per potongan)."
},
{
"id": "ai",
"name": "AI Gateway",
"requiresModel": true,
"cached": false,
"description": "Model AI pilihan Anda (field \"model\", lihat GET /v1/ai/models). Menjaga format, markdown, dan placeholder {x}; mendukung formality dan instructions. Memotong kredit AI dan butuh cakupan ai-gateway; tidak pernah dicache."
}
],
"defaultProvider": "auto",
"autoOrder": [
"google",
"google-dict",
"mymemory"
],
"limits": {
"maxChars": 5000,
"maxItems": 50,
"maxInstructions": 300
},
"note": "Daftar ini contoh bahasa yang umum dipakai. Kode BCP-47 lain yang didukung provider (mis. \"pt-BR\") juga diterima."
}
}