Dokumentacija API

Integrirajte močan prevod v vaše aplikacije z našim preprostim REST API.

Začetek

TranslateAPI zagotavlja preprost vmesnik REST za prevajanje besedila med 180+ jeziki. Vsi končni dogodki API vrnejo JSON odgovore.

Osnovni URL: https://api.translateapi.ai/api/v1/
Hitri zagon

Zahtevajte svoj prvi prevod:

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

Avtentifikacija

Avtentifikacija vaših zahtev z API ključem. Iz svojih ključev lahko ustvarite API tipke Tablo.

Overitev glave (recommended)
Authorization: Bearer ta_your_api_key_here
Parameter poizvedbe
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Držite API ključe varne! Ne razkrivajte jih v kodi stranke ali v javnih skladiščih.

Prevedi besedilo

Prevedite besedilo v en ciljni jezik.

POST https://api.translateapi.ai/api/v1/translate/
Telo zahtevka
Parameter Vrsta Zahtevana Opis
text string Da, da. Besedilo za prevajanje (največ 50.000 znakov)
target_language string Da, da. Target language code (e.g., "es", "fr", "de")
source_language string Ne Source language code. Default: "auto" (auto-detect)

* Uporaba target_language (vrstica) za en jezik ali target_languages Za večkratno razporeditev. Glej Prevajanje z več targeti.

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

Prevajanje z več targeti

Besedilo prevedite v več jezikih v enem zahtevku. Uporablja isti opazovani dogodek kot en sam prevod.

Nasvet: V enem zahtevku lahko prevedete do 50 jezikov.
POST https://api.translateapi.ai/api/v1/translate/
Telo zahtevka
{
    "text": "Hello, world!",
    "target_languages": ["es", "fr", "de", "ja"],
    "source_language": "en"
}

Uporaba target_languages (vrsta) namesto target_language (vrstica) za več tarč.

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

Serija prevajanja

Prevedite več besedil naenkrat z async obdelavo. Predložite serijo in anketo za rezultate.

Omejitve: max 500 besedil na serijo, max 750 skupnih predmetov (teksti × ciljni jeziki).
Čas obdelave se razlikuje po jeziku: skupni jeziki (španski, francoski, nemški itd.) uporabljajo hitre modele (~0,1s na besedilo), manj pogosti jeziki pa uporabljajo naš velik večjezični model (~1-3s na besedilo). 100-tekstna serija običajno konča v 10-30 sekundah za skupne jezike ali 2-5 minut za manj pogoste. Za najboljše rezultate pošljite 1 ciljni jezik na zahtevo po seriji in ohranite velikost serije pod 50 besedil.
POST https://api.translateapi.ai/api/v1/translate/batch/
Korak 1: Pošljite serijo
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"
}'
Odziv (HTTP 202 sprejet)
{
    "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: Analiza rezultatov
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Primer raziskovanja (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)
Odziv (pošiljanje – v vrsti, čakanje na GPU)
{
    "job_id": "67535b2b-...",
    "status": "pending",
    "processed_texts": 0,
    "total_texts": 3,
    "progress_percentage": 0.0,
    "queue_position": 3
}
Odziv (med obdelavo)
{
    "job_id": "67535b2b-...",
    "status": "processing",
    "processed_texts": 1,
    "total_texts": 3,
    "progress_percentage": 33.33,
    "queue_position": null
}
Odziv (dopolnjen)
{
    "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
    }
}
Sledenje napredku v realnem času

Vsak odziv ankete vključuje polja za napredek v realnem času, tako da lahko spremljate natančno, kaj se dogaja s svojo serijo:

Polje Opis
status Trenutno stanje zaposlitve: pending (Naslednja, čaka na delavca GPU), processing (aktivno prevajanje), completed, failed
processed_texts Število posameznih prevodov doslej končano. Posodobitve v realnem času, kot je vsako besedilo prevedeno.
total_texts Skupno število prevodov v tej seriji (besedila × ciljni jeziki).
progress_percentage Odstotek zaključka (0-100). Izračunano iz procesed_ texts / total_texts.
queue_position Vaš položaj v vrstici, ko je status "panding" (1 = naslednji navzgor). Null ob obdelavi ali končani. Uporabite to, da ocenite čas čakanja in prikažite status vrstice za svoje uporabnike.
processing_time Skupni čas obdelave v sekundah (na voljo po zaključku).
Nasvet: Kdaj status je "pending"Delavci GPU so zaposleni z drugimi serijami. queue_position da bi videli, koliko delovnih mest je pred vami (1 = ste naslednji). Vaše delo se bo začelo samodejno – ni potrebno ukrepanje, samo nadaljujte z anketo.
Najboljše prakse za veliko delovno obremenitev
  • Pošljite 1 ciljni jezik na zahtevo po seriji. To ohranja vsako serijo hitro in omogoča enostavno sledenje napredka.
  • Držite serije na 50-100 besedila. Manjše serije se zaključijo hitreje in vam pogosteje posodabljajo napredek.
  • Tek pri največ dveh sočasnih serij delovnih mest. GPU procesira 2 serij vzporedno – dodatna delovna mesta v vrsti in ne bo hitreje.
  • Ob časovnem zaporedju ponovite isto job_id namesto oddaje nove serije. Izvirna naloga je morda še vedno obdelana na GPU.
  • Raziskava vsakih 3-5 sekund. Pogosto anketiranje ne pospešuje predelave.
Večjezična serija

