API документација
Интегрирајте моќен превод во вашите апликации со нашиот едноставен REST API.
Започнување
Во TranslateAPI се обезбедува едноставен REST интерфејс за преведување на текст меѓу 180+ јазици. Сите API крајни точки ги враќаат JSON одговорите.
1. Земи си го API клучот
Креирајте бесплатна сметка и генерирајте го вашиот API клуч од таблата со инструменти:
- Пријавете се. translateapi.ai/signup
- Оди на Табла со табла → API- тастери
- Кликнете на „ Креирај API- клуч“ и копирајте го вашиот клуч
API копчињата почнуваат со ta_ По него следат 56 хекс знаци.
https://api.translateapi.ai/api/v1/2. Почнете со првото барање
Замени го ВАШАТА_ АПИ_КЕЈ со клучот од вашата табла со табла:
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!"
Одговор
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
Аутентификација
Автентифицирајте ги вашите барања користејќи API- клуч. Може да креирате API клучеви од вашите копчиња Табла со табла.
Автентификација на заглавјето (препорачана)
Authorization: Bearer ta_your_api_key_here
АпиКеј заглавје
Authorization: ApiKey ta_your_api_key_here
Параметр за испрашување
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Преведи текст
Преведи го текстот на еден од целите.
POST https://api.translateapi.ai/api/v1/translate/
Барај тело
| Параметр | Тип | Неопходно | Опис |
|---|---|---|---|
text |
string | Да. | Текст за преведување (максимум 50.000 знаци) |
target_language |
string | Да. | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Не. | Source language code. Default: "auto" (auto-detect) |
engine |
string | Не. | Преведувачки мотор: „ автоматски “ (стандардно), „ преведувачко лице “ или „ мадлад “. Видете го моделот за превод. Модели на преведување. |
* Користи target_language (страница) за еден јазик или target_languages (масив) за повеќекратен. Види Преведување со повеќе таргети.
Одговор
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
source_language Или намести го. "auto" за автоматско откривање на изворниот јазик. Откриениот јазик се враќа на source_language Поле за одговор.
Преведување со повеќе таргети
Го преведува текстот на повеќе јазици во едно барање. Го користи истиот крајен крај како еден превод.
POST https://api.translateapi.ai/api/v1/translate/
Барај тело
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
Користи target_languages (масив) наместо target_language За повеќебројни мети.
Одговор
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
Пакетен превод
Преведи повеќе текстови одеднаш со синхронизација. Пренеси го пакетот и анкетирај за резултати.
POST https://api.translateapi.ai/api/v1/translate/batch/
Чекор 1: Испраќање пакетно
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"
}'
Одговор (HTTP 202 прифатен)
{
"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/"
}
Чекор 2: Анкета за резултати
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Пример за анкетирање (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)
Одговор (довршен)
{
"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
}
}
Следење на напредок во реално време
| Поле | Опис |
|---|---|
status |
pending (Наследник, чекање на работник на ГПУ), processing (активно преведување), completed, failed |
processed_texts |
Број на индивидуални преводи завршени досега. Ажурирања во реално време додека секој текст се преведува. |
progress_percentage |
Процент за довршување (0- 100). Пресметан е од процесирани_ текстови / тотал_ текстови. |
queue_position |
Вашата позиција во редот кога статусот е „ пенинг “ (1 = следен). Нулај при обработката или завршувањето. Користете го ова за да го процените времето за чекање и прикажете статус на редицата на вашите корисници. |
processing_time |
Вкупно време за обработка во секунди (достапно по завршувањето). |
Пакет со повеќе јазици
Преведи повеќе текстови на повеќе јазици одеднаш:
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
Завршени резултати_ податоци
{
"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
}
Барам параметри
| Параметр | Тип | Неопходно | Опис |
|---|---|---|---|
texts |
array | Да. | Преведување на низи |
target_language |
string | Да. | Код на целен јазик за еден јазик |
target_languages |
array | Да. | Ориентација на кодовите на целта за повеќе јазици |
source_language |
string | Не. | Source language code. Default: "auto" |
* Осигури било кое од нив target_language или target_languagesНе и двете.
Најдобри практики за големи работни оптоварувања
- Испрати 1 одреден јазик по барање за партида. Ова ја одржува секоја партида брзо и прави напредок лесен за следење.
- Помалите серија завршуваат побрзо и ви даваат почесто ажурирање на напредокот.
- Поднесете колку што ви треба — нашите GPU кластери автоматски маштаби за справување со побарувачката. Работата се обработува паралелно во повеќе случаи.
- При тајм- аут, повторно пополнете го истиот job_ id наместо да испратите нова серија. Оригиналната задача можеби сѐ уште се обраќа на GPU.
- Почестите анкети не го забрзуваат процесот.
Преведување на документ
Преведување на цели документи при зачувување на форматирањето. Подржува повеќе формати на датотеки.
POST https://api.translateapi.ai/api/v1/translate/document/
Барање (многу делови/формални податоци)
| Параметр | Тип | Неопходно | Опис |
|---|---|---|---|
file |
file | Да. | Документот за преведување (максимум 10MB) |
target_language |
string | Да. | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Не. | Source language code. Default: "auto" (auto-detect) |
Поддржани типови на датотеки
Документи
.txt- Обични текстуални датотеки.docx- Речни документи.pdf- PDF документи (вклучително и скенирани)
& Локализација на податоци
.json- JSON датотеки (вредности на низите во преведување).xml- XML датотеки.srt- Датотеки со субтитри.po/.pot- Датотеки со преведување на текст
Слики (OCR)
.jpg/.jpeg- JPEG слики (OCR).png- PNG слики (OCR).tiff/.tif- TIFF слики (OCR).bmp- BMP слики (OCR).webp- WebP слики (OCR)
Пример (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"
Одговор
{
"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}/
Проверете го статусот на преведувањето на документот или довлечете го URL за симнување.
Вредности на статусот
pending |
Датотеката е качена, чека да биде обработена |
processing |
Во тек е преведувањето |
completed |
Преведувањето е завршено, симнувањето е достапно |
failed |
Преведувањето не успеа (проверете грешка_ порака) |
Поддржани јазици
Земи ја листата на сите поддржани јазици.
GET https://api.translateapi.ai/api/v1/translate/languages/
Одговор
{
"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"},
...
]
}
Модели на преведување
Сите модели се комерцијално лиценцани (Apache 2.0).
| Модел | Јазици | Најдобро за |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ парови на јазик | Заеднички јазици (EN, ES, FR, DE, IT, PT, RU, ZH, JA итн.) |
| Google MADLAD-400 | 400+ јазици | Ретки јазици, сеопфатно покривање |
API автоматски го избира најдобриот модел за вашиот пар на јазик. Опционо можете да го наведете engine параметар:
| Двигач | Опис |
|---|---|
"auto" |
Стандардно. Прво се обидува да се врати на МАДЛАД-400 |
"huggingface" |
Форсирај го лицето/МаријанМТ (најбрзо, 50+ јазици) |
"madlad" |
Форсирај МАДЛАД-400 (400+ јазици) |
Раководење со грешки
API користи стандардни HTTP- кодови за статус за да покаже успех или неуспех.
| Код | Опис |
|---|---|
| 200 | Успех |
| 202 | Прифатено — пакетна задача е успешно прифатена |
| 400 | Лошо барање — невалидни параметри (недостасува текст, неподдржан јазик итн.) |
| 401 | Неовластен - невалиден или недостасува API- клуч |
| 402 | Потребна е исплата — карактерни кредити исцрпени. Надоградете го вашиот план или купите топ-up. |
| 403 | Забрането — API- клучот недостасува потребен опсег или IP не е во белата листа |
| 503 | Сервисот не е достапен - преведувачкиот мотор привремено се спушта |
Формат за одговор на грешка
{
"error": "insufficient_credits",
"credits_remaining": 0
}
Ограничувања на употребата
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:
| План | Знаци/месеци | Пакетна API | Документи | Цена | |
|---|---|---|---|---|---|
| Слободен | 250,000 | — | — | $0 | Слободно потпиши се |
| Стартер | 2,500,000 | $9/мо | Претплати се | ||
| Проф. | 10,000,000 | $29/мо | Претплати се | ||
| Бизнис | 40,000,000 | $79/мо | Претплати се | ||
| Скалира | 125,000,000 | $199/мо | Претплати се | ||
| Enterprise | Unlimited | $499/мо | Contact Sales |
Кога ќе ја надминеш границата, ќе добиеш 402 Payment Required Одговор до следниот месец или ќе го надоградите.
Автоскалирање на облачната инфраструктура
TranslateAPI работи на дефинирани примероци на NVIDIA A100 GPU со автоматско хоризонтално скалирање. Кога се зголемува побарувачката, се лансираат дополнителни случаи на GPU во рок од минути за одржување на брзите одговори. Сите барања се поставени во редица и обработени — испраќаат стотици истовремени барања и сите тие ќе бидат справувани. Преведувачите во реално време добиваат приоритет, процес на пакетни задачи во позадината.
Потребни се уште заслуги?
Купувај еднократен кредит без да го смениш планот. Прикажи ги врвните пакети