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.

1. Get Your API Key

Create a free account and generate your API key from the dashboard:

  1. Sign up at translateapi.ai/signup
  2. Go to Deska za desko → API ključi
  3. Click "Create API Key" and copy your key

API keys start with ta_ followed by 56 hex characters.

Osnovni URL: https://api.translateapi.ai/api/v1/
2. Make Your First Request

Replace YOUR_API_KEY with the key from your dashboard:

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!"
$ch = curl_init("https://api.translateapi.ai/api/v1/translate/");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer YOUR_API_KEY",
        "Content-Type: application/json"
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "text" => "Hello, world!",
        "target_language" => "es"
    ])
]);

$result = json_decode(curl_exec($ch), true);
echo $result["translated_text"];  // "Hola, mundo!"
payload := strings.NewReader(`{
    "text": "Hello, world!",
    "target_language": "es"
}`)

req, _ := http.NewRequest("POST", "https://api.translateapi.ai/api/v1/translate/", payload)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")

resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()

var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result["translated_text"])  // "Hola, mundo!"
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");

var content = new StringContent(
    JsonSerializer.Serialize(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 = JsonSerializer.Deserialize<JsonElement>(
    await response.Content.ReadAsStringAsync()
);
Console.WriteLine(result.GetProperty("translated_text"));  // "Hola, mundo!"
Odziv
{
    "translated_text": "Hola, mundo!",
    "source_language": "en",
    "target_language": "es",
    "translations": {
        "es": "Hola, mundo!"
    },
    "character_count": 13,
    "translation_time": 0.45
}

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
ApiKey Header
Authorization: ApiKey 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)
engine string Ne Translation engine: "auto" (default), "huggingface", or "madlad". See Translation Models. Prevajalni modeli.

* 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
}
Auto-Detection: Omit source_language or set it to "auto" to automatically detect the source language. The detected language is returned in the source_language response field.

Prevajanje z več targeti

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

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
}
Nasvet: V enem zahtevku lahko prevedete do 50 jezikov.

Serija prevajanja

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

Limits: Max 100 texts per batch, max 300 total items (texts × target languages). Jobs time out 45 minutes after processing starts.
Speed: Common languages (ES, FR, DE) use fast models (~0.1s/text). Less common languages use our multilingual model (~1-3s/text).
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"Done: {processed}/{total} in {result.get('processing_time', 0):.1f}s")
        translations = result["result_data"]["translations"]
        break
    elif status == "failed":
        raise Exception(result.get("error_message", "Translation failed"))
    elif status == "pending":
        print(f"Queued (position {result.get('queue_position', '?')})")
    else:
        print(f"[{status}] {processed}/{total} ({progress:.0f}%)")

    time.sleep(3)
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
    }
}
Real-Time Progress Tracking
Field Opis
status pending (queued, waiting for a GPU worker), processing (actively translating), completed, failed
processed_texts Number of individual translations completed so far. Updates in real time as each text is translated.
progress_percentage Completion percentage (0-100). Calculated from processed_texts / total_texts.
queue_position Your position in the queue when status is "pending" (1 = next up). Null when processing or completed. Use this to estimate wait time and show queue status to your users.
processing_time Total processing time in seconds (available when completed).
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.

Best Practices for Large Workloads
  • Send 1 target language per batch request. This keeps each batch fast and makes progress easy to track.
  • Keep batches at 50-100 texts. Smaller batches complete faster and give you more frequent progress updates.
  • Submit as many batch jobs as you need — our GPU cluster auto-scales to handle demand. Jobs are processed in parallel across multiple instances.
  • On timeout, re-poll the same job_id instead of submitting a new batch. The original job may still be processing on the GPU.
  • Poll every 3-5 seconds. More frequent polling does not speed up processing.

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
Documents
  • .txt - Običajne besedilne datoteke
  • .docx - Besedilni dokumenti
  • .pdf - Dokumenti PDF (vključno s skeniranimi)
Data & Localization
  • .json - Datoteke JSON (vrednosti nizov prevajalcev)
  • .xml - Datoteke XML
  • .srt - Datoteke podnaslovov
  • .po / .pot - Datoteke za prevajanje tekstov
Images (OCR)
  • .jpg / .jpeg - JPEG slike (OCR)
  • .png - Slike PNG (OCR)
  • .tiff / .tif - TIFF slike (OCR)
  • .bmp - BMP slike (OCR)
  • .webp - WebP slike (OCR)
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"
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"
}
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.
GET https://api.translateapi.ai/api/v1/translate/document/{id}/

Preverite stanje prevajanja dokumenta ali prevzemite URL prenosa.

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)

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"},
        ...
    ]
}

View All 186 Languages

Submit Corrections

Suggest a better translation for a given source text. Corrections enter a moderation queue; once approved by our team they surface as "Community Verified" translations for that text.

Note: this endpoint is served from the main domain https://translateapi.ai/api/v1/ (not the api. translation host), and requires an API key.
POST https://translateapi.ai/api/v1/suggestions/
Telo zahtevka
Parameter Vrsta Opis
source_text string The original text that was translated.
source_language string Source language code (e.g. "en").
target_language string Target language code (e.g. "es").
machine_translation string The machine translation you are correcting.
suggested_translation string Your improved translation (must differ from machine_translation).
Example Request
curl -X POST https://translateapi.ai/api/v1/suggestions/ \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
    "source_text": "Hello, world!",
    "source_language": "en",
    "target_language": "es",
    "machine_translation": "Hola, mundo!",
    "suggested_translation": "¡Hola, mundo!"
}'
Odziv
{
    "id": 4213,
    "status": "pending",
    "created": true,
    "message": "Correction submitted for review."
}

Re-submitting the same source/language pair updates your existing suggestion instead of creating a duplicate (returns 200 with "created": false).

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
202 Accepted — Batch job queued successfully
400 Bad Request — Invalid parameters (missing text, unsupported language, etc.)
401 Nepooblaščen - neveljaven ali manjka ključ API
402 Payment Required — Character credits exhausted. Upgrade your plan or purchase a top-up.
403 Forbidden — API key lacks required scope or IP not in whitelist
503 Storitev Ni na voljo - Prevajalni motor začasno odpovedan
Format odziva na napake
{
    "error": "insufficient_credits",
    "credits_remaining": 0
}

Usage Limits

TranslateAPI has no request rate limits. All requests are queued and processed by our auto-scaling GPU cluster. Your plan determines your monthly character allowance:

Načrt Znaki/mesec Batch API Documents 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
Enterprise Unlimited $499/Mo Contact Sales

Ko boste presegli mejo, boste prejeli 402 Payment Required 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. All requests are queued and processed — send hundreds of concurrent requests and they'll all be handled. Real-time translations get priority, batch jobs process in the background.

Need More Credits?

Run out of characters mid-month? Purchase a one-time credit top-up without changing your plan. View top-up packs

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