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:

  1. Đăng ký tại translateapi.ai/signup
  2. Đi đến Bảng điều khiển → Chìa khóa API
  3. 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.

URL cơ bản: 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
Giữ chìa khóa API của bạn an toàn! Đừng phơi bày chúng trong mã bên máy khách hoặc kho công cộng.

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
}
Tự động phát hiện: Bỏ qua 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
}
Kiểu: Bạn có thể dịch đến 50 ngôn ngữ trong một yêu cầu duy nhất.

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ả.

Giới hạn: Hơn 100 văn bản mỗi gói, tổng số 300 mục (đoạn văn bản × ngôn ngữ mục tiêu). Công việc hết thời gian 45 phút sau khi bắt đầu xử lý.
Tốc độ: Các ngôn ngữ phổ biến (ES, FR, DE) sử dụng mô hình nhanh (~0.1s/text). Các ngôn ngữ ít phổ biến sử dụng mô hình đa ngôn ngữ (~1-3s/text).
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"
}
Hỗ trợ OCR: Tập tin ảnh và PDF quét được xử lý bằng nhận dạng ký tự quang học (OCR) để trích xuất văn bản trước khi dịch. Để có kết quả tốt nhất, hãy dùng ảnh rõ ràng, độ phân giải cao.
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"},
        ...
    ]
}

Xem tất cả 186 ngôn ngữ

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ô 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

Xác nhận trang này
Cảm ơn vì đã đánh giá!
/5 dựa trên xếp hạng