API документација
Интегрирајте моќен превод во вашите апликации со нашиот едноставен REST API.
Започнување
Во TranslateAPI се обезбедува едноставен REST интерфејс за преведување на текст меѓу 180+ јазици. Сите API крајни точки ги враќаат JSON одговорите.
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
Преведи текст
Преведи го текстот на еден од целите.
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
}
Преведување со повеќе таргети
Го преведува текстот на повеќе јазици во едно барање. Го користи истиот крајен крај како еден превод.
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
}
Пакетен превод
Преведи повеќе текстови одеднаш со синхронизација. Пренеси го пакетот и анкетирај за резултати.
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)
Пример (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 |
Преведувањето не успеа (проверете грешка_ порака) |
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.