Dokumentimi i API
Integro përkthimet e fuqishme në aplikacionet tuaja me API-në tonë të thjeshtë REST.
Duke filluar
TranslateAPI ofron një ndërfaqe të thjeshtë REST për përkthimin e tekstit midis më shumë se 180 gjuhëve. Të gjitha pikat përfundimtare të API kthejnë përgjigje JSON.
https://api.translateapi.ai/api/v1/
Fillimi i shpejtë
Bëj kërkesën e parë të përkthimit:
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!"
}
}
Autentifikim
Autentiko kërkesat tuaja duke përdorur një kyç API. Mund të krijoni kyçe API nga dashboard.
Header Authentication (Recommended)
Authorization: Bearer ta_your_api_key_here
Parametri i kërkimit
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Përkthe tekstin
Përkthe tekstin në një gjuhë të vetme.
POST https://api.translateapi.ai/api/v1/translate/
Korpi i kërkesës
| Parametrat | Lloji | E nevojshme | Përshkrimi |
|---|---|---|---|
text |
string | Po. | Teksti për t'u përkthyer (maksimum 50,000 karakterë) |
target_language |
string | Po. | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Jo. | Source language code. Default: "auto" (auto-detect) |
* Përdorimi target_language (string) për gjuhë të vetme ose target_languages (array) për shumëfish. Shiko Përkthim shumë-objektivësh.
Përgjigje
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
Përkthim shumë-objektivësh
Përkthe tekstin në gjuhë të shumta në një kërkesë të vetme. Përdor të njëjtin përfundim si përkthimi i vetëm.
POST https://api.translateapi.ai/api/v1/translate/
Korpi i kërkesës
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
Përdorimi target_languages (array) në vend të target_language (string) për objektiva të shumta.
Përgjigje
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
Përkthimi i grupit
Përkthe tekste të shumta në të njëjtën kohë me përpunimin asinkron. Dërgo një grup dhe pyet për rezultate.
POST https://api.translateapi.ai/api/v1/translate/batch/
Hapi 1: dërgo grupin
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"
}'
Përgjigja (HTTP 202 e pranuar)
{
"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/"
}
Hapi 2: Sondazh për rezultatet
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Shembull Poll (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)
Përgjigja (në pritje — në radhë, duke pritur për GPU)
{
"job_id": "67535b2b-...",
"status": "pending",
"processed_texts": 0,
"total_texts": 3,
"progress_percentage": 0.0,
"queue_position": 3
}
Përgjigja (gjatë përpunimit)
{
"job_id": "67535b2b-...",
"status": "processing",
"processed_texts": 1,
"total_texts": 3,
"progress_percentage": 33.33,
"queue_position": null
}
Përgjigje (e plotësuar)
{
"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
}
}
Gjurmimi i përparimit në kohë reale
Çdo përgjigje sondazhi përfshin fusha përparimi në kohë reale kështu që mund të mbikqyrni saktësisht se çfarë po ndodh me grupin tuaj:
| Fusha | Përshkrimi |
|---|---|
status |
[Error: UNIQUE constraint failed: translations_translation.textbase_id, translations_translation.language_id] pending [Error: UNIQUE constraint failed: translations_translation.textbase_id, translations_translation.language_id] processing (aktivisht duke përkthyer), completed[Error: UNIQUE constraint failed: translations_translation.textbase_id, translations_translation.language_id] failed |
processed_texts |
Numri i përkthimeve individuale të plotësuara deri tani. Përditësohet në kohë reale ndërsa përkthehet çdo tekst. |
total_texts |
[Error: UNIQUE constraint failed: translations_translation.textbase_id, translations_translation.language_id] |
progress_percentage |
Përqindja e kompletimit (0-100). llogaritur nga processed_texts / total_texts. |
queue_position |
Pozicioni juaj në radhë kur gjendja është "në pritje" (1 = e ardhmja). Null kur përpunimi është përfunduar. Përdor këtë për të llogaritur kohën e pritjes dhe për t'u treguar përdoruesve tuaj gjendjen e radhës. |
processing_time |
[Error: UNIQUE constraint failed: translations_translation.textbase_id, translations_translation.language_id] |
status është "pending"Kontrollo queue_position për të parë sa punë janë përpara teje (1 = ti je tjetri). Puna jote do të fillojë automatikisht — nuk ka nevojë për veprim, vetëm vazhdo polling.
Praktikat më të mira për ngarkimet e mëdha të punës
- [Error: UNIQUE constraint failed: translations_translation.textbase_id, translations_translation.language_id]
- Mbaj grupet në 50-100 tekste. Grupet më të vogla përfundojnë më shpejt dhe të japin përditësime më të shpeshta të përparimit.
- [Error: UNIQUE constraint failed: translations_translation.textbase_id, translations_translation.language_id]
- Në fund të kohës së caktuar, kërko përsëri të njëjtin job_id në vend që të dërgosh një grup të ri. Puna origjinale mund të jetë ende duke u përpunuar në GPU.
- Sondazh çdo 3-5 sekonda. Sondazhi më i shpeshtë nuk e shpejton përpunimin.
Grup shumëgjuhësh
Përkthe disa tekste në disa gjuhë në të njëjtën kohë:
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
Rezultati i plotësuar i të dhënave
{
"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
}
Parametrat e kërkesës
| Parametrat | Lloji | E nevojshme | Përshkrimi |
|---|---|---|---|
texts |
array | Po. | Array me stringa për t'u përkthyer |
target_language |
string | Po. | Kodi i gjuhës së synuar për një gjuhë të vetme |
target_languages |
array | Po. | Kodet e gjuhës së synuar për gjuhë të shumta |
source_language |
string | Jo. | Source language code. Default: "auto" |
* Shkruaj ose target_language ose target_languagesJo të dyja.
job_id. Vrima GET /api/v1/jobs/{job_id}/ deri status është "completed", pastaj lexo result_data përkthime. Përdor progress_percentage për të ndjekur përparimin.
Përkthimi i dokumentit
Përkthe të gjithë dokumentët duke ruajtur formatimin. Suporton formate të shumta file.
POST https://api.translateapi.ai/api/v1/translate/document/
Kërkesë (multipart/form-data)
| Parametrat | Lloji | E nevojshme | Përshkrimi |
|---|---|---|---|
file |
file | Po. | Dokumenti për t'u përkthyer (max 10MB) |
target_language |
string | Po. | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Jo. | Source language code. Default: "auto" (auto-detect) |
Llojet e suportuara të file
.txt- File me tekst të thjeshtë.docx- Dokumente Word.pdf- Dokumente PDF (duke përfshirë ato të skanuara).json- File JSON (përkthen vlerat e stringës).xml- File XML
.srt- File të subtitrave.po/.pot- File të përkthimit Gettext.jpg/.jpeg- JPEG figura (OCR).png- Figurat PNG.tiff/.tif- Figurat TIFF (OCR).bmp- Figurat BMP (OCR).webp- Figurat WebP (OCR)
Shembull (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 dosje.
Përgjigje
{
"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"
}
Vlerat e gjendjes
pending |
File u ngarkua, në pritje të përpunimit |
processing |
Përkthimi në proces |
completed |
Përkthimi përfundoi, shkarkimi është në dispozicion |
failed |
Përkthimi dështoi (kontrollo error_message) |
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
Kontrollo gjendjen e përkthimit të një dokumenti ose merr URL-në e shkarkimit.
Përgjigje
{
"id": 123,
"original_filename": "document.docx",
"status": "completed",
"translated_file_url": "/media/translated/document_es.docx",
"character_count": 5420
}
Zbulimi i gjuhës
Zbulimi i gjuhës është i ndërtuar në çdo kërkesë përkthimi. source_language to "auto" (ose hiqni atë) dhe gjuha e zbuluar kthehet në përgjigje.
POST https://api.translateapi.ai/api/v1/translate/
Korpi i kërkesës
{
"text": "Bonjour, comment allez-vous?",
"target_language": "en"
}
Përgjigje
{
"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
}
The. source_language fusha në përgjigje tregon gjuhën e zbuluar kur përdoret zbulimi automatik.
Gjuhët e suportuara
Merr listën e të gjitha gjuhëve të suportuara.
GET https://api.translateapi.ai/api/v1/translate/languages/
Përgjigje
{
"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"},
...
]
}
Modele përkthimi
Ne përdorim modele të përkthimit me burim të hapur që funksionojnë në infrastrukturën tonë GPU. Të gjithë modelet janë të licencuar komercialisht (Apache 2.0).
| Modeli | Gjuhë | Më e mira për |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ çifte gjuhësh | Gjuhët e zakonshme (EN, ES, FR, DE, IT, PT, RU, ZH, JA, etj.) |
| Google MADLAD-400 | 400+ gjuhë | Gjuhët e rralla, mbulim i plotë |
API zgjedh automatikisht modelin më të mirë për çiftin tuaj të gjuhës. Mund të specifikoni një engine Parametri:
| Motori | Përshkrimi |
|---|---|
"auto" |
E prezgjedhur. Përpiqet të përqafohet së pari, kthehet në MADLAD-400 |
"huggingface" |
Forco HuggingFace/MarianMT (më i shpejti, 50+ gjuhë) |
"madlad" |
Forca MADLAD-400 (400+ gjuhë) |
Manipulimi i gabimeve
API përdor kodet standarde të statusit HTTP për të treguar suksesin ose dështimin.
| Kodi | Përshkrimi |
|---|---|
200 |
Suksesi |
400 |
Kërkim i pavlefshëm - Parametra të pavlefshëm |
401 |
I paautorizuar - Kyç i pavlefshëm apo mungon kyçi API |
402 |
Paga e nevojshme - Kuota ditore e gërmave është tejkaluar |
429 |
Tepër kërkesa - limiti i shpejtësisë është tejkaluar |
503 |
Shërbimi nuk është në dispozicion - motori i përkthimit është përkohësisht jashtë funksionit |
Formati i përgjigjes së gabimit
{
"error": "daily_limit_exceeded",
"credits_remaining": 0,
"daily_limit": 100000
}
Limitet e shpejtësisë
Kufizimet ndryshojnë sipas planit. Shiko çmimi Për detajet e plota:
| Plani | Karakterë/Muaj | Çmimi | |
|---|---|---|---|
| I lirë | 250,000 | $0 | Regjistrohu pa pagesë |
| Fillues | 2,500,000 | $9/Mb | Regjistrohu |
| Pro | 10,000,000 | $29/Mb | Regjistrohu |
| Biznesi | 40,000,000 | $79/Mb | Regjistrohu |
| Shkalla | 125,000,000 | $199/Mb | Regjistrohu |
Kur të kalosh kufirin tënd, do të marrësh një 429 Too Many Requests përgjigje deri në muajin e ardhshëm ose ju përmirësoni.
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.