API құжаттамасы
Біздің қарапайым REST API көмегімен қолданбаларға күшті аудармаларды енгізіңіз.
Бастау
TranslateAPI мәтіндерді 180- ден астам тілге аудару үшін қарапайым REST интерфейсін ұсынады. Барлық API аяқтау нүктелері JSON жауаптарын қайтарады.
1. API кілтін алу
Тіркелгіні құрып, API кілтін басқару панелінен құрыңыз:
- Жазылу translateapi.ai/signup
- Келесіге өту Аспаптар панеліComment → 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 кілті арқылы аутентификациялау. Сіз өзіңіздің басқару панелі.
Айдар аутентификациясы (Жәрдемдесу)
Authorization: Bearer ta_your_api_key_here
API кілт айдары
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, екеуі де емес.
Үлкен жүктемелер үшін ең жақсы тәжірибелер
- Бір тапсырма үшін бір тіл жіберілсін. Бұл әрбір тапсырманы жылдам етіп, орындалуын қадағалауды жеңілдетеді.
- 50- 100 мәтіннен тұратын дестелерді сақтаңыз. Кішірек дестелер тезірек аяқталады және орындалу барысын жиірек жаңартады.
- Негізгі процессордың кластері қажеттілікке қарай автоматты түрде масштабталады. Тапсырмалар бірнеше данасы арқылы параллельді түрде өңделеді.
- Күту уақыты аяқталғанда, жаңа тапсырма пакетін жіберудің орнына сол job_ id үшін қайта сұрау. Бастапқы тапсырма әлі де графикалық процессорда өңделуі мүмкін.
- Әрбір 3- 5 секунд сайын сұрақ қою. Көп сұрақ қою өңдеуді жылдамдатпайды.
Құжатты аудару
Бүкіл құжаттарды пішімдеуін сақтай отырып аудару. Бірнеше файл пішімдерін қолдайды.
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 аударма файлдары
Кескіндерді (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 |
Аудару жаңылысы (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 келесі айына дейін немесе жаңартуыңызға дейін жауап бермейді.
Автоматты масштабталатын бұлт инфрақұрылымы
TranslateAPI автоматты көлденең масштабтауымен арнайы NVIDIA A100 графикалық процессорының данасында орындалады. Талап артқанда, қосымша графикалық процессордың данасы минуттар ішінде жегіліп, жауап беру уақытын тездетеді. Барлық сұраныстарды кезекке қояды да өңдейді - бір мезгілде жүздеген сұраныс жіберсеңіз, олардың барлығы өңделеді. Тікелей аударма артықшылық алады, пакеттік тапсырмалар фонында өңделеді.
Кредиттер керек пе?
Айдың ортасына дейін таңбаларыңыз бітіп қалды ма? Бір реттік кредитті сатып алып, жоспарыңызды өзгертпей-ақ қоя беріңіз. Қосымша дестелерді көрсету