API dokumentacija

Integruoti galingą vertimą į savo programas su mūsų paprasta REST API.

Pradedama

Vertimo API užtikrina paprastą REST sąsają teksto vertimui tarp 180+ kalbų. Visi API tikslai grąžina JSON atsakymus.

Pagrindinis URL: https://api.translateapi.ai/api/v1/
Greitas paleidimas

Pateikite pirmąjį vertimo prašymą:

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!"
    }
}

Autentikacija

Autentifikuokite užklausas naudodami API raktą. Galite sukurti API raktus iš savo prietaisų skydelis.

Antraštės autentikacija (rekomenduojama)
Authorization: Bearer ta_your_api_key_here
Užklausos parametras
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Laikykite savo API klavišus saugius! Nerodykite jų kliento kodo ar viešose saugyklose.

Išversti tekstą

Išversti tekstą į vieną tikslinę kalbą.

POST https://api.translateapi.ai/api/v1/translate/
Prašymą teikianti institucija
Parametras Tipas Reikalinga Aprašymas
text string Taip Tekstas versti (ne daugiau kaip 50000 simbolių)
target_language string Taip Target language code (e.g., "es", "fr", "de")
source_language string Nr. Source language code. Default: "auto" (auto-detect)

* Naudojimas target_language (eilutė) viena kalba arba target_languages (Array) už kelis. Žiūrėti Daugiataškis vertimas.

Atsakas
{
    "translated_text": "Hola, mundo!",
    "source_language": "en",
    "target_language": "es",
    "translations": {
        "es": "Hola, mundo!"
    },
    "character_count": 13,
    "translation_time": 0.45
}

Daugiataškis vertimas

Išversti tekstą į kelias kalbas vienu užklausu. Naudojama ta pati vertinamoji baigtis kaip ir vienas vertimas.

Patarimas: Vienu prašymu galite išversti iki 50 kalbų.
POST https://api.translateapi.ai/api/v1/translate/
Prašymą teikianti institucija
{
    "text": "Hello, world!",
    "target_languages": ["es", "fr", "de", "ja"],
    "source_language": "en"
}

Naudojimas target_languages (array) vietoj target_language (eilutėmis) daugkartiniams tikslams.

Atsakas
{
    "source_language": "en",
    "translations": {
        "es": "Hola, mundo!",
        "fr": "Bonjour, monde!",
        "de": "Hallo, Welt!",
        "ja": "こんにちは、世界!"
    },
    "character_count": 52,
    "translation_time": 2.31
}

Serijos vertimas

Išversti kelis tekstus vienu metu su async perdirbimo. Pateikti seriją ir apklausą dėl rezultatų.

Ribos: ne daugiau kaip 500 tekstų vienai partijai, ne daugiau kaip 750 viso elementų (tekstai × tikslinės kalbos). Darbo laikas 30 minučių po apdorojimo pradžios (neskaičiuojamas laukimo laikas).
Apdorojimo laikas skiriasi pagal kalbą: paprastomis kalbomis (ispanų, prancūzų, vokiečių ir kt.) naudojami greiti modeliai (~0.1s vienam tekstui), o mažiau paplitusiomis kalbomis naudojamas mūsų didelis daugiakalbis modelis (~1-3s vienam tekstui). 100 tekstų partija paprastai užpildoma per 10-30 sekundžių, o paprastomis kalbomis – per 2-5 minutes. Geriausiems rezultatams siųsti 1 tikslinę kalbą užklausai ir išlaikyti partijos dydžius 50 tekstų.
POST https://api.translateapi.ai/api/v1/translate/batch/
1 veiksmas: Partijos pateikimas
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"
}'
Atsakas (HTTP 202 priimtas)
{
    "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/"
}
2 pakopa.
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Trinkelių pavyzdys (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)
Atsakas (sudarytas į eilę, laukiamas GPU)
{
    "job_id": "67535b2b-...",
    "status": "pending",
    "processed_texts": 0,
    "total_texts": 3,
    "progress_percentage": 0.0,
    "queue_position": 3
}
Atsakas (tvarkant)
{
    "job_id": "67535b2b-...",
    "status": "processing",
    "processed_texts": 1,
    "total_texts": 3,
    "progress_percentage": 33.33,
    "queue_position": null
}
Atsakas (baigtas)
{
    "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
    }
}
Realaus laiko pažangos sekimas

Kiekvienas apklausos atsakas apima realaus laiko progreso srityse, kad jūs galite stebėti tiksliai, kas vyksta su jūsų partija:

Laukas Aprašymas
status Dabartinė darbo būsena: pending (numatytas, laukiantis GPU darbuotojo), processing (aktyviai versti), completed, failed
processed_texts Atskirų iki šiol atliktų vertimų skaičius. Atnaujinimai realiu laiku, kai kiekvienas tekstas yra išverstas.
total_texts Bendras vertimų skaičius šioje serijoje (tekstai × tikslinės kalbos).
progress_percentage Užbaigimo procentas (0- 100). Apskaičiuotas pagal apdorotus_tekstus / sum_tekstus.
queue_position Jūsų pozicija eilėje, kai būsena yra "pateikiama" (1 = sekantis). Null, kai tvarkymas ar baigtas. Naudokite tai, kad įvertintų laiką laukti ir parodytų eilės būseną savo vartotojams.
processing_time Bendras apdorojimo laikas sekundėmis (turimas užbaigus).
Patarimas: Kada status ist ist "pending", GPU darbuotojai yra užsiėmę kitomis partijomis. queue_position kad pamatytumėte, kiek darbo yra virš jūsų (1 = esate kitas). Jūsų darbas bus pradėtas automatiškai — jokių veiksmų nereikia, tiesiog išlaikyti apklausą.
Geroji patirtis, susijusi su didelėmis darbo partijomis
  • Siųsti 1 tikslinę kalbą pagal partijos užklausą. Tai palaiko kiekvieną partiją greitai ir leidžia lengvai sekti pažangą.
  • Išlaikyti serijas 50-100 tekstų. Mažesnės serijos baigti greičiau ir suteikti jums dažniau progreso atnaujinimus.
  • Paleisti ne daugiau kaip 2 lygiagrečius serijos darbus. GPU apdoroja 2 partijas lygiagrečiai – papildomų darbų eilėje ir nepradės greičiau.
  • Timeout, iš naujo skambinti tą patį darbą_id, o ne pateikti naują seriją. Originalus darbas gali būti apdoroti GPU.
  • Apdorojimą pagreitina dažnesnės apklausos.
Daugiakalbė partija

Išversti kelis tekstus į kelias kalbas vienu metu:

{
    "texts": ["Hello", "Goodbye"],
    "target_languages": ["es", "fr"],
    "source_language": "en"
}
Baigtas rezultatas_duomenys
{
    "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
}
Užklausos parametrai
Parametras Tipas Reikalinga Aprašymas
texts array Taip Išverstinų eilučių išardymas
target_language string Taip Tikslinės kalbos kodas, skirtas vienai kalbai
target_languages array Taip Tikslinių kalbų kodų, skirtų kelioms kalboms, išrašymas
source_language string Nr. Source language code. Default: "auto"

* Pateikite arba target_language arba target_languages, ne abu.

Async apdorojimas: Partijos prašymai grįžti iš karto su job_id. Pelėsiai GET /api/v1/jobs/{job_id}/ iki status ist ist "completed", tada skaityti result_data vertimams. Naudokite progress_percentage stebėti pažangą.

Dokumento vertimas

Išversti visus dokumentus išsaugant formatavimą. Palaiko kelis failų formatus.

POST https://api.translateapi.ai/api/v1/translate/document/
Prašymas (daugkartiniai ir (arba) formos duomenys)
Parametras Tipas Reikalinga Aprašymas
file file Taip Vertiamas dokumentas (max 10MB)
target_language string Taip Target language code (e.g., "es", "fr", "de")
source_language string Nr. Source language code. Default: "auto" (auto-detect)
Palaikomi failų tipai
  • .txt - Paprasto teksto failai
  • .docx - Žodiniai dokumentai
  • .pdf - PDF dokumentai (įskaitant nuskaitytus)
  • .json - JSON failai (išversta eilutės reikšmes)
  • .xml - XML failai
  • .srt - Subtitrų failai
  • .po / .pot - Gettext vertimo failai
  • .jpg / .jpeg - JPEG paveikslėliai (OCR)
  • .png - PNG paveikslėliai (OCR)
  • .tiff / .tif - TIFF paveikslėliai (OCR)
  • .bmp - BMP paveikslėliai (OCR)
  • .webp - WebP paveikslėliai (OCR)
