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.
https://api.translateapi.ai/api/v1/
Mabilis na Simula
> Gumawa ng iyong unang kahilingan sa pagsasalin:
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!"
}
}
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
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) |
* 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
}
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"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)
> Tugon (pending — naka-queue, naghihintay para sa GPU)
{
"job_id": "67535b2b-...",
"status": "pending",
"processed_texts": 0,
"total_texts": 3,
"progress_percentage": 0.0,
"queue_position": 3
}
> Tugon (habang pagpoproseso)
{
"job_id": "67535b2b-...",
"status": "processing",
"processed_texts": 1,
"total_texts": 3,
"progress_percentage": 33.33,
"queue_position": null
}
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
> Ang bawat tugon poll ay kasama ang real-time na patlang ng progreso kaya maaari mong subaybayan eksakto kung ano ang nangyayari sa iyong batch:
| Patlang | Paglalarawan |
|---|---|
status |
> Kasalukuyang estado ng trabaho: 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. |
total_texts |
> Kabuuang bilang ng mga pagsasalin sa batch na ito (texts × target wika). |
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). |
status Ang "pending", ang mga manggagawa GPU ay abala sa iba pang mga batch. Check queue_position > upang makita kung gaano karaming mga trabaho ay sa harap ng iyong (1 = ikaw ay susunod). Ang iyong trabaho ay awtomatikong magsisimula — walang aksyon na kinakailangan, panatilihin lamang ang polling.
> 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.
- > Patakbuhin sa karamihan2sabay-sabay batch trabaho. Ang GPU proseso2batch sa parallel — karagdagang trabaho queue at hindi magsisimula mas mabilis.
- > 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.
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.
job_id. Talaan GET /api/v1/jobs/{job_id}/ hanggang status ay "completed">, pagkatapos ay basahin result_data tl> para sa pagsasalin. Gamitin progress_percentage > upang subaybayan ang progreso.
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
.txt- tl> Mga simpleng file ng teksto.docx- Mga dokumento ng Word.pdf- > PDF dokumento (kabilang ang scanned).json- > JSON file (nagsasalin string halaga).xml- Mga file ng XML
.srt- Mga file ng subtitle.po/.pot- > Gettext mga file ng pagsasalin.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"
.txt File. nito.
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"
}
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) |
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.
Tugon
{
"id": 123,
"original_filename": "document.docx",
"status": "completed",
"translated_file_url": "/media/translated/document_es.docx",
"character_count": 5420
}
Pagtukoy ng Wika
> Wika detection ay binuo sa bawat kahilingan sa pagsasalin. Set source_language to "auto" tl> (o iwanan ito) at ang natukoy na wika ay ibabalik sa tugon.
POST https://api.translateapi.ai/api/v1/translate/
> Hugis ng kahilingan
{
"text": "Bonjour, comment allez-vous?",
"target_language": "en"
}
Tugon
{
"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
}
Ang source_language tl> patlang sa tugon ay nagpapakita ng natukoy na wika kapag auto-detection ay ginagamit.
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 |
400 |
tl> Masamang kahilingan - Hindi wastong mga parameter |
401 |
tl> Hindi pinahihintulutan - Hindi wasto o nawawala API key |
402 |
> Pagbabayad Kinakailangan - Araw-araw na character quota lumampas |
429 |
> Masyadong Maraming mga kahilingan - Rate limitasyon lumampas |
503 |
> Serbisyo Hindi magagamit - Translation engine pansamantalang down |
Error sa Format ng Tugon
{
"error": "daily_limit_exceeded",
"credits_remaining": 0,
"daily_limit": 100000
}
Limitasyon ng Rate
> Limitasyon ay nag-iiba ayon sa plano. Tingnan Pagpepresyo para sa buong detalye:
| Plano | Mga Karakter/Buwan | 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 |
> Kapag lumampas ka sa iyong limitasyon, makakatanggap ka ng 429 Too Many Requests > tugon hanggang sa susunod na buwan o i-upgrade mo.
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.