เอกสาร API

เชื่อมโยงการแปลที่ทรงพลังเข้ากับแอพพลิเคชันของคุณด้วย REST API ง่ายๆของเรา

เริ่มต้น

TranslateAPI ให้บริการอินเทอร์เฟซ REST ง่ายๆ สำหรับการแปลข้อความระหว่าง 180+ ภาษา จุดจบของ API ทั้งหมดจะส่งผลลัพธ์เป็น JSON

ที่อยู่ URL พื้นฐาน: https://api.translateapi.ai/api/v1/
เริ่มเร็ว

ทำคำขอแปลครั้งแรกของคุณ:

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!"
    }
}

การตรวจสอบสิทธิ์

ตรวจสอบความถูกต้องของคำร้องขอของคุณโดยใช้กุญแจ API คุณสามารถสร้างกุญแจ API จากข้อมูลของคุณได้ แผงควบคุม.

การตรวจสอบสิทธิ์ส่วนหัว (แนะนำ)
Authorization: Bearer ta_your_api_key_here
พารามิเตอร์คำถาม
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
รักษากุญแจ API ของคุณให้ปลอดภัย! อย่าเปิดเผยมันในโค้ดด้านคลาวด์หรือแหล่งเก็บข้อมูลสาธารณะ

แปลข้อความ

แปลข้อความเป็นภาษาเดียว

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)

* ใช้ target_language (ข้อความ) สำหรับภาษาเดียว หรือ target_languages (อาร์เรย์) สำหรับตัวคูณ การแปลหลายเป้าหมาย.

การตอบสนอง
{
    "translated_text": "Hola, mundo!",
    "source_language": "en",
    "target_language": "es",
    "translations": {
        "es": "Hola, mundo!"
    },
    "character_count": 13,
    "translation_time": 0.45
}

การแปลหลายเป้าหมาย

แปลข้อความเป็นหลายภาษาด้วยการร้องขอครั้งเดียว ใช้จุดจบเดียวกันกับการแปลครั้งเดียว

ประเภท: คุณสามารถแปลได้ถึง 50 ภาษาในคำขอเดียว
POST https://api.translateapi.ai/api/v1/translate/
ตำแหน่งของคำร้อง
{
    "text": "Hello, world!",
    "target_languages": ["es", "fr", "de", "ja"],
    "source_language": "en"
}

ใช้ target_languages (แถว) แทน target_language (สตริง) สำหรับเป้าหมายหลายตัว

การตอบสนอง
{
    "source_language": "en",
    "translations": {
        "es": "Hola, mundo!",
        "fr": "Bonjour, monde!",
        "de": "Hallo, Welt!",
        "ja": "こんにちは、世界!"
    },
    "character_count": 52,
    "translation_time": 2.31
}

การแปลเป็นกลุ่ม

แปลข้อความหลายข้อในเวลาเดียวกัน ด้วยการประมวลผลแบบไม่ซ้ำกัน (async) ส่งผลลัพธ์เป็นบั๊กและโพล

