Tài liệu API
Gộp dịch thuật mạnh mẽ vào các ứng dụng của bạn với REST API đơn giản của chúng tôi.
Bắt đầu
TranslateAPI cung cấp một giao diện REST đơn giản để dịch văn bản giữa hơn 180 ngôn ngữ. Tất cả các điểm kết thúc API trả về phản hồi JSON.
1. Lấy khóa API của bạn
Tạo một tài khoản miễn phí và tạo khóa API của bạn từ bảng điều khiển:
- Đăng ký tại translateapi.ai/signup
- Đi đến Bảng điều khiển → Chìa khóa API
- Nhấn vào "Tạo khóa API" và sao chép khóa của bạn
Chìa khóa API bắt đầu với ta_ theo sau là 56 ký tự 16 bit.
https://api.translateapi.ai/api/v1/2. Đưa ra yêu cầu đầu tiên
Thay YOUR_ API_ KEY bằng chìa khóa từ bảng điều khiển của bạn:
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!"
Phản hồi
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
Xác thực
Xác thực yêu cầu của bạn bằng khóa API. Bạn có thể tạo khóa API từ bảng điều khiển.
Xác thực đầu (khuyến nghị)
Authorization: Bearer ta_your_api_key_here
Tiêu đề ApiKey
Authorization: ApiKey ta_your_api_key_here
Tham số truy vấn
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Dịch văn bản
Dịch văn bản sang một ngôn ngữ mục tiêu duy nhất.
POST https://api.translateapi.ai/api/v1/translate/
Cơ thể yêu cầu
| Tham số | Kiểu | Cần thiết | Mô tả |
|---|---|---|---|
text |
string | Phải. | Văn bản cần dịch (tối đa 50. 000 ký tự) |
target_language |
string | Phải * | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Không. | Source language code. Default: "auto" (auto-detect) |
engine |
string | Không. | Kế toán Mô hình dịch. |
* Dùng target_language (string) cho ngôn ngữ đơn hoặc target_languages (array) cho nhiều. Xem Dịch đa mục tiêu.
Phản hồi
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
source_language hoặc đặt nó lên "auto" Để tự động phát hiện ngôn ngữ nguồn. Ngôn ngữ phát hiện sẽ được trả về trong source_language Địa điểm phản ứng.
Dịch đa mục tiêu
Dịch văn bản sang nhiều ngôn ngữ trong một yêu cầu duy nhất. Dùng cùng điểm kết thúc như dịch đơn.
POST https://api.translateapi.ai/api/v1/translate/
Cơ thể yêu cầu
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
Dùng target_languages (ma trận) thay vì target_language (string) cho nhiều mục tiêu.
Phản hồi
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
Dịch theo lô
Dịch nhiều văn bản cùng một lúc với xử lý không đồng bộ. Gửi một gói và thăm dò kết quả.
POST https://api.translateapi.ai/api/v1/translate/batch/
Bước 1: Gửi gói
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"
}'
Phản hồi (HTTP 202 Chấp nhận)
{
"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/"
}
Bước 2: Đánh giá kết quả
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Ví dụ thăm dò (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)
Trả lời (đã hoàn thành)
{
"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
}
}
Điều khiển tiến độ thời gian thực
| Địa điểm | Mô tả |
|---|---|
status |
pending (đang xếp hàng, chờ nhân viên GPU), processing (tự động dịch) completed, failed |
processed_texts |
Số bản dịch cá nhân hoàn thành cho đến nay. Cập nhật theo thời gian thực khi mỗi văn bản được dịch. |
progress_percentage |
Tỷ lệ hoàn thành (0- 100). Tính từ processed_ texts / total_ texts. |
queue_position |
Vị trí của bạn trong hàng đợi khi trạng thái là "nghi ngờ" (1 = tiếp theo). Thiếu khi xử lý hoặc hoàn thành. Dùng nó để ước tính thời gian đợi và hiển thị trạng thái hàng đợi cho người dùng. |
processing_time |
Tổng thời gian xử lý theo giây (có sẵn khi hoàn thành). |
Bộ đa ngôn ngữ
Dịch nhiều văn bản sang nhiều ngôn ngữ cùng một lúc:
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
Dữ liệu kết quả hoàn thành
{
"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
}
Yêu cầu tham số
| Tham số | Kiểu | Cần thiết | Mô tả |
|---|---|---|---|
texts |
array | Phải. | Ma trận các chuỗi cần dịch |
target_language |
string | Phải * | Mã ngôn ngữ mục tiêu cho ngôn ngữ đơn |
target_languages |
array | Phải * | Ma trận mã ngôn ngữ mục tiêu cho nhiều ngôn ngữ |
source_language |
string | Không. | Source language code. Default: "auto" |
* Cho hoặc target_language hoặc target_languages, không phải cả hai.
Thực hành tốt nhất cho các tải công việc lớn
- Gửi 1 ngôn ngữ mục tiêu mỗi yêu cầu gói. Điều này giữ mỗi gói nhanh và làm cho tiến trình dễ theo dõi.
- Giữ các gói ở 50- 100 văn bản. Những gói nhỏ hơn hoàn thành nhanh hơn và cho bạn cập nhật tiến độ thường xuyên hơn.
- Gửi nhiều công việc theo lô như bạn cần — GPU cluster của chúng tôi tự động tăng tốc để xử lý nhu cầu. Các công việc được xử lý song song trên nhiều thực thể.
- Khi hết thời gian, thăm dò lại cùng một job_ id thay vì gửi một gói mới. Công việc ban đầu có thể vẫn đang xử lý trên GPU.
- Tìm kiếm mỗi 3- 5 giây. Tìm kiếm thường xuyên hơn không làm tăng tốc xử lý.
Dịch tài liệu
Dịch toàn bộ tài liệu trong khi giữ định dạng. Hỗ trợ nhiều định dạng tập tin.
POST https://api.translateapi.ai/api/v1/translate/document/
Yêu cầu (dữ liệu nhiều phần/biểu mẫu)
| Tham số | Kiểu | Cần thiết | Mô tả |
|---|---|---|---|
file |
file | Phải. | Tài liệu cần dịch (tối đa 10MB) |
target_language |
string | Phải. | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Không. | Source language code. Default: "auto" (auto-detect) |
Kiểu tập tin được hỗ trợ
Tài liệu
.txt- Tập tin văn bản đơn giản.docx- Tài liệu Word.pdf- Tài liệu PDF (bao gồm scan)
Dữ liệu và địa phương hóa
.json- Tập tin JSON (biến đổi giá trị chuỗi).xml- Tập tin XML.srt- Tập tin phụ đề.po/.pot- Tập tin dịch Gettext
Ảnh (OCR)
.jpg/.jpeg- Ảnh JPEG (OCR).png- Ảnh PNG (OCR).tiff/.tif- Ảnh TIFF (OCR).bmp- Ảnh BMP (OCR).webp- Ảnh WebP (OCR)
Ví dụ (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"
Phản hồi
{
"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}/
Kiểm tra trạng thái của bản dịch tài liệu hoặc lấy URL tải về.
Giá trị trạng thái
pending |
Tập tin đã tải lên, đang chờ xử lý |
processing |
Đang dịch |
completed |
Dịch xong, có thể tải về |
failed |
Lỗi dịch (kiểm tra error_ message) |
Ngôn ngữ được hỗ trợ
Lấy danh sách các ngôn ngữ được hỗ trợ.
GET https://api.translateapi.ai/api/v1/translate/languages/
Phản hồi
{
"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"},
...
]
}
Mô hình dịch
Chúng tôi sử dụng các mô hình dịch mã nguồn mở hiện đại chạy trên cơ sở hạ tầng GPU của riêng mình. Tất cả các mô hình được cấp phép thương mại (Apache 2.0).
| Mô hình | Ngôn ngữ | Tốt nhất cho |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ ngôn ngữ | Các ngôn ngữ phổ biến (EN, ES, FR, DE, IT, PT, RU, ZH, JA, v.v.) |
| Google MADLAD-400 | 400+ ngôn ngữ | Ngôn ngữ hiếm, bao phủ toàn diện |
API tự động chọn mô hình tốt nhất cho cặp ngôn ngữ của bạn. Bạn có thể chọn engine tham số:
| Động cơ | Mô tả |
|---|---|
"auto" |
Mặc định, thử HuggingFace trước, rồi quay lại MADLAD-400 |
"huggingface" |
Force HuggingFace/MarianMT (nhanh nhất, 50+ ngôn ngữ) |
"madlad" |
Force MADLAD-400 (400+ ngôn ngữ) |
Xử lý lỗi
API sử dụng mã trạng thái HTTP tiêu chuẩn để chỉ ra thành công hoặc thất bại.
| Mã | Mô tả |
|---|---|
| 200 | Thành công |
| 202 | Chấp nhận — Công việc hàng loạt đã xếp hàng thành công |
| 400 | Yêu cầu sai — Các tham số không hợp lệ (trừ văn bản, ngôn ngữ không hỗ trợ, v.v.) |
| 401 | Không được phép - Khóa API không hợp lệ hoặc thiếu |
| 402 | Cần thanh toán — Tổng số nhân vật đã hết. Cập nhật gói hoặc mua thêm. |
| 403 | Cấm — khóa API thiếu phạm vi cần thiết hoặc IP không trong danh sách trắng |
| 503 | Dịch vụ không sẵn sàng - bộ máy dịch tạm thời ngừng hoạt động |
Định dạng đáp ứng lỗi
{
"error": "insufficient_credits",
"credits_remaining": 0
}
Giới hạn sử dụng
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:
| Kế hoạch | Chữ/ tháng | API hàng loạt | Tài liệu | Giá | |
|---|---|---|---|---|---|
| Miễn phí | 250,000 | — | — | $0 | đăng ký miễn phí |
| Bắt đầu | 2,500,000 | $9/ms | Đăng ký | ||
| Chuẩn | 10,000,000 | $29/ms | Đăng ký | ||
| Công việc | 40,000,000 | $79/ms | Đăng ký | ||
| Tỉ lệ | 125,000,000 | $199/ms | Đăng ký | ||
| Enterprise | Unlimited | $499/ms | Contact Sales |
Khi anh vượt quá giới hạn, anh sẽ nhận được 402 Payment Required Không trả lời cho đến tháng sau hoặc anh sẽ nâng cấp.
Hệ thống đám mây tự động
TranslateAPI chạy trên các thực thể GPU NVIDIA A100 chuyên dụng với quy mô ngang tự động. Khi nhu cầu tăng lên, các thực thể GPU bổ sung được khởi động trong vòng vài phút để duy trì thời gian đáp ứng nhanh. Tất cả các yêu cầu được xếp hàng và xử lý — gửi hàng trăm yêu cầu đồng thời và chúng sẽ được xử lý. Các dịch thuật thời gian thực được ưu tiên, các công việc hàng loạt được xử lý ở nền.
Cần thêm tín dụng?
Nếu hết nhân vật vào giữa tháng, mua thẻ tín dụng một lần mà không thay đổi kế hoạch. Xem gói nạp