API документация
Интегриране на мощен превод във вашите приложения с нашите прости REST API.
Започване
The TranslateAPI предлага прост интерфейс REST за превод на текста между 180+ езици. Всички API крайни точки връщат JSON отговорите.
1. Вземи си API ключ
Създаване на безплатна сметка и генериране на API ключ от таблото:
- Запиши се. translateapi.ai/signup
- Отивай на Табло на таблото → API ключове
- Кликнете на "Създайте API ключ" и копирайте вашия ключ
API клавишите започват с ta_ След това са 56 хекс символа.
https://api.translateapi.ai/api/v1/2. Направете първото си искане
Заменете вашия_API_KEY с ключа от вашата табло:
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
Заглавие на ApiKey
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). Изчислен от преработени_ текстове / total_texts. |
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 цел език на партида искане. Това поддържа всяка партида бързо и прави напредъка лесен за проследяване.
- Съхранявайте партиди на 50-100 текстове. По-малки партиди се завършват по-бързо и ви дава по-чести напредък актуализации.
- Предайте колкото се нуждаете от партидни работни места — нашите 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- Gettext превод файлове
Изображения (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"},
...
]
}
Модели за превод
Ние използваме най-модерните модели за превод на открит източник, които работят по собствената си GPU инфраструктура. Всички модели са търговски лицензирани (Apache 2.0).
| Модел | Езици | Най-добро за |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ езикови двойки | Общи езици (EN, ES, FR, DE, IT, PT, RU, ZH, JA и др.) |
| Google MADLAD-400 | 400+ езици | Редки езици, всеобхватно покритие |
API автоматично избира най-добрият модел за езиковата ви двойка. Можете да зададете опционално engine параметър:
| Двигател | Описание |
|---|---|
"auto" |
По подразбиране. Първата пробва HuggingFace, пада обратно на MADLAD-400 |
"huggingface" |
Force HuggingFace/Мария MT (най-бързо, 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 случаи за поддържане на бърз отговор време. Всички искания са редица и обработени — изпращат стотици едновременни заявки и те ще бъдат обработени. Реално време преводи получават приоритет, пакетни работни места процес в фона.
Трябват ли ти още кредити?
Изчерпване на герои по средата на месеца? Покупка на еднократна кредитна топ-уп без промяна на плана си. Преглед на опаковки с топ-уп