Ҳужжатлаштириш

Бизнинг оддий 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 калитларидан фойдаланиб талабларингизни тасдиқланг. Сиз ўзингизнинг 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 дақиқа ичида тугатилади. Энг яхши натижалар учун, ҳар бир пакет талаби учун 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)
Жавоб (ўтказиб юборилган — навбатда, GPU кутмоқда)
{
    "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 = сиз кейингисиз). Сизнинг ишингиз автоматик равишда бошланади - ҳаракат талаб қилинмайди, фақат сўровни давом эттиринг.
Кўп иш юкламалари учун энг яхши амалиётлар
  • Ҳар бир партия талаби учун 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 Ҳа Таржима қилинадиган ҳужжат (max 10MB)
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"
Расм файллари таржима қилишдан олдин матнни ажратиш учун 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 Таржима муваффақиятсиз якунланди (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
}

Тилни аниқлаш

Тилни аниқлаш ҳар бир таржима талабига киритилади. 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 Кейинги ойгача ёки янгилашингизгача жавоб бермайди.

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 асосланган Рейтинглар