Ҳужжатлаштириш
Бизнинг оддий REST API билан дастурларингизга кучли таржимани интеграция қилинг.
Ишни бошлаш
TranslateAPI матнни 180 дан ортиқ тилларга таржима қилиш учун оддий REST интерфейсини тақдим этади. Барча API охирги нуқталари JSON жавобларини қайтаради.
1. API калитингизни олинг
Бепул ҳисоб яратинг ва ўзингизнинг API калитингизни бошқарув панелидан яратинг:
- Қайта рўйхатдан ўтиш translateapi.ai/signup
- Га бориш Дастгоҳ панели → API калитлари
- "API калитини яратиш" тугмасини босинг ва ўз калитингизни нусха олинг
API қулфлари қуйидаги билан бошланади ta_ 56 ўн олтилик белгилар билан давом эттирилади.
https://api.translateapi.ai/api/v1/2. Биринчи илтимосни юборинг
YOUR_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
Матнни таржима қилиш
Матнни битта мақсад тилига таржима қилиш.
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 | Йўқ | Таржима мотори: "auto" (стандарт), "huggingface" ёки "madlad". Таржима моделларини кўринг. Таржима моделлари. |
* Фойдаланилган 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
}
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 (string) кўплаб мақсадлар учун.
Жавоб
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
Таржималар тўплами
Бир вақтда бир неча матнларни асинхрон ишлаш билан таржима қилинг. Барча матнларни юборинг ва натижалар учун сўров ўтказинг.
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 (навбатда, GPU ходимини кутмоқда), processing (Кечалари) таржима қилгувчилар билан қасам. completed, failed |
processed_texts |
Ҳозиргача тугалланган индивидуал таржималар сони. Ҳар бир матн таржима қилинганда реал вақтда янгиланади. |
progress_percentage |
Тугатиш фоизи (0-100). Processed_texts / 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да ишлаётган бўлиши мумкин.
- Ҳар 3-5 сонияда сўров. Кўпроқ сўровлар ишлаш тезлигини оширмайди.
Ҳужжат таржимаси
Форматлашни сақлаган ҳолда бутун ҳужжатни таржима қилиш. Кўп файл форматларини қўллаб-қувватлайди.
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 таржима файллари
Расмлар (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"
}
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
Ҳужжат таржимасининг ҳолатини текшириш ёки юклаб олиш URL'ини олиш.
Ҳолат қийматлари
pending |
Файл юклаб олинди, ишлов беришни кутмоқда |
processing |
Таржима амалга оширилмоқда |
completed |
Таржима тугатилди, юклаб олиш мумкин |
failed |
Таржима муваффақиятсиз якунланди (check error_message) |
Ёрдамчи тиллар
Ҳамма қўлланиладиган тиллар рўйхатини олиш.
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 | Ютуқ |
| 202 | Қўлланган — партия иш навбати муваффақиятли тугатилди |
| 400 | Ёмон талаб — нодуруст параметрлар (матн йўқ, қўллаб-қувватланмайдиган тил ва ҳоказо) |
| 401 | Ҳуқуқсиз - API калити йўқ ёки нотўғри |
| 402 | Ўтказиб бериш талаб қилинмоқда — Картина кредитлари тугади. Сизнинг планингизни янгиланг ёки тўлдириб олинг. |
| 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 Кейинги ойгача ёки янгилашингизгача жавоб бермайди.
Авто-Скалинг Cloud Infrastructure
TranslateAPI махсус NVIDIA A100 GPU нусхаларида автоматик горизонтал масштаблаш билан ишлайди. Талаб ошганда, тезкор жавоб вақтини сақлаш учун қўшимча GPU нусхалари дақиқалар ичида ишга туширилади. Барча талаблар навбатга қўйилади ва ишланади — бир вақтда юзлаб талаблар юборилади ва улар барчаси ишланади. Реал вақтдаги таржималар устуворлик олади, фонда партия ишларини ишлаш.
Кредитлар керакми?
Ойнинг ўртасида аломатлар тугайдими? Бир марталик кредитни харид қилинг ва ўзингизнинг режангизни ўзгартирманг. Тозалаш пакетларини кўриш