API документация

Интегриране на мощен превод във вашите приложения с нашите прости REST API.

Започване

The TranslateAPI предлага прост интерфейс REST за превод на текста между 180+ езици. Всички API крайни точки връщат JSON отговорите.

1. Вземи си API ключ

Създаване на безплатна сметка и генериране на API ключ от таблото:

  1. Запиши се. translateapi.ai/signup
  2. Отивай на Табло на таблото → API ключове
  3. Кликнете на "Създайте API ключ" и копирайте вашия ключ

API клавишите започват с ta_ След това са 56 хекс символа.

Основен URL: 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
Дръжте API ключовете в безопасност! Не ги излагайте в код на клиента или в обществени складове.

Превеждане на текста

Преведи текста на един език на целта.

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
}
Съвет: Можете да преведете до 50 езика в едно искане.

Превод на партидата

Преведи няколко текста едновременно с синхронна обработка. Изпращане на партида и анкета за резултати.

Ограничения: Макс. 100 текстове на партида, макс. 300 общо елементи (текстове × целеви езици).
Скорост: Общи езици (ES, FR, DE) използват бързи модели (~0.1s/text). По-малко езици използват нашия многоезичен модел (~1-3s/text).
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"
}
Поддръжка на OCR: Изображения и сканирани PDF се обработват с оптическо разпознаване на символи (OCR) за извличане на текст преди превода. За най-добри резултати, използвайте ясно, високоразпределение изображения.
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"},
        ...
    ]
}

Преглед на всички 186 езици

Модели за превод

Ние използваме най-модерните модели за превод на открит източник, които работят по собствената си 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 случаи за поддържане на бърз отговор време. Всички искания са редица и обработени — изпращат стотици едновременни заявки и те ще бъдат обработени. Реално време преводи получават приоритет, пакетни работни места процес в фона.

Трябват ли ти още кредити?

Изчерпване на герои по средата на месеца? Покупка на еднократна кредитна топ-уп без промяна на плана си. Преглед на опаковки с топ-уп

Оцени тази страница
Благодаря за оценката!
/5 базирано на рейтинги