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.
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
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.
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"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). |
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.
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)
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"
.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.