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.
https://api.translateapi.ai/api/v1/
Bắt đầu nhanh
Đặt yêu cầu dịch đầu tiê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!"
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!"
}
}
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
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) |
* 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
}
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"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)
Phản hồi (đợi — xếp hàng, đợi GPU)
{
"job_id": "67535b2b-...",
"status": "pending",
"processed_texts": 0,
"total_texts": 3,
"progress_percentage": 0.0,
"queue_position": 3
}
Phản hồi (trong khi xử lý)
{
"job_id": "67535b2b-...",
"status": "processing",
"processed_texts": 1,
"total_texts": 3,
"progress_percentage": 33.33,
"queue_position": null
}
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
Mỗi câu trả lời của cuộc thăm dò bao gồm các trường tiến trình thời gian thực để bạn có thể theo dõi chính xác những gì đang xảy ra với gói của bạn:
| Địa điểm | Mô tả |
|---|---|
status |
Tình trạng công việc hiện tại: 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. |
total_texts |
Tổng số bản dịch trong gói này (đoạn văn × ngôn ngữ mục tiêu). |
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). |
status là "pending", người làm việc GPU đang bận với các gói khác. queue_position để xem có bao nhiêu công việc đang tiến trước công việc của bạn (1 = bạn là người kế tiếp). Công việc của bạn sẽ tự động bắt đầu — không cần hành động, chỉ cần tiếp tục khảo sát.
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.
- Chạy tối đa 2 công việc đồng thời. GPU xử lý 2 công việc song song — các công việc bổ sung sẽ xếp hàng và không bắt đầu nhanh hơn.
- 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ý.
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.
job_id. Lỗ GET /api/v1/jobs/{job_id}/ cho đến status là "completed", sau đó đọc result_data dùng để dịch. progress_percentage để theo dõi tiến độ.
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ợ
.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).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.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"
.txt file.
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"
}
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) |
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ề.
Phản hồi
{
"id": 123,
"original_filename": "document.docx",
"status": "completed",
"translated_file_url": "/media/translated/document_es.docx",
"character_count": 5420
}
Phát hiện ngôn ngữ
Kiểm tra ngôn ngữ được xây dựng trong mỗi yêu cầu dịch. Set source_language to "auto" (hoặc bỏ qua nó) và ngôn ngữ được phát hiện sẽ được trả về trong câu trả lời.
POST https://api.translateapi.ai/api/v1/translate/
Cơ thể yêu cầu
{
"text": "Bonjour, comment allez-vous?",
"target_language": "en"
}
Phản hồi
{
"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
}
The source_language trường trong câu trả lời cho thấy ngôn ngữ được phát hiện khi sử dụng tự động phát hiện.
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 |
400 |
Yêu cầu sai - tham số không hợp lệ |
401 |
Không được phép - Khóa API không hợp lệ hoặc thiếu |
402 |
Yêu cầu thanh toán - Vượt quá giới hạn ký tự mỗi ngày |
429 |
Quá nhiều yêu cầu - vượt giới hạn tốc độ |
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": "daily_limit_exceeded",
"credits_remaining": 0,
"daily_limit": 100000
}
Giới hạn tốc độ
Các giới hạn khác nhau tùy theo kế hoạch. giá Để biết chi tiết:
| Kế hoạch | Chữ/ tháng | 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ý |
Khi anh vượt quá giới hạn, anh sẽ nhận được 429 Too Many Requests Không trả lời cho đến tháng sau hoặc anh sẽ nâng cấp.
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.