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.

URL cơ bản: 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
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)

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

Kiểu: Bạn có thể dịch đến 50 ngôn ngữ trong một yêu cầu duy nhất.
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ả.

Giới hạn: tối đa 500 văn bản mỗi gói, tối đa tổng số 750 mục (đoạn văn bản × ngôn ngữ mục tiêu). Công việc hết thời gian 30 phút sau khi bắt đầu xử lý (không tính thời gian đợi hàng đợi).
Thời gian xử lý khác nhau tùy theo ngôn ngữ: ngôn ngữ phổ biến (Tây Ban Nha, Pháp, Đức, v. v.) sử dụng mô hình nhanh (~ 0, 1s mỗi văn bản), trong khi ngôn ngữ ít phổ biến hơn sử dụng mô hình đa ngôn ngữ lớn (~ 1- 3s mỗi văn bản). Một gói 100 văn bản thường hoàn thành trong 10- 30 giây cho ngôn ngữ phổ biến, hoặc 2- 5 phút cho những ngôn ngữ ít phổ biến hơn. Để có kết quả tốt nhất, gửi 1 ngôn ngữ mục tiêu mỗi yêu cầu gói và giữ kích thước gói dưới 50 văn bản.
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).
Kiểu: Khi nào status"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.

Xử lý không đồng bộ: Yêu cầu hàng loạt trả lại ngay lập tức với job_id. Lỗ GET /api/v1/jobs/{job_id}/ cho đến status"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)
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.
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"
Tập tin ảnh được xử lý bằng OCR để trích xuất văn bản trước khi dịch. Kết quả dịch sẽ được trả về như là .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ô 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.

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