Dokumentasyon ng API
> Isama ang malakas na pagsasalin sa iyong mga aplikasyon sa aming simpleng REST API.
Getting Started
Ang TranslateAPI ay nagbibigay ng isang simpleng REST interface para sa pagsasalin ng teksto sa pagitan ng 180+ wika. Lahat ng API endpoints bumalik JSON tugon.
1. Kumuha ng iyong API Key
> Lumikha ng isang libreng account at bumuo ng iyong API key mula sa dashboard:
- Mag-sign up sa translateapi.ai/signup
- Pumunta sa Dashboard → Mga API key
- > I-click ang "Lumikha ng API Key" at kopyahin ang iyong key
> API key simulan sa ta_ Ang bayan ng Taal ay nahahati sa 56 na mga barangay.
https://api.translateapi.ai/api/v1/2. Gumawa ng Iyong Unang Paghiling
> Palitan ang YOUR_API_KEY sa susi mula sa iyong dashboard:
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!"
Tugon
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
Pag-authenticate
> Authenticate ang iyong mga kahilingan gamit ang isang API key. Maaari mong lumikha ng mga API key mula sa iyong > dashboard.
> Header Authentication (Inirerekumenda)
Authorization: Bearer ta_your_api_key_here
Padron:ApiKey header
Authorization: ApiKey ta_your_api_key_here
Query Parameter
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Isalin ang Teksto
> Isalin ang teksto sa isang solong target na wika.
POST https://api.translateapi.ai/api/v1/translate/
> Hugis ng kahilingan
| Parameter | Uri | Kinakailangan | Paglalarawan |
|---|---|---|---|
text |
string | Oo | > Teksto upang isalin (max 50,000 mga character) |
target_language |
string | Oo* | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Hindi | Source language code. Default: "auto" (auto-detect) |
engine |
string | Hindi | > Translation engine: "auto" (default), "huggingface", o "madlad". Tingnan ang mga Modelo ng Pagsasalin. Mga Modelo ng Pagsasalin. |
* Gamitin target_language tl> (string) para sa solong wika o target_languages > (array) para sa maramihang. Tingnan Multi-Target na Pagsasalin.
Tugon
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
source_language o itakda ito sa "auto" tl> upang awtomatikong matukoy ang wikang pinagmulan. Ang wika na natuklasan ay ibabalik sa source_language > tugon patlang.
Multi-Target na Pagsasalin
> Isalin ang teksto sa maramihang mga wika sa isang solong kahilingan. Ginagamit ang parehong endpoint bilang solong pagsasalin.
POST https://api.translateapi.ai/api/v1/translate/
> Hugis ng kahilingan
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
Gamitin target_languages > (array) sa halip ng target_language tl> (string) para sa maraming mga target.
Tugon
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
Pagsasalin ng batch
> Isalin ang maramihang mga teksto nang sabay-sabay sa async processing. Ipadala ang isang batch at poll para sa mga resulta.
POST https://api.translateapi.ai/api/v1/translate/batch/
> Hakbang 1: Ipadala ang 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"
}'
> Tugon (HTTP 202 Tinanggap)
{
"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/"
}
> Hakbang 2: Poll para sa mga Resulta
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
tl> Polling Halimbawa (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)
Tugon (natapos)
{
"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 pagsubaybay
| Patlang | Paglalarawan |
|---|---|
status |
pending > (na-queued, naghihintay para sa isang GPU manggagawa), processing (aktibong pagsasalin), completed, failed |
processed_texts |
> Bilang ng mga indibidwal na pagsasalin natapos kaya malayo. Update sa real time bilang bawat teksto ay isinalin. |
progress_percentage |
> Pagkumpleto porsyento (0-100). Kinakalkula mula sa processed_texts / total_texts. |
queue_position |
> Ang iyong posisyon sa queue kapag ang katayuan ay "pending" (1 = susunod na up). Null kapag pagpoproseso o nakumpleto. Gamitin ito upang asahan ang oras ng paghihintay at ipakita ang katayuan ng queue sa iyong mga gumagamit. |
processing_time |
> Total oras ng pagpoproseso sa segundo (na magagamit kapag nakumpleto). |
Multi-Language batch
> Isalin ang maraming mga teksto sa maraming mga wika nang sabay-sabay:
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
Natapos na result_data
{
"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
}
tl> Humingi ng Parameter
| Parameter | Uri | Kinakailangan | Paglalarawan |
|---|---|---|---|
texts |
array | Oo | > Array ng mga string upang isalin |
target_language |
string | Oo* | > Target na wika code para sa solong wika |
target_languages |
array | Oo* | > Array ng target na mga code ng wika para sa maramihang mga wika |
source_language |
string | Hindi | Source language code. Default: "auto" |
* Magbigay ng alinman sa target_language o target_languages, hindi ang dalawa.
> Pinakamahusay na Practices para sa Malaking Workloads
- > Ipadala 1 target na wika bawat batch na kahilingan. Ito ay nananatiling bawat batch mabilis at ginagawang progreso madaling subaybayan.
- > Keep batches sa 50-100 mga teksto. Mas maliit na batches makumpleto mas mabilis at magbigay sa iyo ng mas madalas na mga update ng progreso.
- > Mag-submit ng bilang ng mga batch trabaho bilang kailangan mo - ang aming GPU cluster auto-scales upang hawakan ang demand. Mga trabaho ay pinoproseso sa parallel sa maraming mga kaso.
- > Sa timeout, muling-poll ang parehong job_id sa halip ng pagsusumite ng isang bagong batch. Ang orihinal na trabaho ay maaaring pa rin ang pagpoproseso sa GPU.
- > Poll bawat 3-5 segundo. Mas madalas na polling ay hindi mapabilis ang pagpoproseso.
Pagsasalin ng Dokumento
tl> Isalin buong mga dokumento habang pinapanatili ang pag-format. Suporta sa maraming mga format ng file.
POST https://api.translateapi.ai/api/v1/translate/document/
> Humingi (multipart / form-data)
| Parameter | Uri | Kinakailangan | Paglalarawan |
|---|---|---|---|
file |
file | Oo | > Ang dokumento upang isalin (max 10MB) |
target_language |
string | Oo | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Hindi | Source language code. Default: "auto" (auto-detect) |
Suportahan Uri ng File
Mga dokumento
.txt- tl> Mga simpleng file ng teksto.docx- Mga dokumento ng Word.pdf- > PDF dokumento (kabilang ang scanned)
Data & Lokalisasyon
.json- > JSON file (nagsasalin string halaga).xml- Mga file ng XML.srt- Mga file ng subtitle.po/.pot- > Gettext mga file ng pagsasalin
Mga imahe (OCR)
.jpg/.jpeg- Mga imahe ng JPEG (OCR).png- Mga imahe ng PNG (OCR).tiff/.tif- Mga imahe ng TIFF (OCR).bmp- Mga imahe ng BMP (OCR).webp- Mga imahe ng WebP (OCR)
Halimbawa (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"
Tugon
{
"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"
}
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
> Tingnan ang katayuan ng isang pagsasalin ng dokumento o makuha ang URL ng pag-download.
Mga halaga ng katayuan
pending |
tl> File na-upload, naghihintay na maproseso |
processing |
Pagsasalin sa progreso |
completed |
> Pagsasalin kumpleto, i-download ang magagamit |
failed |
tl> Pagsasalin nabigo (tingnan ang error_message) |
tl> Suportadong Wika
> Kumuha ng listahan ng lahat ng mga suportadong wika.
GET https://api.translateapi.ai/api/v1/translate/languages/
Tugon
{
"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"},
...
]
}
Mga Modelo ng Pagsasalin
> Ginagamit namin ang state-of-the-art na open source na mga modelo ng pagsasalin na tumatakbo sa aming sariling imprastraktura ng GPU. Lahat ng mga modelo ay komersyal na lisensyado (Apache 2.0).
| Modelo | Mga wika | Pinakamahusay para sa |
|---|---|---|
| Helsinki-NLP/opus-mt | > 50 + pares ng wika | > Karaniwang wika (EN, ES, FR, DE, IT, PT, RU, ZH, JA, atbp.) |
| Google MADLAD-400 | > 400+ wika | > Bihirang wika, kumpletong coverage |
> Ang API awtomatikong pumipili ng pinakamahusay na modelo para sa iyong pares ng wika. Maaari mong piliing tukuyin ang isang engine Parameter:
| Engine | Paglalarawan |
|---|---|
"auto" |
> Default. Sinusubukan HuggingFace una, bumabalik sa MADLAD-400 |
"huggingface" |
> Puwersa HuggingFace / MarianMT (pinabilis, 50+ wika) |
"madlad" |
> Puwersa MADLAD-400 (400+ wika) |
Error Handling
Ang API ay gumagamit ng mga standard na HTTP status codes upang ipahiwatig ang tagumpay o kabiguan.
| Kodigo | Paglalarawan |
|---|---|
| 200 | Tagumpay |
| 202 | > Tinanggap — Batch trabaho natigil matagumpay |
| 400 | > Bad Request - Hindi wastong mga parameter (nawawalang teksto, hindi suportadong wika, atbp) |
| 401 | tl> Hindi pinahihintulutan - Hindi wasto o nawawala API key |
| 402 | > Pagbabayad na Kinakailangan — Naubos na ang mga credit ng character. I-upgrade ang iyong plano o bumili ng top-up. |
| 403 | > Pinahihintulutan — API key kakulangan kinakailangang saklaw o IP hindi sa whitelist |
| 503 | > Serbisyo Hindi magagamit - Translation engine pansamantalang down |
Error sa Format ng Tugon
{
"error": "insufficient_credits",
"credits_remaining": 0
}
Limitasyon sa Paggamit
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:
| Plano | Mga Karakter/Buwan | Bagong API | Mga dokumento | Presyo | |
|---|---|---|---|---|---|
| Libre | 250,000 | — | — | $0 | Mag-sign up para sa libreng |
| Simula | 2,500,000 | $9/ML | Mag-subscribe | ||
| Pro | 10,000,000 | $29/ML | Mag-subscribe | ||
| Negosyo | 40,000,000 | $79/ML | Mag-subscribe | ||
| Scale | 125,000,000 | $199/ML | Mag-subscribe | ||
| Enterprise | Unlimited | $499/ML | Contact Sales |
> Kapag lumampas ka sa iyong limitasyon, makakatanggap ka ng 402 Payment Required > tugon hanggang sa susunod na buwan o i-upgrade mo.
Auto-Scaling Cloud Infrastructure
Ang TranslateAPI ay tumatakbo sa mga dedikadong NVIDIA A100 GPU instance na may awtomatikong pahalang na pag-scaling. Kapag tumaas ang demand, ang karagdagang mga GPU instance ay inilunsad sa loob ng ilang minuto upang mapanatili ang mabilis na oras ng tugon. Ang lahat ng mga kahilingan ay naka-queue at naproseso — magpadala ng daan-daang mga kaparehong kahilingan at lahat sila ay hahawakan.
Kailangan ng Higit pang mga Credits?
> Naubos ang mga character sa kalagitnaan ng buwan? Bumili ng isang beses na credit top-up nang hindi nagbabago ang iyong plano. Tingnan ang mga top-up pack