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.
https://api.translateapi.ai/api/v1/
Bidu mgħaġġel
Agħmel l-ewwel talba tiegħek għat-traduzzjoni:
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!"
}
}
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
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) |
* 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
}
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"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)
Rispons (pendenti — fil-kju, stennija għall-GPU)
{
"job_id": "67535b2b-...",
"status": "pending",
"processed_texts": 0,
"total_texts": 3,
"progress_percentage": 0.0,
"queue_position": 3
}
Rispons (matul l-ipproċessar)
{
"job_id": "67535b2b-...",
"status": "processing",
"processed_texts": 1,
"total_texts": 3,
"progress_percentage": 33.33,
"queue_position": null
}
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
Kull tweġiba għall-istħarriġ tinkludi oqsma ta’ progress f’ħin reali sabiex tkun tista’ timmonitorja eżattament x’qed jiġri mal-lott tiegħek:
| Qasam | Deskrizzjoni |
|---|---|
status |
Stat tax-xogħol attwali: pending (fil-kju, stennija għal ħaddiem GPU), processing (jittraduċi b’mod attiv), completed, failed |
processed_texts |
Numru ta' traduzzjonijiet individwali kompluti s'issa.Aġġornamenti f'ħin reali hekk kif kull test jiġi tradott. |
total_texts |
In-numru totali ta’ traduzzjonijiet f’dan il-lott (testi × lingwi fil-mira). |
progress_percentage |
Perċentwal ta’ tlestija (0-100). Ikkalkulat minn processed_texts / total_texts. |
queue_position |
Il-pożizzjoni tiegħek fil-kju meta l-istatus ikun "pendenti" (1 = li jmiss). Null meta jkun qed jiġi pproċessat jew lest. Uża dan biex tikkalkula l-ħin ta' stennija u turi l-istatus tal-kju lill-utenti tiegħek. |
processing_time |
Ħin totali tal-ipproċessar f'sekondi (disponibbli meta jitlesta). |
status huwa "pending", il-ħaddiema GPU huma okkupati b'lottijiet oħra. Iċċekkja queue_position biex tara kemm hemm xogħlijiet qabel tiegħek (1 = int li jmiss).Xogħol tiegħek se jibda awtomatikament — l-ebda azzjoni meħtieġa, sempliċement ikomplu polling.
L-Aħjar Prattiki għal Tagħbijiet tax-Xogħol Kbar
- Ibgħat 1 lingwa fil-mira għal kull talba tal-lott.Dan iżomm kull lott veloċi u jagħmel il-progress faċli biex jiġi segwit.
- Żomm lottijiet ta’ 50-100 test, lottijiet iżgħar jitlestew aktar malajr u jagħtuk aġġornamenti aktar frekwenti dwar il-progress.
- Il-GPU tipproċessa 2 lottijiet b'mod parallel — impjiegi addizzjonali fil-kju u ma jibdewx aktar malajr.
- Fuq timeout, re-poll l-istess job_id minflok tissottometti lott ġdid. Ix-xogħol oriġinali jista 'jkun għadu qed jiġi pproċessat fuq il-GPU.
- Poll kull 3-5 sekondi. Polls aktar frekwenti ma jħaffux l-ipproċessar.
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.
job_id. Toqba GET /api/v1/jobs/{job_id}/ sakemm status huwa "completed", imbagħad aqra result_data għal traduzzjonijiet. Uża progress_percentage biex jintraċċaw il-progress.
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
.txt- Fajls ta' test sempliċi.docx- Dokumenti Word.pdf- Dokumenti PDF (inklużi dawk skenjati).json- JSON fajls (jittraduċi valuri string).xml- Fajls XML
.srt- Fajls tas-sottotitoli.po/.pot- Fajls tat-traduzzjoni Gettext.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"
.txt fajl.
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"
}
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) |
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.
Rispons
{
"id": 123,
"original_filename": "document.docx",
"status": "completed",
"translated_file_url": "/media/translated/document_es.docx",
"character_count": 5420
}
Sejbien tal-lingwa
Is-sejbien tal-lingwa huwa mibni f'kull talba għat-traduzzjoni. Set source_language to "auto" (jew tħallih barra) u l-lingwa misjuba tiġi rritornata fit-tweġiba.
POST https://api.translateapi.ai/api/v1/translate/
Korp tat-talba
{
"text": "Bonjour, comment allez-vous?",
"target_language": "en"
}
Rispons
{
"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
}
Il- source_language Il-qasam fit-tweġiba juri l-lingwa misjuba meta jintuża l-awto-sejbien.
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"},
...
]
}
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 |
400 |
Talba ħażina - Parametri invalidi |
401 |
Mhux awtorizzat - Ċavetta API invalida jew nieqsa |
402 |
Ħlas Meħtieġ - Kwota ta' karattri ta' kuljum maqbuża |
429 |
Ħafna Talbiet - Limitu tar-rata maqbuż |
503 |
Servizz Mhux Disponibbli - Traduzzjoni magna temporanjament isfel |
Format tar-Rispons ta’ Żball
{
"error": "daily_limit_exceeded",
"credits_remaining": 0,
"daily_limit": 100000
}
Limiti tar-rata
Il-limiti jvarjaw skont il-pjan. Ara prezzijiet għal dettalji sħaħ:
| Pjan | Karattri/Xahar | 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 |
Meta taqbeż il-limitu tiegħek, inti ser tirċievi 429 Too Many Requests 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. This means our API can handle virtually unlimited concurrent requests without degradation — from a single request to thousands per minute.