Prevedi več besedil v več jezikov naenkrat:

{
    "texts": ["Hello", "Goodbye"],
    "target_languages": ["es", "fr"],
    "source_language": "en"
}
Dokončani rezultat_podatki
{
    "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
}
Zahtevajte parametre
Parameter Vrsta Zahtevana Opis
texts array Da, da. Popravek nizov za prevajanje
target_language string Da, da. Koda ciljnega jezika za en jezik
target_languages array Da, da. Popravek ciljnih jezikovnih kod za več jezikov
source_language string Ne Source language code. Default: "auto"

* Poskrbi, da bodisi target_language ali target_languages, ne oboje.

Async obdelava: Serija zahtevkov se takoj vrne z job_id. Analiza GET /api/v1/jobs/{job_id}/ do status je "completed", nato preberi result_data za prevode. Uporabi progress_percentage Slediti napredku.

Prevajanje dokumenta

Prevedite vse dokumente med ohranjanjem formatiranja. Podpira več formatov datotek.

POST https://api.translateapi.ai/api/v1/translate/document/
Zahtevek (več delov/podatki oblike)
Parameter Vrsta Zahtevana Opis
file file Da, da. Dokument za prevajanje (največ 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)
Podprte vrste datotek
  • .txt - Običajne besedilne datoteke
  • .docx - Besedilni dokumenti
  • .pdf - Dokumenti PDF (vključno s skeniranimi)
  • .json - Datoteke JSON (vrednosti nizov prevajalcev)
  • .xml - Datoteke XML
  • .srt - Datoteke podnaslovov
  • .po / .pot - Datoteke za prevajanje tekstov
  • .jpg / .jpeg - JPEG slike (OCR)
  • .png - Slike PNG (OCR)
  • .tiff / .tif - TIFF slike (OCR)
  • .bmp - BMP slike (OCR)
  • .webp - WebP slike (OCR)
Podpora OCR: Slike in skenirani PDF-ji so obdelani z optično prepoznavanje znakov (OCR) za izvleči besedilo pred prevajanjem. Za najboljše rezultate, uporabite jasne, visoko ločljivost slike.
Primer (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"
Slike datoteke so obdelane z OCR za izvleči besedilo pred prevajanjem. Prevedeni izhod se vrne kot .txt Datoteka.
Odziv
{
    "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"
}
Vrednosti stanja
pending Datoteka, ki čaka na obdelavo
processing Prevod v teku
completed Prevajanje končano, prenos na voljo
failed Prevajanje ni uspelo (preveri napako_ sporočilo)
GET https://api.translateapi.ai/api/v1/translate/document/{id}/

Preverite stanje prevajanja dokumenta ali prevzemite URL prenosa.

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

Odkrivanje jezika

Odkrivanje jezika je vgrajeno v vsak zahtevek za prevajanje. Nastavite source_language to "auto" (ali ga izpustite) in zaznani jezik se vrne v odgovoru.

POST https://api.translateapi.ai/api/v1/translate/
Telo zahtevka
{
    "text": "Bonjour, comment allez-vous?",
    "target_language": "en"
}
Odziv
{
    "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 Polje v odzivu prikazuje zaznan jezik, ko se uporablja samodejno odkrivanje.

Podprti jeziki

Dobite seznam vseh podprtih jezikov.

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

Prevajalni modeli

Uporabljamo najsodobnejše modele prevajanja odprtega vira, ki delujejo na lastno infrastrukturo GPU. Vsi modeli so komercialno licencirani (Apache 2.0).

Vzorec Jeziki Najboljše za
Helsinki-NLP/opus-mt 50+ jezikovni pari Skupni jeziki (EN, ES, FR, DE, IT, PT, RU, ZH, JA itd.)
Google MADLAD-400 400+ jezikov Redki jeziki, celovita pokritost

API samodejno izbere najboljši model za vaš jezikovni par. Izbirno lahko navedete engine parameter:

Motor Opis
"auto" Privzeto. Najprej poskusi HuggingFace, pade nazaj na MADLAD-400
"huggingface" Force HuggingFace/MarianMT (najhitrejši, 50+ jezikov)
"madlad" Sila MADLAD-400 (400+ jezikov)

Obvladovanje napak

API uporablja standardne kode stanja HTTP za navedbo uspeha ali neuspeha.

Oznaka Opis
200 Uspeh
400 Slaba zahteva - neveljavni parametri
401 Nepooblaščen - neveljaven ali manjka ključ API
402 Zahtevano plačilo - prekoračitev dnevne kvote za znak
429 Preveč zahtev - meja stopenj presežena
503 Storitev Ni na voljo - Prevajalni motor začasno odpovedan
Format odziva na napake
{
    "error": "daily_limit_exceeded",
    "credits_remaining": 0,
    "daily_limit": 100000
}

Mejne vrednosti

Mejne vrednosti se razlikujejo glede na načrt. Glej določanje cen za vse podrobnosti:

Načrt Znaki/mesec Cena
Prosto 250,000 $0 Prosto se prijavite
Začetek 2,500,000 $9/Mo Naroči se
Prof. 10,000,000 $29/Mo Naroči se
Podjetje 40,000,000 $79/Mo Naroči se
Lestvica 125,000,000 $199/Mo Naroči se

Ko boste presegli mejo, boste prejeli 429 Too Many Requests odziv do naslednjega meseca ali nadgradnjo.

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.

Oceni to stran
Hvala za oceno!
/5 temelji na bonitetne ocene