OCR palaikymas: Paveikslėlių failai ir skenuoti PDF apdorojami optinio simbolių atpažinimo (OCR) išgauti tekstą prieš vertimą. Dėl geriausių rezultatų, naudoti aiškius, didelės skiriamosios gebos vaizdus.
Pavyzdys (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"
Paveikslėlio failai apdorojami su OCR išgauti tekstą prieš vertimą. Išversta išvestis grąžinama kaip .txt byla.
Atsakas
{
    "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"
}
Būsenos reikšmės
pending Failas įkeltas, laukiamas bus tvarkomas
processing Vyksta vertimas
completed Vertimas baigtas, atsisiųsti prieinamas
failed Vertimas nepavyko (patikrinti klaidos_ message)
GET https://api.translateapi.ai/api/v1/translate/document/{id}/

Patikrinti dokumento vertimo būseną arba gauti atsisiuntimo URL.

Atsakas
{
    "id": 123,
    "original_filename": "document.docx",
    "status": "completed",
    "translated_file_url": "/media/translated/document_es.docx",
    "character_count": 5420
}

Kalbos aptikimas

Kalbų aptikimas integruotas į kiekvieną vertimo užklausą. Komplektas source_language to "auto" (arba jos nepateikimas) ir nustatyta kalba grąžinama atsakyme.

POST https://api.translateapi.ai/api/v1/translate/
Prašymą teikianti institucija
{
    "text": "Bonjour, comment allez-vous?",
    "target_language": "en"
}
Atsakas
{
    "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
}

, k u r i u m u s source_language Atsako laukelyje rodoma nustatyta kalba, kai naudojamas automatinis aptikimas.

Palaikomos kalbos

Gauti visų palaikomų kalbų sąrašą.

GET https://api.translateapi.ai/api/v1/translate/languages/
Atsakas
{
    "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"},
        ...
    ]
}

Vertimo modeliai

Mes naudojame moderniausius atvirojo kodo vertimo modelius, veikiančius mūsų pačių GPU infrastruktūroje. Visi modeliai yra komerciškai licencijuoti (Apache 2.0).

Pavyzdys Kalbos Geriausias už
Helsinki-NLP/opus-mt 50+ kalbų poros Bendros kalbos (EN, ES, FR, DE, IT, PT, RU, ZH, JA ir kt.)
Google MADLAD-400 400+ kalbų Retos kalbos, visapusiška aprėptis

API automatiškai pasirenka geriausią jūsų kalbų poros modelį. Galite pasirinkti engine Parametras:

Variklis Aprašymas
"auto" Numatytasis. Tries HuggingFace pirmas, grįžta į MADLAD-400
"huggingface" Priverstinai hugggingFace/MarianMT (greitiausias, 50+ kalbos)
"madlad" Priverstinai MADLAD-400 (400+ kalbų)

Klaida tvarkant

API naudoja standartinius HTTP būklės kodus, kad rodytų sėkmę ar nesėkmę.

Kodas Aprašymas
200 Sėkmė
400 Bloga užklausa - netinkami parametrai
401 Neteisingas - netinkamas arba trūksta API rakto
402 Mokėjimas Reikalingas - Dienos simbolių kvota viršyta
429 Pernelyg daug prašymų - normos riba viršyta
503 Paslaugos nepasiekiama - Vertimo variklis laikinai žemyn
Klaidos atsakymo formatas
{
    "error": "daily_limit_exceeded",
    "credits_remaining": 0,
    "daily_limit": 100000
}

Norminės ribos

Ribos skiriasi pagal planą. Žr. kainodara išsami informacija:

Planas Simboliai/mėnesys Kaina
Neapmuitinama 250,000 $0 Užsiregistruoti nemokamai
Pradžia 2,500,000 $9/s. c. Užsisakyti
Pro 10,000,000 $29/s. c. Užsisakyti
Verslas 40,000,000 $79/s. c. Užsisakyti
Mastelis 125,000,000 $199/s. c. Užsisakyti

Kai viršysi savo ribą, gausi 429 Too Many Requests atsakas iki kito mėnesio arba jums atnaujinti.

Automatinė debesijos infrastruktūra

Vertimo API veikia skirtais NVIDIA A100 GPU atvejais su automatine horizontalia masteliu. Kai paklausa padidėja, per kelias minutes pradedami papildomi GPU atvejai, kad būtų palaikomas greito atsako laikas. Tai reiškia, kad mūsų API gali atlikti beveik neribotą gretutinę užklausą be pablogėjimo – nuo vieno užklausos iki tūkstančių per minutę.

Įvertinti šį puslapį
Ačiū už jūsų įvertinimą!
/5 remiantis reitingai