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.

URL e bazë: 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
Ruaj çelësat e tu të sigurt! Mos i ekspozo ato në kodin e anës së klientit ose në depozitat publike.

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.

Lloji: Ju mund të përktheni në deri në 50 gjuhë në një kërkesë të vetme.
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.

Kufizime: maks. 500 tekste për grup, maks. 750 elemente të përgjithshme (tekste × gjuhë synimi). Kohëzgjatja e punës është 30 minuta pas fillimit të përpunimit (koha e pritjes së rendit nuk llogaritet).
Koha e përpunimit ndryshon sipas gjuhës: gjuhët e zakonshme (spanjishtja, frëngjishtja, gjermanishtja, etj.) përdorin modele të shpejta (~0.1s për tekst), ndërsa gjuhët më pak të zakonshme përdorin modelin tonë të madh shumëgjuhësh (~1-3s për tekst). Një grup prej 100 tekstesh zakonisht përfundon në 10-30 sekonda për gjuhët e zakonshme, ose 2-5 minuta për ato më pak të zakonshme. Për rezultate më të mira, dërgo 1 gjuhë objektive për kërkesë të grupit dhe mbaj madhësitë e grupeve nën 50 tekste.
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]
Lloji: Kur 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.

Përpunimi asinkron: Kërkesat e grupit kthehen menjëherë me një 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)
Suporti OCR: Filet e figurave dhe PDF-të e skanuara përpunohen me njohjen optike të gërmave (OCR) për të nxjerrë tekstin përpara përkthimit. Për rezultate më të mira, përdor figura të qarta me rezolucion të lartë.
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"
Filet e figurave janë përpunuar me OCR për të nxjerrë tekstin para përkthimit. Rezultati i përkthimit kthehet si një .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.

Vlerëso këtë faqe
Faleminderit për vlerësimin tuaj!
/5 bazuar në vlerësime