Документация

Биздин жөнөкөй REST API менен колдонмолоруңузга күчтүү которууну интеграциялаңыз.

Баштоо

TranslateAPI текстти 180ден ашык тилдерден которуу үчүн жөнөкөй REST интерфейсин камсыз кылат. Бардык API endpoints return JSON responses.

Негизги 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 (string) бир нече максаттар үчүн.

Жауап
{
    "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.1с за текст), тогда как менее распространенные языки используют нашу большую многоязычную модель (~1-3с за текст). 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 (очередь, ожидает GPU-работника), processing (активдүү которуу), completed, failed
processed_texts Азырынча бүтүрүлгөн жеке которуулардын саны. Тексттер которулган сайын автоматтык түрдө жаңыртылат.
total_texts Бул партиядагы жалпы которуулардын саны (тексттер × максаттуу тилдер).
progress_percentage Процент (0-100). Processed_texts / total_texts боюнча эсептелет.
queue_position Сиздин кезектеги ордуңуз, эгерде абал "окуя күтүлүүдө" болсо (1 = кийинки орунда). Эгерде абал "окуя күтүлүүдө" же "окуя күтүлүүдө" болсо, анда сиздин ордуңуз нулевая. Ушуну күтүү убактысын болжолдоо үчүн жана кезектин абалын колдонуучуларга көрсөтүү үчүн колдоносуз.
processing_time Жалпы иштетүү убактысы секундаларда (жалпы иштетүү аяктагандан кийин жеткиликтүү).
Типи: Кайсы status болуп саналат "pending", GPU's workers are busy with other batch. Check queue_position Сиздин тапшырманын алдында канча тапшырма бар экендигин көрүү үчүн (1 = Сиз кийинкисисиз). Сиздин тапшырма автоматтык түрдө башталат — эч кандай иш-аракет талап кылынбайт, жөн гана сурамжылоону улантыңыз.
Чоң иш жүктөмдөрү үчүн мыкты тажрыйбалар
  • Бир пакетке 1 тил жөнөтүү. Бул ар бир пакетти тездетип, процессти көзөмөлдөөгө мүмкүндүк берет.
  • 50-100 тексттен турган пакеттерди сактаңыз. Кичинекей пакеттер тез бүтүп, көбүрөөк жаңыртууларды берет.
  • Бир убакта 2ден ашык пакеттик тапшырмаларды аткаруу. GPU 2 пакетти параллельдүү иштетет - кошумча тапшырмалар кезекке коюлат жана тездетилгенде иштетилбейт.
  • Время ожидания закончилось, повторить запрос на тот же job_id вместо отправки новой партии. Первоначальное задание все еще может обрабатываться на GPU.
  • Ар бир 3-5 секунд сайын сурамжылоо жүргүзүү. Кайра-кайра сурамжылоо процессти тездетет.
Көп тилдүү пакет

Бир эле учурда бир нече текстти бир нече тилге которуу:

{
    "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 Ооба Таржимаемый документ (максимум 10 Мб)
target_language string Ооба Target language code (e.g., "es", "fr", "de")
source_language string Жок Source language code. Default: "auto" (auto-detect)
Колдонулган файл түрлөрү
  • .txt - Текст файлдары
  • .docx - Word документтери
  • .pdf - PDF документтери (скандалгандары да)
  • .json - JSON файлдары (стринг маанилерин которуу)
  • .xml - XML файлдары
  • .srt - Субтитр файлдары
  • .po / .pot - Gettext которуу файлдары
  • .jpg / .jpeg - JPEG сүрөттөрү (OCR)
  • .png - PNG сүрөттөрү (OCR)
  • .tiff / .tif - TIFF сүрөттөрү (OCR)
  • .bmp - BMP сүрөттөрү (OCR)
  • .webp - WebP сүрөттөрү (OCR)
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"
Сүрөт файлдары которуудан мурун текстти чыгаруу үчүн ОКР менен иштелип чыгат. Котормо чыгарылыш катары кайтарылат .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 Таржимать не удалось (check error_message)
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
}

Тил аныктоо

Тилди аныктоо ар бир которуу зарылчылыгына киргизилет. Set 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"},
        ...
    ]
}

Котормо модели

Биз өзүбүздүн 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/MarianMT (эң тез, 50ден ашык тилде)
"madlad" Force 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 кийинки айга чейин же жаңыртканга чейин жооп берилбейт.

Авто-масштабдуу булут инфраструктурасы

TranslateAPI автоматтык горизонталдык масштабдаштыруу менен NVIDIA A100 GPU экземплярларында иштей алат. Талап көбөйгөн сайын, кошумча GPU экземплярлары бир нече мүнөттүн ичинде иштей баштайт, бул тез жооп берүү убактысын сактап калат. Бул биздин API бир эле учурда бир нече талапты аткара алат, бир мүнөт ичинде бир гана талаптан миңдеген талапка чейин.

Бул бетти баалоо
Рейтингиңиз үчүн рахмат!
/5 негизделген баалар