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. Dobite svoj API ključ
Ustvarite brezplačni račun in ustvarite svoj API ključ iz plošče:
- Vpišite se na translateapi.ai/signup
- Pojdi na Deska za desko → API ključi
- Kliknite na » Ustvarite ključ API « in kopirajte svoj ključ
API tipke se začnejo z ta_ Sledi 56 hex znakov.
https://api.translateapi.ai/api/v1/2. Najprej zahtevajte
Zamenjava VAŠI_API_KEY s ključem iz vaše plošče:
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
Glava ApiKey
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 | Pogon za prevajanje: "avto" (privzeto), "prevajanje" ali "madlad". Glej prevajanje modelov. 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 ali ga nastavite na "auto" za samodejno odkrivanje jezika vira. Zaznani jezik se vrne v source_language odzivno polje.
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
}
}
Sledenje napredku v realnem času
| Polje | Opis |
|---|---|
status |
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. |
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). |
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.
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.
- Pošljite toliko serij delovnih mest, kolikor potrebujete – naše GPU grozdne avtomatične skale za obravnavo povpraševanja. Delovna mesta se obdelujejo vzporedno v več primerih.
- 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.
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
Dokumenti
.txt- Običajne besedilne datoteke.docx- Besedilni dokumenti.pdf- Dokumenti PDF (vključno s skeniranimi)
& Lokalizacija podatkov
.json- Datoteke JSON (vrednosti nizov prevajalcev).xml- Datoteke XML.srt- Datoteke podnaslovov.po/.pot- Datoteke za prevajanje tekstov
Slike (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"},
...
]
}
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 | Sprejeto – serija opravila v vrsti uspešno |
| 400 | Slaba zahteva – neveljavni parametri (manjkanje besedila, nepodprt jezik itd.) |
| 401 | Nepooblaščen - neveljaven ali manjka ključ API |
| 402 | Plačilo zahtevano – Znakovni krediti izčrpani. Nadgradite svoj načrt ali kupite top-up. |
| 403 | Prepovedano – ključ API ni potreben obseg ali IP ni v belem seznamu |
| 503 | Storitev Ni na voljo - Prevajalni motor začasno odpovedan |
Format odziva na napake
{
"error": "insufficient_credits",
"credits_remaining": 0
}
Omejitve uporabe
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 | Serija API | Dokumenti | 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.
Infrastruktura samodejnega odskakanja oblaka
TranslateAPI teče na specifične primere NVIDIA A100 GPU z avtomatskim horizontalnim skaliranjem. Ko povpraševanje poveča, se v nekaj minutah sprožijo dodatne primere GPU za vzdrževanje hitrih odzivnih časov. Vse zahteve so v vrsti in obdelani – pošljite na stotine sočasnih zahtev in bodo obravnavani. Prevodi v realnem času dobijo prednost, serija delovnih mest v ozadju.
Potrebuješ več zaslug?
Zmanjkalo znakov sredi meseca? Nakup enokratnega kreditnega top-up brez spremembe načrta. Oglejte si top-up pakete