Документація з 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) Перш за все просіть Бога
Замініть ваш_ 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 | Ні | Рушій перекладу: " авто " (типова поведінка), " дискобрухт " або " madlad." Див. моделі перекладу. Моделі перекладу. |
Використання 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 (сервер, чекає працівника GPU), processing (активно переклад) completed, Description of a condition. Do not translate key words (# V1S #, # V1 #,...) 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 мову призначення на пакетний запит. Використання цього параметра пришвидшує роботу кожної пакетної групи, отже, ви можете зробити поступ простим для стеження.
- Тримайте пакети на 50- 100 текстах. Менші пакети завершуються швидше і надають вам змогу отримувати частіші оновлення поступу.
- Надсилайте будь- яку кількість пакетних завдань, скільки вам потрібно, у автоматичному режимі групи GPU для обробки попиту. Завдання обробляються паралельно у декількох випадках.
- Під час перезапуску буде виконано дію з тією самою назвою job_ id замість надсилання нової пакетної копії. Початкове завдання може бути оброблено у GPU.
- Частіші опитування не пришвидшують обробки.
Переклад документа
Перекладати всі документи під час збереження форматування. Підтримує декілька форматів файлів.
POST https://api.translateapi.ai/api/v1/translate/document/
Запит (багато частин/ даних)
| Параметр | Тип | Обов' язково | Опис |
|---|---|---|---|
file |
file | Так. | Документ, який слід перекласти (макс 10 Мб) |
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) Image/ info menu item (should be translated).tiff/.tif- Зображення TIFF (OCR).bmp- Зображення BMP (OCR).webp- Зображення WebP (OCR) Image/ info menu item (should be translated)
Приклад (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.
| Модель | Мови | Найкраще для |
|---|---|---|
| Helsinki-NLP/opus-mt | Пари мов 50+ | Загальні мови (EN, ES, FR, DE, IT, PT, RU, ZH, JA тощо) |
| Google MADLAD-400 | 400+ Мови | Рідкі мови, вичерпні повідомлення |
Програмний інтерфейс програм автоматично вибирає найкращу модель вашої пари мов. За бажання, ви можете вказати назву engine параметр:
| Рушій | Опис |
|---|---|
"auto" |
Типове значення. Спочатку Тріес Huging Face, повертається до MADLAD- 400 |
"huggingface" |
Примусово збирати Face/MariMT (найшвидші, 50+ мов) |
"madlad" |
Примусово встановити MADLAD- 400 (400 мовами+) |
Обробка помилок
API використовує стандартні коди стану HTTP для позначення успіху або невдачі.
| Код | Опис |
|---|---|
| 200 | Успіх |
| 202 | Успішно прийнято завдання з черги |
| 400 | Помилковий запит } Некоректні параметри (відсутній текст, непідтримувана мова тощо) |
| 401 | Несанкціонований - некоректний або відсутній ключ API |
| 402 | Отримані гроші.Основіть свій план або купуйте максимвол. |
| 403 | Заборонена клавіша API не містить потрібної області видимості або IP не знаходиться у списку білих |
| 503 | Недоступний рушій перекладу Service |
Формат відповіді на помилку
{
"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:
| План | Символи/Month | Пакетний API | Документи | Ціна | |
|---|---|---|---|---|---|
| Вільно | 250,000 | — | — | $0 | Вільний підпис |
| Започаткування | 2,500,000 | $9/моunit description in lists | Підписатися | ||
| Pro | 10,000,000 | $29/моunit description in lists | Підписатися | ||
| Бізнес | 40,000,000 | $79/моunit description in lists | Підписатися | ||
| Масштаб | 125,000,000 | $199/моunit description in lists | Підписатися | ||
| Enterprise | Unlimited | $499/моunit description in lists | Contact Sales |
Коли ви перевищите свою норму, ви отримаєте 402 Payment Required відповідання до наступного місяця або оновлення.
Автоматична інфраструктура хмар
TranslateAPI працює у спеціально визначених екземплярах NVIDIA A100 GPU з автоматичним горизонтальним масштабуванням. Коли зростає попит, за декілька хвилин буде запущено додаткові екземпляри GPU для підтримки пришвидшеної відповіді. Всі запити буде поставлено у чергу і оброблено, програма надсилає сотні послідовних запитів, і всі ці запити буде оброблено. У режимі реального часу переклади мають пріоритет надходження пріоритету, пакетний процес завдань на тлі.
Чи потрібно більше Подяки?
Купити один раз на кредит без зміни плану. Перегляд пакунків верхнього рівня