Dokumentazzjoni tal-API
Integra traduzzjoni qawwija fl-applikazzjonijiet tiegħek mal-REST API sempliċi tagħna.
Biex tibda
Il-TranslateAPI tipprovdi interfaċċa REST sempliċi għat-traduzzjoni tat-test bejn 180+ lingwa.L-endpoints kollha tal-API jirritornaw tweġibiet JSON.
1. Get Your API Key
Create a free account and generate your API key from the dashboard:
- Sign up at translateapi.ai/signup
- Go to Dashboard → Ċwievet API
- Click "Create API Key" and copy your key
API keys start with ta_ followed by 56 hex characters.
https://api.translateapi.ai/api/v1/2. Make Your First Request
Replace YOUR_API_KEY with the key from your 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!"
Rispons
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
Awtentikazzjoni
Awtentika t-talbiet tiegħek billi tuża ċavetta API. Tista' toħloq ċwievet API mill- pannell tal-kontroll.
Awtentikazzjoni Header (Rakkomandat)
Authorization: Bearer ta_your_api_key_here
ApiKey Header
Authorization: ApiKey ta_your_api_key_here
Parametru tal-mistoqsija
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Ittraduċi t-Test
Ittraduċi test għal lingwa waħda fil-mira.
POST https://api.translateapi.ai/api/v1/translate/
Korp tat-talba
| Parametru | Tip | Meħtieġa | Deskrizzjoni |
|---|---|---|---|
text |
string | Iva | Test li għandu jiġi tradott (massimu ta' 50,000 karattru) |
target_language |
string | Iva* | Target language code (e.g., "es", "fr", "de") |
source_language |
string | L-ebda | Source language code. Default: "auto" (auto-detect) |
engine |
string | L-ebda | Translation engine: "auto" (default), "huggingface", or "madlad". See Translation Models. Mudelli tat-Traduzzjoni. |
* Użu target_language (string) għal lingwa waħda jew target_languages (array) għal multipli. Ara Traduzzjoni b'ħafna miri.
Rispons
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
source_language or set it to "auto" to automatically detect the source language. The detected language is returned in the source_language response field.
Traduzzjoni b'ħafna miri
Ittraduċi test għal lingwi multipli f'talba waħda.Uża l-istess punt aħħari bħala traduzzjoni waħda.
POST https://api.translateapi.ai/api/v1/translate/
Korp tat-talba
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
Użu target_languages (array) minflok target_language (string) għal miri multipli.
Rispons
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
Traduzzjoni tal-lott
Ittraduċi testi multipli f'daqqa bl-ipproċessar async. jissottometti lott u l-istħarriġ għar-riżultati.
POST https://api.translateapi.ai/api/v1/translate/batch/
Pass 1: Ibgħat il-Lott
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"
}'
Rispons (HTTP 202 Aċċettat)
{
"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/"
}
Pass 2: Poll għall-Riżultati
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Polling Eżempju (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)
Tweġiba (ikkompletata)
{
"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
| Field | Deskrizzjoni |
|---|---|
status |
pending (queued, waiting for a GPU worker), processing (actively translating), completed, failed |
processed_texts |
Number of individual translations completed so far. Updates in real time as each text is translated. |
progress_percentage |
Completion percentage (0-100). Calculated from processed_texts / total_texts. |
queue_position |
Your position in the queue when status is "pending" (1 = next up). Null when processing or completed. Use this to estimate wait time and show queue status to your users. |
processing_time |
Total processing time in seconds (available when completed). |
Lott b'ħafna lingwi
Ittraduċi testi multipli għal lingwi multipli f'daqqa:
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
Tlesta 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
}
Parametri tat-talba
| Parametru | Tip | Meħtieġa | Deskrizzjoni |
|---|---|---|---|
texts |
array | Iva | Array ta' kordi li għandhom jiġu tradotti |
target_language |
string | Iva* | Kodiċi tal-lingwa fil-mira għal lingwa waħda |
target_languages |
array | Iva* | Array tal-kodiċijiet tal-lingwa fil-mira għal lingwi multipli |
source_language |
string | L-ebda | Source language code. Default: "auto" |
* Ipprovdi jew target_language jew target_languages, mhux it- tnejn.
Best Practices for Large Workloads
- Send 1 target language per batch request. This keeps each batch fast and makes progress easy to track.
- Keep batches at 50-100 texts. Smaller batches complete faster and give you more frequent progress updates.
- Submit as many batch jobs as you need — our GPU cluster auto-scales to handle demand. Jobs are processed in parallel across multiple instances.
- On timeout, re-poll the same job_id instead of submitting a new batch. The original job may still be processing on the GPU.
- Poll every 3-5 seconds. More frequent polling does not speed up processing.
Traduzzjoni tad-dokument
Ittraduċi dokumenti sħaħ filwaqt li jippreservaw ifformattjar. Jappoġġja formati tal-fajl multipli.
POST https://api.translateapi.ai/api/v1/translate/document/
Talba (multipart/form-data)
| Parametru | Tip | Meħtieġa | Deskrizzjoni |
|---|---|---|---|
file |
file | Iva | Id-dokument li għandu jiġi tradott (massimu ta' 10MB) |
target_language |
string | Iva | Target language code (e.g., "es", "fr", "de") |
source_language |
string | L-ebda | Source language code. Default: "auto" (auto-detect) |
Tipi tal-fajl appoġġjati
Documents
.txt- Fajls ta' test sempliċi.docx- Dokumenti Word.pdf- Dokumenti PDF (inklużi dawk skenjati)
Data & Localization
.json- JSON fajls (jittraduċi valuri string).xml- Fajls XML.srt- Fajls tas-sottotitoli.po/.pot- Fajls tat-traduzzjoni Gettext
Images (OCR)
.jpg/.jpeg- Immaġini JPEG (OCR).png- Immaġini PNG (OCR).tiff/.tif- Stampi TIFF (OCR).bmp- Immaġini BMP (OCR).webp- Immaġini WebP (OCR)
Eżempju (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"
Rispons
{
"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}/
Iċċekkja l-istatus ta' traduzzjoni ta' dokument jew irkupra l-URL tat-tniżżil.
Valuri tal-istatus
pending |
Fajl imtella', qed jistenna li jiġi pproċessat |
processing |
Traduzzjoni fil-proċess |
completed |
Traduzzjoni kompluta, download disponibbli |
failed |
Traduzzjoni naqset (iċċekkja error_message) |
Lingwi appoġġjati
Ikseb il-lista tal-lingwi kollha appoġġjati.
GET https://api.translateapi.ai/api/v1/translate/languages/
Rispons
{
"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"},
...
]
}
Submit Corrections
Suggest a better translation for a given source text. Corrections enter a moderation queue; once approved by our team they surface as "Community Verified" translations for that text.
https://translateapi.ai/api/v1/ (not the api. translation host), and requires an API key.POST https://translateapi.ai/api/v1/suggestions/
Korp tat-talba
| Parameter | Tip | Deskrizzjoni |
|---|---|---|
source_text |
string | The original text that was translated. |
source_language |
string | Source language code (e.g. "en"). |
target_language |
string | Target language code (e.g. "es"). |
machine_translation |
string | The machine translation you are correcting. |
suggested_translation |
string | Your improved translation (must differ from machine_translation). |
Example Request
curl -X POST https://translateapi.ai/api/v1/suggestions/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_text": "Hello, world!",
"source_language": "en",
"target_language": "es",
"machine_translation": "Hola, mundo!",
"suggested_translation": "¡Hola, mundo!"
}'
Rispons
{
"id": 4213,
"status": "pending",
"created": true,
"message": "Correction submitted for review."
}
Re-submitting the same source/language pair updates your existing suggestion instead of creating a duplicate (returns 200 with "created": false).
Mudelli tat-Traduzzjoni
Aħna nużaw mudelli ta’ traduzzjoni open source li jaħdmu fuq l-infrastruttura tal-GPU tagħna stess u l-mudelli kollha huma liċenzjati kummerċjalment (Apache 2.0).
| Mudell | Lingwi | Aħjar Għal |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ par ta’ lingwi | Lingwi komuni (EN, ES, FR, DE, IT, PT, RU, ZH, JA, eċċ.) |
| Google MADLAD-400 | 400 + lingwi | Lingwi rari, kopertura komprensiva |
L-API awtomatikament tagħżel l-aħjar mudell għall-par tal-lingwa tiegħek. Tista' tispeċifika engine parametru:
| Il-magna | Deskrizzjoni |
|---|---|
"auto" |
Default. Jipprova HuggingFace ewwel, jaqa lura għall-MADLAD-400 |
"huggingface" |
Forza HuggingFace/MarianMT (aktar mgħaġġel, 50+ lingwi) |
"madlad" |
Forza MADLAD-400 (400+ lingwi) |
Immaniġġjar tal-iżbalji
L-API tuża kodiċijiet standard tal-istatus HTTP biex tindika s-suċċess jew il-falliment.
| Kodiċi | Deskrizzjoni |
|---|---|
| 200 | Suċċess |
| 202 | Accepted — Batch job queued successfully |
| 400 | Bad Request — Invalid parameters (missing text, unsupported language, etc.) |
| 401 | Mhux awtorizzat - Ċavetta API invalida jew nieqsa |
| 402 | Payment Required — Character credits exhausted. Upgrade your plan or purchase a top-up. |
| 403 | Forbidden — API key lacks required scope or IP not in whitelist |
| 503 | Servizz Mhux Disponibbli - Traduzzjoni magna temporanjament isfel |
Format tar-Rispons ta’ Żball
{
"error": "insufficient_credits",
"credits_remaining": 0
}
Usage Limits
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:
| Pjan | Karattri/Xahar | Batch API | Documents | Prezz | |
|---|---|---|---|---|---|
| Liberi | 250,000 | — | — | $0 | Irreġistra b'xejn |
| Starter | 2,500,000 | $9/6 xhur | Abbona | ||
| Għaliex | 10,000,000 | $29/6 xhur | Abbona | ||
| In-negozju | 40,000,000 | $79/6 xhur | Abbona | ||
| Skala | 125,000,000 | $199/6 xhur | Abbona | ||
| Enterprise | Unlimited | $499/6 xhur | Contact Sales |
Meta taqbeż il-limitu tiegħek, inti ser tirċievi 402 Payment Required rispons sakemm ix-xahar li jmiss jew inti taġġorna.
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. All requests are queued and processed — send hundreds of concurrent requests and they'll all be handled. Real-time translations get priority, batch jobs process in the background.
Need More Credits?
Run out of characters mid-month? Purchase a one-time credit top-up without changing your plan. View top-up packs