API dokumentacija

Integrirajte moćan prijevod u vaše aplikacije s našim jednostavnim REST API.

Započinjemo

TranslateAPI pruža jednostavno REST sučelje za prevođenje teksta između 180+ jezika. Svi API ishodi vraća JSON odgovore.

Osnovni URL: https://api.translateapi.ai/api/v1/
Brzi početak

Zahtjev za prvim prijevodom:

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

Ovjera

Ovjerite svoje zahtjeve korištenjem API ključa. Možete stvoriti API tipke iz vašeg Tabela s pločama.

Ovjera zaglavlja (preporučena)
Authorization: Bearer ta_your_api_key_here
Parametr upita
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Držite API ključeve sigurno! Ne razotkrivajte ih kodom klijenta ili javnim repozitorijima.

Prevedi tekst

Prevedite tekst na jedan ciljni jezik.

POST https://api.translateapi.ai/api/v1/translate/
Zahtjevno tijelo
Parametri Vrsta Potrebno Opis
text string -Da. -Da. Tekst za prevođenje (najviše 50.000 znakova)
target_language string Da, da. Target language code (e.g., "es", "fr", "de")
source_language string Ne. Source language code. Default: "auto" (auto-detect)

* Koristi target_language (string) za jedan jezik ili target_languages (Marie) za višestruke. Vidi Višestruki prijevod.

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

Višestruki prijevod

Prevedite tekst na više jezika u jednom zahtjevu. Koristi isti ishod kao i jedan prijevod.

Savjet: Možete prevesti do 50 jezika u jednom zahtjevu.
POST https://api.translateapi.ai/api/v1/translate/
Zahtjevno tijelo
{
    "text": "Hello, world!",
    "target_languages": ["es", "fr", "de", "ja"],
    "source_language": "en"
}

Koristi target_languages (marsij) umjesto target_language (string) za više meta.

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

Parsirani prijevod

Prevedite više tekstova odjednom s asinc obradom. Pošaljite seriju i anketu za rezultate.

Ogranicenja: max 500 tekstova po seriji, max 750 ukupnih stavki (teksti × ciljni jezici). Zaposleni zastarjelih 30 minuta nakon početka obrade (voda čekanja se ne broji).
Vrijeme obrade varira prema jeziku: zajednički jezici ( Španjolski, Francuski, Njemački, itd.) koriste brze modele (~0,1s po tekstu), dok manje uobičajeni jezici koriste naš veliki višejezični model (~1-3s po tekstu). 100-tekst serija obično završava u 10-30 sekundi za zajedničke jezike, ili 2-5 minuta za manje uobičajene. Za najbolje rezultate, pošaljite 1 ciljni jezik po seriji zahtjeva i čuvajte veličinu serije ispod 50 tekstova.
POST https://api.translateapi.ai/api/v1/translate/batch/
Korak 1: Odaberite parcelu
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"
}'
Odgovor (HTTP 202 prihvaćeno)
{
    "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/"
}
Korak 2: Istraživanje rezultata
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Primjer ispitivanja (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)
Odgovor (pokretanje – u redu, čekanje na GPU)
{
    "job_id": "67535b2b-...",
    "status": "pending",
    "processed_texts": 0,
    "total_texts": 3,
    "progress_percentage": 0.0,
    "queue_position": 3
}
Odgovor (prilikom obrade)
{
    "job_id": "67535b2b-...",
    "status": "processing",
    "processed_texts": 1,
    "total_texts": 3,
    "progress_percentage": 33.33,
    "queue_position": null
}
Odgovor (dovršen)
{
    "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
    }
}
Praćenje napretka u realnom vremenu

Svaki odgovor ankete uključuje polja napretka u realnom vremenu tako da možete pratiti točno ono što se događa sa svojom serijom:

