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:
- Sign up at translateapi.ai/signup
- Go to Deska za desko → API ključi
- Click "Create API Key" and copy your key
API keys start with ta_ followed by 56 hex characters.
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
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
}
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
}
Serija prevajanja
Prevedite več besedil naenkrat z async obdelavo. Predložite serijo in anketo za rezultate.
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"
}
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"},
...
]
}
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.
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