Dokumentace API
Integrovat výkonný překlad do vašich aplikací s naší jednoduchou REST API.
Začínáme
TranslateAPI poskytuje jednoduché rozhraní REST pro překlad textu mezi 180+ jazyky. Všechny cílové parametry API vrací JSON odpovědi.
https://api.translateapi.ai/api/v1/
Rychlý start
Proveďte svůj první překlad žádost:
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!"
}
}
Ověření
Ověřit své požadavky pomocí API klíče. Můžete vytvořit API klíče ze svého přístrojová deska.
Autentizace záhlaví (doporučeno)
Authorization: Bearer ta_your_api_key_here
Parametr dotazu
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Přeložit text
Přeložte text do jednoho cílového jazyka.
POST https://api.translateapi.ai/api/v1/translate/
Požadovaný subjekt
| Parametr | Typ | Požadované | Popis zboží |
|---|---|---|---|
text |
string | Ano. | Text k překladu (maximálně 50 000 znaků) |
target_language |
string | Ano * | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Ne. | Source language code. Default: "auto" (auto-detect) |
* Použití target_language (řetězec) pro jeden jazyk nebo target_languages (array) pro vícenásobný. Viz Multi-Target Translation.
Odpověď
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
Multi-Target Translation
Přeložit text do více jazyků v jedné žádosti. Používá stejný cíl jako jeden překlad.
POST https://api.translateapi.ai/api/v1/translate/
Požadovaný subjekt
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
Použití target_languages (array) místo target_language (řetězec) pro více cílů.
Odpověď
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
Překlad č. š.:
Přeložit více textů najednou s async zpracování. Odešlete dávku a anketu o výsledky.
POST https://api.translateapi.ai/api/v1/translate/batch/
Krok 1: Odevzdat č. š.:
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"
}'
Odpověď (HTTP 202 přijata)
{
"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/"
}
Krok 2: Poll pro výsledky
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Příklad aplikace (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)
Odpověď (peníze ve frontě, čekání na GPU)
{
"job_id": "67535b2b-...",
"status": "pending",
"processed_texts": 0,
"total_texts": 3,
"progress_percentage": 0.0,
"queue_position": 3
}
Odpověď (při zpracování)
{
"job_id": "67535b2b-...",
"status": "processing",
"processed_texts": 1,
"total_texts": 3,
"progress_percentage": 33.33,
"queue_position": null
}
Odpověď (dokončena)
{
"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
}
}
Sledování pokroku v reálném čase
Každá odpověď na průzkum zahrnuje pole pokroku v reálném čase, takže můžete sledovat přesně to, co se děje s vaší dávkou:
| Pole | Popis zboží |
|---|---|
status |
Současný stav práce: pending (odkázaná, čekající na pracovníka GPU), processing (aktivní překlad), completed, failed |
processed_texts |
Dosud dokončen počet jednotlivých překladů. Aktualizace v reálném čase jako každý text je přeložen. |
total_texts |
Celkový počet překladů v této dávce (texty × cílové jazyky). |
progress_percentage |
Procento dokončení (-100). Vypočteno ze zpracovávaných_textů / celkem_textů. |
queue_position |
Vaše pozice ve frontě, kdy je stav "trápení" (1 = další nahoru). Při zpracování nebo dokončení null. Použijte toto k odhadu čekací doby a zobrazit stav fronty pro své uživatele. |
processing_time |
Celková doba zpracování v sekundách (k dispozici po dokončení). |
status n vá "pending", pracovníci GPU jsou zaneprázdněni dalšími šaržemi. queue_position Chcete-li vidět, kolik pracovních míst je před vašim (1 = jste na řadě). Vaše práce začne automaticky! Není třeba žádné akce, jen pokračovat v hlasování.
Nejlepší praxe pro velké pracovní zatížení
- Poslat 1 cílový jazyk na žádost o dávku. To udržuje každou dávku rychle a dělá pokrok snadno sledovat.
- Udržujte šarže na 50-100 textech. Menší šarže dokončit rychleji a dát vám častější aktualizace pokroku.
- Spusťte maximálně 2 souběžná várka práce. GPU zpracovává 2 šarže v paralelních dalších pracovních místech fronty a nezačíná rychleji.
- Při timeoutu přepollujte stejnou práci_id místo odevzdání nové dávky. Původní práce může být stále zpracovávána na GPU.
- Vyhledejte každých 3-5 sekund. Častější průzkumy nezrychlují zpracování.
Vícejazyčná č. š.:
Přeložit více textů do více jazyků najednou:
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
Ukončené výsledky_data
{
"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
}
Požadovat parametry
| Parametr | Typ | Požadované | Popis zboží |
|---|---|---|---|
texts |
array | Ano. | Array řetězců k překladu |
target_language |
string | Ano * | Kód cílového jazyka pro jeden jazyk |
target_languages |
array | Ano * | Pole cílových jazykových kódů pro více jazyků |
source_language |
string | Ne. | Source language code. Default: "auto" |
* Uveďte buď target_language nebo target_languagesNe obojí.
job_id. PollCity in California USA GET /api/v1/jobs/{job_id}/ až do status n vá "completed", pak číst result_data pro překlady. progress_percentage sledovat pokrok.
Překlad dokumentu
Přeložit celé dokumenty při zachování formátování. Podporuje více formátů souborů.
POST https://api.translateapi.ai/api/v1/translate/document/
Žádost (multipart/form-data)
| Parametr | Typ | Požadované | Popis zboží |
|---|---|---|---|
file |
file | Ano. | Dokument k překladu (max. 10MB) |
target_language |
string | Ano. | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Ne. | Source language code. Default: "auto" (auto-detect) |
Podporované typy souborů
.txt- Jednoduché textové soubory.docx- Slovní dokumenty.pdf- PDF dokumenty (včetně naskenovaných).json- JSON soubory (překládá hodnoty řetězce).xml- XML soubory
.srt- Soubory titulků.po/.pot- Soubory pro překlad Gettextu.jpg/.jpeg- JPEG obrázky (OCR).png- PNG obrázky (OCR).tiff/.tif- TIFF obrázky (OCR).bmp- BMP obrázky (OCR).webp- WebP obrázky (OCR)
Příklad (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 Složka.
Odpověď
{
"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"
}
Hodnoty stavu
pending |
Soubor nahraný, čekající na zpracování |
processing |
Probíhá překlad |
completed |
Překlad kompletní, ke stažení k dispozici |
failed |
Překlad selhal (kontrola chyb_zpráva) |
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
Zkontrolujte stav překladu dokumentu nebo najděte adresu URL ke stažení.
Odpověď
{
"id": 123,
"original_filename": "document.docx",
"status": "completed",
"translated_file_url": "/media/translated/document_es.docx",
"character_count": 5420
}
Detekce jazyka
Detekce jazyka je zabudována do každé žádosti o překlad. source_language to "auto" (nebo jej vynechat) a zjištěný jazyk je vrácen v odpovědi.
POST https://api.translateapi.ai/api/v1/translate/
Požadovaný subjekt
{
"text": "Bonjour, comment allez-vous?",
"target_language": "en"
}
Odpověď
{
"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
}
Velmi časté (≥ 1/ 100 až < 1/ 100) source_language pole v odpovědi zobrazuje detekovaný jazyk při automatické detekci.
Podporované jazyky
Získejte seznam všech podporovaných jazyků.
GET https://api.translateapi.ai/api/v1/translate/languages/
Odpověď
{
"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"},
...
]
}
Překladatelské modely
Používáme nejmodernější open source překlady modely běžící na naší vlastní GPU infrastruktury. Všechny modely jsou komerčně licencovány (Apache 2.0).
| Vzor | Jazyky | Nejlepší pro |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ párů jazyků | Společné jazyky (EN, ES, FR, DE, IT, PT, RU, ZH, JA atd.) |
| Google MADLAD-400 | 400+ jazyků | Vzácné jazyky, komplexní pokrytí |
API automaticky vybere nejlepší model vašeho jazykového páru. engine parametr:
| Motor | Popis zboží |
|---|---|
"auto" |
Default. Try HuggingFace první, padá zpět na MADLAD-400 |
"huggingface" |
Force HuggingFace/MarianMT (nejrychlejší, 50+ jazyky) |
"madlad" |
Síla MADLAD-400 (400+ jazyků) |
Chyba při manipulaci
API používá standardní HTTP stavové kódy k označení úspěchu nebo selhání.
| Kód | Popis zboží |
|---|---|
200 |
Úspěch |
400 |
Špatná žádost - Neplatné parametry |
401 |
Nepovolený - Neplatný nebo chybějící API klíč |
402 |
Požadovaná platba - Překročená denní kvóta |
429 |
Příliš mnoho žádostí - Překročená sazba |
503 |
Servis Nedostupný - Translation engine dočasně dolů |
Formát odpovědi na chybu
{
"error": "daily_limit_exceeded",
"credits_remaining": 0,
"daily_limit": 100000
}
Limity sazeb
Limity se liší podle plánu. Ceny u úplných údajů:
| Plán | Znaky/Měsíc | Cena | |
|---|---|---|---|
| Volné | 250,000 | $0 | Zaregistrovat se zdarma |
| Starter | 2,500,000 | $9/ne | Přihlásit |
| Pro | 10,000,000 | $29/ne | Přihlásit |
| Obchod | 40,000,000 | $79/ne | Přihlásit |
| Měřítko | 125,000,000 | $199/ne | Přihlásit |
Když překročíte limit, dostanete 429 Too Many Requests odpověď do příštího měsíce nebo si upgrade.
Auto-Scaling Cloud Infrastructure
TranslateAPI běží na specializovaných NVIDIA A100 GPU instancí s automatickým horizontálním škálováním. Při zvyšování poptávky jsou během několika minut spuštěny další GPU instance, aby se udržely rychlé časy odezvy. To znamená, že naše API dokáže zvládnout prakticky neomezené souběžné požadavky bez degradace a to z jediné žádosti na tisíce za minutu.