จำนวนจำกัด: ข้อความสูงสุด 500 ข้อความต่อบั๊ก, จำนวนทั้งหมดสูงสุด 750 รายการ (ข้อความ x ภาษาเป้าหมาย) งานจะหมดเวลา 30 นาทีหลังจากเริ่มการประมวลผล (เวลารอคิวจะไม่ถูกนับ)
เวลาในการประมวลผลจะแตกต่างกันไปตามภาษา: ภาษาที่ใช้กันทั่วไป (สเปน, ฝรั่งเศส, เยอรมัน, ฯลฯ) ใช้โมเดลที่รวดเร็ว (~ 0. 1 วินาทีต่อข้อความ) ในขณะที่ภาษาที่ใช้กันน้อยกว่าใช้โมเดลหลายภาษาขนาดใหญ่ของเรา (~ 1- 3วินาทีต่อข้อความ) โดยปกติแล้วการประมวลผลข้อความ 100 ข้อจะใช้เวลา 10- 30 วินาทีสำหรับภาษาที่ใช้กันทั่วไป หรือใช้เวลา 2-5นาทีสำหรับภาษาที่ใช้กันน้อยกว่า หากต้องการผลลัพธ์ที่ดีที่สุด ให้ส่งภาษาเป้าหมาย 1 ภาษาต่อการร้องขอการประมวลผลข้อความ และให้ขนาดของการประมวลผลข้อความต่ำกว่า 50 ข้อความ
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}/
ตัวอย่างการสำรวจ (ไพธอน)
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)
การตอบสนอง (รอ - อยู่ในคิว, รอ GPU)
{
    "job_id": "67535b2b-...",
    "status": "pending",
    "processed_texts": 0,
    "total_texts": 3,
    "progress_percentage": 0.0,
    "queue_position": 3
}
การตอบสนอง (ขณะประมวลผล)
{
    "job_id": "67535b2b-...",
    "status": "processing",
    "processed_texts": 1,
    "total_texts": 3,
    "progress_percentage": 33.33,
    "queue_position": null
}
การตอบสนอง (เสร็จสมบูรณ์)
{
    "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 จำนวนการแปลภาษาที่เสร็จสมบูรณ์แล้ว ปรับปรุงอัตโนมัติเมื่อมีการแปลข้อความ
total_texts จำนวนทั้งหมดของการแปลในบั๊กนี้ (ข้อความ x ภาษาเป้าหมาย)
progress_percentage เปอร์เซ็นต์การทำเสร็จ (0- 100) คำนวณจาก processed_ texts / total_ texts
queue_position สถานะของคุณในคิวเมื่อสถานะเป็น "รอ" (1 = ต่อไป) ค่าเป็นศูนย์เมื่อมีการประมวลผลหรือเสร็จสมบูรณ์ ใช้เพื่อประมาณเวลาการรอและแสดงสถานะคิวให้ผู้ใช้ของคุณดู
processing_time เวลาในการประมวลผลทั้งหมดเป็นวินาที (ใช้ได้เมื่อเสร็จสมบูรณ์)
ประเภท: เมื่อไหร่ status มันคือ "pending", คนทำงานของ GPU กำลังยุ่งอยู่กับการทำงานในแบตอื่นๆ ตรวจสอบ queue_position เพื่อดูว่ามีงานอยู่ก่อนหน้างานของคุณอีกกี่งาน (1 = คุณเป็นคนต่อไป) งานของคุณจะเริ่มขึ้นโดยอัตโนมัติ - ไม่ต้องทำอะไรเลย แค่รอให้มีการโพลล์ต่อไป
วิธีการที่ดีที่สุดสำหรับงานที่หนัก
  • ส่งภาษาเป้าหมาย 1 ภาษาต่อการร้องขอการแปลงเป็นกลุ่ม เพื่อให้การแปลงเป็นกลุ่มทำงานเร็วขึ้น และทำให้การติดตามความคืบหน้าง่ายขึ้น
  • เก็บการทำงานเป็นกลุ่มๆ ละ 50- 100 ข้อความ หากเป็นกลุ่มๆ ขนาดเล็กกว่า จะทำให้งานเสร็จเร็วขึ้น และให้คุณได้รับรายงานความคืบหน้าอย่างต่อเนื่อง
  • ประมวลผลงานแบตเดียวกันได้สูงสุด2งาน หน่วยประมวลผลภาพจิ๊กซอว์จะประมวลผลงานแบต2งานควบคู่กันไป - งานเพิ่มเติมจะถูกจัดเป็นคิวและจะไม่เริ่มทำงานเร็วขึ้น
  • เมื่อหมดเวลา ทำการโพลล์ job_ id เดิมอีกครั้ง แทนที่จะส่งงานใหม่ เป็นไปได้ว่างานเดิมยังคงถูกประมวลผลอยู่บน GPU
  • ถามทุก 3-5 วินาที การถามบ่อย ๆ จะไม่ทำให้การประมวลผลเร็วขึ้น
หลายภาษา

แปลข้อความเป็นหลายภาษาในเวลาเดียวกัน:

{
    "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ไม่ใช่ทั้งคู่

การประมวลผลแบบไม่ซ้ำกัน: การร้องขอแบตจะกลับมาทันทีพร้อมด้วย job_id. หลุม GET /api/v1/jobs/{job_id}/ จนกว่า status คือ "completed", แล้วอ่าน result_data ใช้สำหรับแปล progress_percentage เพื่อติดตามความคืบหน้า

การแปลเอกสาร

แปลเอกสารทั้งฉบับโดยรักษารูปแบบไว้ รองรับรูปแบบแฟ้มหลายรูปแบบ

POST https://api.translateapi.ai/api/v1/translate/document/
การร้องขอ (ข้อมูลหลายส่วน/แบบฟอร์ม)
พารามิเตอร์ ประเภท จำเป็น คำอธิบาย
file file ใช่ เอกสารที่จะแปล (ขนาดสูงสุด 10MB)
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
  • .jpg / .jpeg - รูปภาพ JPEG (OCR)
  • .png - ภาพ PNG (OCR)
  • .tiff / .tif - รูปภาพ TIFF (OCR)
  • .bmp - รูปภาพ BMP (OCR)
  • .webp - รูปภาพ WebP (OCR)
รองรับ OCR: แฟ้มภาพและเอกสาร PDF ที่ถูกสแกนจะถูกประมวลผลด้วยการจดจำตัวอักษรทางแสง (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"
แฟ้มภาพจะถูกประมวลผลด้วย OCR เพื่อดึงข้อความออกมาก่อนการแปล ผลลัพธ์การแปลจะถูกส่งกลับมาในรูปแบบ .txt ไฟล์
การตอบสนอง
{
    "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"
}
ค่าสถานะ
pending แฟ้มถูกอัพโหลดแล้ว รอการประมวลผล
processing กำลังแปล
completed การแปลเสร็จสมบูรณ์ สามารถดาวน์โหลดได้แล้ว
failed การแปลล้มเหลว (ตรวจสอบข้อความผิดพลาด)
GET https://api.translateapi.ai/api/v1/translate/document/{id}/

ตรวจสอบสถานะของการแปลเอกสาร หรือรับที่อยู่ URL ของการดาวน์โหลด

การตอบสนอง
{
    "id": 123,
    "original_filename": "document.docx",
    "status": "completed",
    "translated_file_url": "/media/translated/document_es.docx",
    "character_count": 5420
}

การตรวจจับภาษา

การตรวจจับภาษาจะถูกติดตั้งไว้ในทุกคำขอแปล source_language to "auto" (หรือลบมันออกไป) และภาษาที่ตรวจพบจะถูกส่งกลับมาในคำตอบ

POST https://api.translateapi.ai/api/v1/translate/
ตำแหน่งของคำร้อง
{
    "text": "Bonjour, comment allez-vous?",
    "target_language": "en"
}
การตอบสนอง
{
    "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
}

นี่ source_language ช่องในคำตอบแสดงภาษาที่ตรวจพบเมื่อใช้การตรวจพบอัตโนมัติ

ภาษาที่รองรับ

เรียกดูรายการภาษาที่รองรับทั้งหมด

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 สำเร็จแล้ว
400 คำขอที่ไม่ถูกต้อง - พารามิเตอร์ไม่ถูกต้อง
401 ไม่ได้รับอนุญาต - กุญแจ API ไม่ถูกต้องหรือหายไป
402 จำเป็นต้องชำระค่าบริการ - เกินกำหนดจำนวนอักขระต่อวัน
429 มีการร้องขอมากเกินไป - เกินขอบเขตอัตรา
503 บริการไม่สามารถใช้ได้ - กลไกแปลภาษาทำงานชั่วคราว
รูปแบบการตอบสนองข้อผิดพลาด
{
    "error": "daily_limit_exceeded",
    "credits_remaining": 0,
    "daily_limit": 100000
}

ขอบเขตอัตรา

ขอบเขตแตกต่างกันไปตามแผน ราคา รายละเอียดเพิ่มเติม:

แผน ตัวอักษร/เดือน ราคา
ว่าง 250,000 $0 ลงทะเบียน
เริ่มการทำงาน 2,500,000 $9/ชั่วโมง จองเป็นสมาชิก
โปร 10,000,000 $29/ชั่วโมง จองเป็นสมาชิก
ธุรกิจ 40,000,000 $79/ชั่วโมง จองเป็นสมาชิก
ปรับขนาด 125,000,000 $199/ชั่วโมง จองเป็นสมาชิก

เมื่อคุณเกินขอบเขตของคุณ คุณจะได้รับ 429 Too Many Requests รอคำตอบ จนกว่าเดือนหน้า หรือคุณจะอัพเกรด

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.

จัดอันดับหน้านี้
ขอบคุณสำหรับการจัดอันดับของคุณ!
/5 ขึ้นอยู่กับ จัดอันดับ