Polje Opis
status Trenutno stanje posla: pending (Naručeno, čeka na GPU radnika), processing (aktivno prevođenje), completed, failed
processed_texts Broj pojedinačnih prijevoda završen do sada. Ažuriranja u realnom vremenu kao svaki tekst je preveden.
total_texts Ukupan broj prijevoda u ovoj seriji (teksti × ciljni jezici).
progress_percentage Postotak dovršetka (0-100). Izračunano iz procesiranih_ teksta / total_teksta.
queue_position Vaš položaj u redu kada je status "panding" (1 = sljedeća gore). Null prilikom obrade ili završetka. Koristite ovo za procjenu vremena čekanja i prikazivanje statusa reda svojim korisnicima.
processing_time Ukupno vrijeme obrade u sekundama (dostupno nakon završetka).
Savjet: Kada status je "pending"GPU radnici su zauzeti drugim serijama. queue_position kako bi vidjeli koliko je poslova ispred vas (1 = ste sljedeći). Vaš posao će početi automatski – nema akcije potrebno, samo nastavite anketu.
Najbolje prakse za velike radne opterećenja
  • Pošaljite 1 ciljni jezik po zahtjevu za serijom. Ovo održava svaku seriju brzo i olakšava praćenje napretka.
  • Držite serije na 50-100 tekstova. Manje serije kompletiraju brže i daju vam češće napretke ažuriranja.
  • Pokrenite na najviše 2 istovremena serija posla. GPU procesira 2 serije paralelno — dodatni posao reda i neće početi brže.
  • Pri vremenskom prekidu, ponavljanje iste job_id umjesto odašiljanja nove serije. Izvorni posao još uvijek može biti obrada na GPU.
  • Anketa svakih 3-5 sekundi. Češće anketa ne ubrzava obradu.
Višejezični paket

Prevedi više tekstova na više jezika odjednom:

{
    "texts": ["Hello", "Goodbye"],
    "target_languages": ["es", "fr"],
    "source_language": "en"
}
Dovršeni rezultati
{
    "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 zatraži
Parametri Vrsta Potrebno Opis
texts array -Da. -Da. Raspored stringova za prevođenje
target_language string Da, da. Šifra ciljnog jezika za jedan jezik
target_languages array Da, da. Raspored ciljnih kodova jezika za više jezika
source_language string Ne. Source language code. Default: "auto"

* Osigurajte bilo koji target_language ili target_languages, ne oboje.

Async obrada: Zahtjevi za settom se odmah vraćaju s job_id. Istraživanje GET /api/v1/jobs/{job_id}/ sve do status je "completed", zatim pročitati result_data za prijevode. Koristi progress_percentage Da pratimo napredak.

_Dokumenti

Prevodi čitave dokumente pri očuvanju formatiranja. Podržava više formata datoteka.

POST https://api.translateapi.ai/api/v1/translate/document/
Zahtjev (multipartmentalni/formalni podaci)
Parametri Vrsta Potrebno Opis
file file -Da. -Da. Dokument koji će se prevesti (max. 10MB)
target_language string -Da. -Da. Target language code (e.g., "es", "fr", "de")
source_language string Ne. Source language code. Default: "auto" (auto-detect)
Podržani tipovi datoteka
  • .txt - Obične tekstualne datoteke
  • .docx - Riječni dokumenti
  • .pdf - PDF dokumenti (uključujući skeniranje)
  • .json - JSON datoteke (vrijednosti niza prevodi)
  • .xml - XML datoteke
  • .srt - Datoteke podnaslova
  • .po / .pot - Gettext translation datoteke
  • .jpg / .jpeg - JPEG slike (OCR)
  • .png - PNG slike (OCR)
  • .tiff / .tif - TIFF slike (OCR)
  • .bmp - BMP slike (OCR)
  • .webp - WebP slike (OCR)
Podrška za OCR: Slike datoteke i skenirani PDF-ovi obrađuju se s optičkim prepoznavanjem znakova (OCR) za ekstrakt teksta prije prijevoda. Za najbolje rezultate, koristite jasne, visoke razlučivost slike.
Primjer (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"
Slika datoteke su obrađeni s OCR za ekstrakt teksta prije prijevoda. Prevedeni izlaz se vraća kao .txt Datoteka.
Odgovor
{
    "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"
}
Vrijednosti stanja
pending Datoteka uploadirana, čeka na obradu
processing Prijevod u tijeku
completed Prijevod završen, preuzimanje dostupno
failed Prijevod nije uspio (provjeri pogrešku_poruka)
GET https://api.translateapi.ai/api/v1/translate/document/{id}/

Provjerite stanje prijevoda dokumenta ili dohvatite URL preuzimanja.

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

Otkrivanje jezika

Detekcija jezika je ugrađena u svaki zahtjev za prijevodom. source_language to "auto" (ili ga izostavite) i otkriveni jezik je vraćen u odgovoru.

POST https://api.translateapi.ai/api/v1/translate/
Zahtjevno tijelo
{
    "text": "Bonjour, comment allez-vous?",
    "target_language": "en"
}
Odgovor
{
    "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
}

Dječja jezgra. source_language polje u odgovoru prikazuje otkriveni jezik kada se koristi automatsko otkrivanje.

Podržani jezici

Dobavi popis svih podržanih jezika.

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

Modeli prijevoda

Koristimo najmodernije modele prevođenja otvorenog izvora koji rade na vlastitoj GPU infrastrukturi. Svi modeli su komercijalno licencirani (Apache 2.0).

Uzorak Jezici Najbolje za
Helsinki-NLP/opus-mt 50+ Jezikovni parovi Zajednički jezici (EN, ES, FR, DE, IT, PT, RU, ZH, JA, itd.)
Google MADLAD-400 400+ jezika Rijetki jezici, sveobuhvatna pokrivenost

API automatski odabire najbolji model za vaš jezični par. Možete opcionalno navesti engine parametar:

Pogon Opis
"auto" Podrazumijevano. Pokušava prvo HuggingFace, pada natrag na MADLAD-400
"huggingface" Force HuggingFace/MarianMT (najbrže, 50+ jezika)
"madlad" Sila MADLAD-400 (400+ jezika)

Rukovanje greškama

API koristi standardne HTTP kodove statusa kako bi pokazao uspjeh ili neuspjeh.

Oznaka Opis
200 Uspjeh
400 Loš zahtjev - Neispravni parametri
401 Neovlašteni - neispravan ili nedostaje API ključ
402 Obavezno plaćanje - Dnevna kvota karaktera prekoračena
429 Previše zahtjeva - ograničenje stope prekoračeno
503 Servis nedostupan - Prijevod motor privremeno dolje
Format odgovora na grešku
{
    "error": "daily_limit_exceeded",
    "credits_remaining": 0,
    "daily_limit": 100000
}

Ograničenja stope

Ograničenja se razlikuju prema planu. Vidi cijene za potpune detalje:

Plan Znakovi/Mjesec Cijena
Slobodno 250,000 $0 Slobodno se prijavite
Pokretanje 2,500,000 $9/Mo Pretplati se
Profesionalno 10,000,000 $29/Mo Pretplati se
Poslovno 40,000,000 $79/Mo Pretplati se
Skaliraj 125,000,000 $199/Mo Pretplati se

Kada pređeš granicu, primit ćeš 429 Too Many Requests odgovor do sljedećeg mjeseca ili nadogradite.

Infrastruktura oblaka za automatsko mjerenje oblaka

TranslateAPI radi na posvećenom NVIDIA A100 GPU primjeraka s automatskim horizontalnim skaliranjem. Kada se potražnja povećava, dodatni GPU slučajevi se pokreću u roku od nekoliko minuta kako bi se održalo vrijeme brzog odgovora. To znači da naš API može nositi gotovo neograničene istodobne zahtjeve bez degradacije – od jednog zahtjeva do tisuća u minuti.

Ocijeni ovu stranicu
Hvala na ocjeni!
/5 bazirano na rejting