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

Интегрирајте моќен превод во вашите апликации со нашиот едноставен REST API.

Започнување

Во TranslateAPI се обезбедува едноставен REST интерфејс за преведување на текст меѓу 180+ јазици. Сите API крајни точки ги враќаат JSON одговорите.

Основен URL: https://api.translateapi.ai/api/v1/
Брз почеток

Побарај го првото барање за преведување:

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!"
    }
}

Аутентификација

Автентифицирајте ги вашите барања користејќи API- клуч. Може да креирате API клучеви од вашите копчиња Табла со табла.

Автентификација на заглавјето (препорачана)
Authorization: Bearer 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)

* Користи 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
}

Преведување со повеќе таргети

Го преведува текстот на повеќе јазици во едно барање. Го користи истиот крајен крај како еден превод.

Совет: Можеш да преведеш до 50 јазици во едно барање.
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
}

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

Преведи повеќе текстови одеднаш со синхронизација. Пренеси го пакетот и анкетирај за резултати.

Ограничувања: максимум 500 текстови по серија, максимум 750 вкупни ставки (текстови × целни јазици). Работните работни места се намалат 30 минути по започнувањето на процесот (не се пребројува времето на чекање).
Времето на обработка варира според јазикот: заедничките јазици (пански, француски, германски итн.) користат брзи модели (~0,1s по текст), додека помалку вообичаените јазици го користат нашиот голем јазичен модел (~1-3s по текст). Серијата од 100 текстови обично завршува за 10- 30 секунди за заеднички јазици, или 2- 5 минути за помалку вообичаени. За најдобри резултати, испратете 1 целен јазик по барање на партија и задржите големина на партидата под 50 текстови.
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"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)
Одговор (задолжување — во редица, чекање на ГПУ)
{
    "job_id": "67535b2b-...",
    "status": "pending",
    "processed_texts": 0,
    "total_texts": 3,
    "progress_percentage": 0.0,
    "queue_position": 3
}
Одговор (при обработка)
{
    "job_id": "67535b2b-...",
    "status": "processing",
    "processed_texts": 1,
    "total_texts": 3,
    "progress_percentage": 33.33,
    "queue_position": null
}
Одговор (довршен)
{
    "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 Број на индивидуални преводи завршени досега. Ажурирања во реално време додека секој текст се преведува.
total_texts Вкупен број на преводи во оваа серија (текстови × целни јазици).
progress_percentage Процент за довршување (0- 100). Пресметан е од процесирани_ текстови / тотал_ текстови.
queue_position Вашата позиција во редот кога статусот е „ пенинг “ (1 = следен). Нулај при обработката или завршувањето. Користете го ова за да го процените времето за чекање и прикажете статус на редицата на вашите корисници.
processing_time Вкупно време за обработка во секунди (достапно по завршувањето).
Совет: Кога status е "pending"Работниците на ГПУ се зафатени со други серии. queue_position Твојата работа ќе започне автоматски — нема потреба од акција, само продолжи со анкетирањето.
Најдобри практики за големи работни оптоварувања
  • Испрати 1 одреден јазик по барање за партида. Ова ја одржува секоја партида брзо и прави напредок лесен за следење.
  • Помалите серија завршуваат побрзо и ви даваат почесто ажурирање на напредокот.
  • Извршува најмногу две истовремени серии задачи. ГПУ процесира 2 серии паралелно — дополнителни задачи редица и нема да започне побрзо.
  • При тајм- аут, повторно пополнете го истиот job_ id наместо да испратите нова серија. Оригиналната задача можеби сѐ уште се обраќа на GPU.
  • Почестите анкети не го забрзуваат процесот.
Пакет со повеќе јазици

Преведи повеќе текстови на повеќе јазици одеднаш:

{
    "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Не и двете.

Асинхронизирање на процесот: Пакетните барања се враќаат веднаш со job_id. Анкета GET /api/v1/jobs/{job_id}/ до status е "completed", потоа читај result_data за преводи. progress_percentage Да го следиме напредокот.

Преведување на документ

Преведување на цели документи при зачувување на форматирањето. Подржува повеќе формати на датотеки.

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 - Датотеки со преведување на текст
  • .jpg / .jpeg - JPEG слики (OCR)
  • .png - PNG слики (OCR)
  • .tiff / .tif - TIFF слики (OCR)
  • .bmp - BMP слики (OCR)
  • .webp - WebP слики (OCR)
Поддршка за ОПЗ: Датотеки со слики и скенирани PDF се обраќаат со оптичко препознавање на знаци (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"
Датотеките со слики се обраќаат со OCR за да го отпакуваат текстот пред преведувањето. Преведениот излез се враќа како .txt Досие.
Одговор
{
    "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"
}
Вредности на статусот
pending Датотеката е качена, чека да биде обработена
processing Во тек е преведувањето
completed Преведувањето е завршено, симнувањето е достапно
failed Преведувањето не успеа (проверете грешка_ порака)
GET https://api.translateapi.ai/api/v1/translate/document/{id}/

Проверете го статусот на преведувањето на документот или довлечете го URL за симнување.

Одговор
{
    "id": 123,
    "original_filename": "document.docx",
    "status": "completed",
    "translated_file_url": "/media/translated/document_es.docx",
    "character_count": 5420
}

Откривање на јазикот

Откривањето на јазикот е вградено во секој барање за превод. source_language to "auto" (или пропушти го) и откриениот јазик се враќа во одговорот.

POST https://api.translateapi.ai/api/v1/translate/
Барај тело
{
    "text": "Bonjour, comment allez-vous?",
    "target_language": "en"
}
Одговор
{
    "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
}

Те молам. source_language полето во одговорот го покажува детектираниот јазик кога се користи автоматска детекција.

Поддржани јазици

Земи ја листата на сите поддржани јазици.

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 Успех
400 Лошо барање - невалидни параметри
401 Неовластен - невалиден или недостасува API- клуч
402 Потребна е исплата - Дневна квота за карактер
429 Премногу барања - ограничување на стапката
503 Сервисот не е достапен - преведувачкиот мотор привремено се спушта
Формат за одговор на грешка
{
    "error": "daily_limit_exceeded",
    "credits_remaining": 0,
    "daily_limit": 100000
}

Ограничувања на стапката

Ограничувањата варираат според планот. Види цени за целосни детали:

План Знаци/месеци Цена
Слободен 250,000 $0 Слободно потпиши се
Стартер 2,500,000 $9/мо Претплати се
Проф. 10,000,000 $29/мо Претплати се
Бизнис 40,000,000 $79/мо Претплати се
Скалира 125,000,000 $199/мо Претплати се

Кога ќе ја надминеш границата, ќе добиеш 429 Too Many Requests Одговор до следниот месец или ќе го надоградите.

Auto-Scaling Cloud Infrastructure

TranslateAPI runs on dedicated NVIDIA A100 GPU instances with automatic horizontal scaling. When demand increases, additional GPU instances are launched within minutes to maintain fast response times. This means our API can handle virtually unlimited concurrent requests without degradation — from a single request to thousands per minute.

Оцени ја оваа страница
Ви благодарам за оценката!
/5 базирано на рејтинг