API құжаттамасы

Біздің қарапайым REST API көмегімен қолданбаларға күшті аудармаларды енгізіңіз.

Бастау

TranslateAPI мәтіндерді 180- ден астам тілге аудару үшін қарапайым REST интерфейсін ұсынады. Барлық 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 кілті арқылы аутентификациялау. Сіз өзіңіздің басқару панелі.

Айдар аутентификациясы (Жәрдемдесу)
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 (string) бір тіл үшін немесе 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 минутта аяқталады. Ең жақсы нәтиже алу үшін бір дестедегі тілдер саны 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 жұмысшылары басқа дестелермен айналысып жатыр. Тексеріңіз queue_position Сіздің алдында қанша тапсырма бар екенін көру үшін (1 = Сіз келесі). Тапсырмаңыз автоматты түрде басталады - әрекет қажет емес, тек сұрау жүргізіп тұрыңыз.
Үлкен жүктемелер үшін ең жақсы тәжірибелер
  • Бір тапсырма үшін бір тіл жіберілсін. Бұл әрбір тапсырманы жылдам етіп, орындалуын қадағалауды жеңілдетеді.
  • 50- 100 мәтіннен тұратын дестелерді сақтаңыз. Кішірек дестелер тезірек аяқталады және орындалу барысын жиірек жаңартады.
  • Бір мезгілде максимум 2 тапсырманы орындау. Графикалық процессор параллельді түрде 2 тапсырманы орындайды - қосымша тапсырмалар кезекке тұрып тезірек басталмайды.
  • Күту уақыты аяқталғанда, жаңа тапсырма пакетін жіберудің орнына сол job_ id үшін қайта сұрау. Бастапқы тапсырма әлі де графикалық процессорда өңделуі мүмкін.
  • Әрбір 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 аудармалар үшін. Use 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 файлдары аударудан бұрын мәтінін шығару үшін оптикалық таңбаны танумен өңделеді. Ең жақсы нәтижеге жету үшін, ажыратымдылығы жоғары, анық суреттерді қолданыңыз.
Мысал (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 % 1 файлы.
Жауап
{
    "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 Аудару жаңылысы (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" 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 графикалық процессорының экземплярларында жұмыс істейді. Талап артқанда, қосымша графикалық процессордың экземплярлары минуттар ішінде жегіліп, жауап беру уақытын тездетеді. Бұл біздің API- ның бір мезгілде шексіз сұраныстарды қабылдай алатындығын білдіреді - минутына бір сұраныстан мыңдаған сұраныстарға дейін.

Парақты бағалау
Бағалағаныңыз үшін рахмет!
/5 негізінде Бағалау