TransConvert API
แปลงรูปภาพและเอกสารด้วยโปรแกรมผ่านเอนด์พอยต์ HTTP เดียวที่ใช้งานง่าย
curl -X POST \ .../api/v1/convert.php \ -H "Authorization: Bearer ..." \ -F "category=image" \ -F "target=PNG" \ -F "file=@photo.jpg" \ -o converted.png
เริ่มต้นใช้งานอย่างรวดเร็ว
จากศูนย์สู่ไฟล์ที่แปลงเสร็จแรกของคุณใน 3 ขั้นตอน
สมัครสมาชิก (หรืออัปเกรดบัญชีที่มีอยู่) เป็น Basic, Lite, Pro หรือ Team จากนั้นสร้างคีย์จากหน้าบัญชีของคุณ — คุณสามารถกลับมาดูคีย์นี้ได้อีกทุกเมื่อ
ส่งไฟล์ของคุณด้วย POST ไปยังเอนด์พอยต์ด้านล่างในรูปแบบ multipart/form-data พร้อมคีย์ของคุณในส่วนหัว Authorization และตั้งค่า category กับ target
การตอบกลับรหัส 200 คือไบต์ดิบของไฟล์ที่แปลงแล้ว — บันทึกเนื้อหาการตอบกลับได้โดยตรง กรณีอื่นจะเป็นข้อผิดพลาด JSON ที่อธิบายว่าเกิดอะไรขึ้น
การยืนยันตัวตน
ทุกคำขอต้องใช้คีย์ API โดยส่งเป็น Bearer token ในส่วนหัว Authorization
Authorization: Bearer tc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ใช้งานได้กับแพ็กเกจ Basic, Lite, Pro และ Team สร้างคีย์จากบัญชีของคุณ →
ทดสอบคีย์ของคุณ
วิธีที่รวดเร็วในการยืนยันว่าคีย์ใช้งานได้ก่อนเริ่มเขียนโค้ดผสานระบบจริง — คำขอนี้เพียงอย่างเดียวจะไม่แปลงไฟล์ใดๆ (ไม่มีไฟล์แนบมา) แต่การได้รับ 400 no_file แทนที่จะเป็น 401 ยืนยันว่าคีย์นั้นใช้งานได้
curl -X POST -H "Authorization: Bearer tc_live_your_key_here" -F "category=image" https://transconvert.com/api/v1/convert.php
เอนด์พอยต์
เอนด์พอยต์เดียวรองรับการแปลงไฟล์ทุกรูปแบบ ส่งคำขอ POST แบบ multipart/form-data พร้อมไฟล์ของคุณและฟิลด์ด้านล่าง
https://transconvert.com/api/v1/convert.php
พารามิเตอร์
| Field | Description |
|---|---|
Authorization | จำเป็น "Bearer tc_live_..." |
category | จำเป็น "image" หรือ "document" — สำหรับการบีบอัดแทนการแปลง ดู Compress ด้านล่าง |
target | จำเป็น รหัสฟอร์แมตผลลัพธ์ เช่น "PNG", "DOCX" — ดู Supported formats ด้านล่าง |
file | จำเป็น ไฟล์ที่ต้องการแปลง (อัปโหลดแบบ multipart) |
pdf_mode | ไม่บังคับ เฉพาะประเภท image "pages" (ค่าเริ่มต้น แปลงแต่ละหน้าเป็นภาพ) หรือ "extract" (ดึงภาพที่ฝังอยู่ออกมาตามเดิม) — มีผลเฉพาะเมื่อไฟล์ต้นทางเป็น PDF |
pdf_pages | ไม่บังคับ เฉพาะประเภท image "all" (ค่าเริ่มต้น) หรือ "first" |
pdf_quality | ไม่บังคับ เฉพาะประเภท image "normal" (ค่าเริ่มต้น 150 DPI) หรือ "high" (300 DPI) |
การแปลงที่ใช้บ่อย
รายการอ้างอิงสำหรับคู่ฟอร์แมตยอดนิยม — เอนด์พอยต์เดียวกันรองรับทั้งหมด เพียงเปลี่ยนค่า category/target ให้ต่างกัน
| Source → target | category | target |
|---|---|---|
| PNG → JPG | image | JPG |
| JPG → PNG | image | PNG |
| HEIC → JPG | image | JPG |
| WEBP → PNG | image | PNG |
| JPG → PDF | image | PDF |
| PDF → JPG | image | JPG |
| DOCX → PDF | document | PDF |
| PDF → DOCX | document | DOCX |
| PPTX → PDF | document | PDF |
| XLSX → PDF | document | PDF |
การตอบกลับ
สำเร็จ (200): ไบต์ดิบของไฟล์ที่แปลงแล้ว พร้อมส่วนหัว Content-Type และ Content-Disposition ที่ตั้งค่าให้ ล้มเหลว: เนื้อหา JSON รูปแบบ {"error": {"code": "...", "message": "..."}} พร้อมรหัสสถานะ HTTP ที่ตรงกัน — ดู Errors ด้านล่าง
| Header | Value |
|---|---|
Content-Type | ประเภท MIME จริงของไฟล์ที่แปลงแล้ว (เช่น image/png, application/pdf) |
Content-Disposition | attachment; filename="..." — ชื่อไฟล์ที่แนะนำ เหมือนกับการดาวน์โหลดไฟล์ทั่วไป |
Content-Length | ขนาดเนื้อหาการตอบกลับเป็นไบต์ |
Compress
บีบอัดไฟล์โดยไม่เปลี่ยนฟอร์แมต — ฟอร์แมตเข้าและออกเหมือนกัน เป็นคู่ประเภทแยกต่างหากจากการแปลง ได้แก่ image-compress และ document-compress แต่ละแบบมีตัวเลือกของตัวเองด้านล่าง
image-compress
ฟอร์แมตเข้าและออกเหมือนกัน (JPG/PNG/WEBP/GIF) — target_percent คือขนาดผลลัพธ์เป้าหมายโดยประมาณเทียบกับต้นฉบับ ไม่ใช่ค่าคุณภาพตายตัว
| Field | Description |
|---|---|
category | ตั้งค่าเป็น "image-compress" |
target_percent | ไม่บังคับ 1–100 (ค่าเริ่มต้น 60) ขนาดเป้าหมายเป็นเปอร์เซ็นต์โดยประมาณของต้นฉบับ — ตัวเลขยิ่งน้อยยิ่งบีบอัดหนักขึ้น |
file | จำเป็น JPG, PNG, WEBP หรือ GIF |
curl -X POST \ https://transconvert.com/api/v1/convert.php \ -H "Authorization: Bearer tc_live_your_key_here" \ -F "category=image-compress" \ -F "target_percent=50" \ -F "file=@photo.jpg" \ -o compressed.jpg
document-compress
PDF เข้าและ PDF ออก ผ่านการบีบอัดใหม่ของ Ghostscript เอง — จะไม่คืนไฟล์ที่ใหญ่กว่าไฟล์ที่อัปโหลด (หากบีบอัดแล้วไม่ได้ผลดีขึ้น จะคืนไฟล์ต้นฉบับแทน)
| Field | Description |
|---|---|
category | ตั้งค่าเป็น "document-compress" |
level | ไม่บังคับ: "low", "medium" (ค่าเริ่มต้น), "high" หรือ "none" การบีบอัดที่สูงขึ้นแลกกับคุณภาพภาพที่ลดลง โดยเฉพาะภาพหรือสแกนที่ฝังอยู่ในเอกสาร |
grayscale | ไม่บังคับ "1" เพื่อแปลงเป็นสีเทาด้วย หากไม่ระบุจะเป็นสีเต็ม |
file | จำเป็น ไฟล์ PDF ที่ไม่ได้เปิดหรือใส่รหัสผ่านไว้ (หากใส่รหัสผ่านไว้ ให้ใช้ Unlock PDF บนเว็บไซต์ก่อน) |
curl -X POST \ https://transconvert.com/api/v1/convert.php \ -H "Authorization: Bearer tc_live_your_key_here" \ -F "category=document-compress" \ -F "level=high" \ -F "file=@report.pdf" \ -o compressed.pdf
| Header | Value |
|---|---|
X-Original-Size | ขนาดไฟล์ที่อัปโหลดเป็นไบต์ ก่อนการบีบอัด |
X-Saved-Percent | ผลลัพธ์เล็กลงจากต้นฉบับโดยประมาณกี่เปอร์เซ็นต์ เป็นจำนวนเต็ม (อาจเป็น 0) |
วิดีโอและเสียง (แบบอะซิงโครนัส)
การแปลงวิดีโอและเสียงอาจใช้เวลาหลายนาที ซึ่งนานเกินกว่าจะเปิดค้างคำขอแบบซิงโครนัสเดียวไว้ได้ — จึงใช้รูปแบบส่งงานแล้วตรวจสอบสถานะแทนเอนด์พอยต์ด้านบน ส่งไฟล์ไป จะได้ job_id กลับมาทันที จากนั้นตรวจสอบสถานะจนกว่าจะเสร็จ
ส่งงาน
รูปแบบ multipart POST เดียวกับเอนด์พอยต์หลัก แต่คนละ URL
https://transconvert.com/api/v1/convert-async.php
| Field | Description |
|---|---|
Authorization | จำเป็น "Bearer tc_live_..." |
category | "video" หรือ "audio" |
target | จำเป็น — เช่น "MP4", "MOV", "MP3", "WAV" |
file | จำเป็น ไฟล์ที่ต้องการแปลง (อัปโหลดแบบ multipart) |
webhook_url | ไม่บังคับ URL แบบ http(s) ที่จะส่งผลลัพธ์ของงานไปแบบ POST เมื่อเสร็จสิ้น แทนที่จะเพียงแค่ตรวจสอบ job-status.php ต้องแปลงเป็นที่อยู่สาธารณะได้ |
curl -X POST \ https://transconvert.com/api/v1/convert-async.php \ -H "Authorization: Bearer tc_live_your_key_here" \ -F "category=video" \ -F "target=MP4" \ -F "file=@clip.mov"
การตอบกลับ (202 Accepted)
{ "job_id": "job_242e1555d78d166807aa56502f15d118", "status": "queued" }
ตรวจสอบสถานะ
ตรวจสอบทุก ๆ 2-3 วินาทีด้วย job_id ที่ได้รับกลับมา "status" มีค่าใดค่าหนึ่งจาก queued, processing, completed หรือ failed
https://transconvert.com/api/v1/job-status.php?job_id=job_...
{
"job_id": "job_242e1555d78d166807aa56502f15d118",
"status": "completed",
"category": "video",
"target_format": "MP4",
"created_at": "2026-08-26 19:17:47",
"download_url": "/api/v1/job-status.php?job_id=job_...&download=1",
"filename": "clip.mp4"
}
เว็บฮุก (ไม่บังคับ)
หากคุณระบุ webhook_url ไว้ตอนส่งคำขอ เมื่องานเสร็จสิ้น (สำเร็จหรือล้มเหลว) เราจะส่ง JSON เนื้อหาเดียวกันไปที่นั่นหนึ่งครั้ง และจะลองใหม่อีกสองสามครั้งหากปลายทางของคุณไม่ตอบสนอง ไม่ว่าจะอย่างไร job-status.php ก็ยังใช้งานได้เป็นทางเลือกสำรอง
POST your webhook_url { "job_id": "job_242e1555d78d166807aa56502f15d118", "status": "completed", "category": "video", "target_format": "MP4", "created_at": "2026-08-26 19:17:47", "download_url": "https://transconvert.com/api/v1/job-status.php?job_id=job_...&download=1", "filename": "clip.mp4" }
ดาวน์โหลดผลลัพธ์
เมื่อ status เป็น "completed" การตอบกลับจะมี download_url ซึ่งคือ URL ตรวจสอบสถานะเดิมที่เพิ่ม &download=1 ต่อท้าย การเรียกใช้ URL นี้จะสตรีมไฟล์ที่แปลงแล้วกลับมาโดยตรง ใช้ส่วนหัวเดียวกับเอนด์พอยต์อื่น ๆ ในหน้านี้ ผลลัพธ์จะถูกลบทันทีที่มีการดาวน์โหลด หรือถูกลบโดยอัตโนมัติหลังช่วงเวลาจัดเก็บสั้น ๆ หากไม่เคยถูกดาวน์โหลดเลย
scheduleผลลัพธ์ของงานจะถูกลบทันทีหลังดาวน์โหลด หรือถูกลบโดยอัตโนมัติหลังช่วงเวลาจัดเก็บสั้น ๆ หากไม่เคยถูกดาวน์โหลด — กรุณาดาวน์โหลดให้ทันเวลา
ตัวอย่าง
คำขอเดียวกันในสี่ภาษาโปรแกรม — เลือกภาษาที่ตรงกับสแต็กของคุณ แต่ละตัวอย่างแปลงไฟล์ photo.jpg ในเครื่องเป็น PNG แล้วบันทึกผลลัพธ์
curl -X POST \ https://transconvert.com/api/v1/convert.php \ -H "Authorization: Bearer tc_live_your_key_here" \ -F "category=image" \ -F "target=PNG" \ -F "file=@photo.jpg" \ -o converted.png
<?php $ch = curl_init('https://transconvert.com/api/v1/convert.php'); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Authorization: Bearer tc_live_your_key_here'], CURLOPT_POSTFIELDS => [ 'category' => 'image', 'target' => 'PNG', 'file' => new CURLFile('photo.jpg'), ], ]); $response = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($status === 200) { file_put_contents('converted.png', $response); } else { $error = json_decode($response, true); echo $error['error']['message']; }
const form = new FormData(); form.append('category', 'image'); form.append('target', 'PNG'); form.append('file', new Blob([fs.readFileSync('photo.jpg')]), 'photo.jpg'); const res = await fetch('https://transconvert.com/api/v1/convert.php', { method: 'POST', headers: { Authorization: 'Bearer tc_live_your_key_here' }, body: form, }); if (res.ok) { fs.writeFileSync('converted.png', Buffer.from(await res.arrayBuffer())); } else { const { error } = await res.json(); console.error(error.message); }
import requests with open('photo.jpg', 'rb') as f: response = requests.post( 'https://transconvert.com/api/v1/convert.php', headers={'Authorization': 'Bearer tc_live_your_key_here'}, data={'category': 'image', 'target': 'PNG'}, files={'file': f}, ) if response.status_code == 200: with open('converted.png', 'wb') as out: out.write(response.content) else: print(response.json()['error']['message'])
# gem install multipart-post require 'net/http' require 'net/http/post/multipart' url = URI('https://transconvert.com/api/v1/convert.php') File.open('photo.jpg') do |file| req = Net::HTTP::Post::Multipart.new url, 'category' => 'image', 'target' => 'PNG', 'file' => UploadIO.new(file, 'image/jpeg', 'photo.jpg') req['Authorization'] = 'Bearer tc_live_your_key_here' res = Net::HTTP.start(url.host, url.port, use_ssl: true) do |http| http.request(req) end if res.code == '200' File.write('converted.png', res.body) else puts JSON.parse(res.body)['error']['message'] end end
// Gradle: implementation("com.squareup.okhttp3:okhttp:4.+") OkHttpClient client = new OkHttpClient(); RequestBody body = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("category", "image") .addFormDataPart("target", "PNG") .addFormDataPart("file", "photo.jpg", RequestBody.create(new File("photo.jpg"), MediaType.parse("image/jpeg"))) .build(); Request request = new Request.Builder() .url("https://transconvert.com/api/v1/convert.php") .header("Authorization", "Bearer tc_live_your_key_here") .post(body) .build(); try (Response response = client.newCall(request).execute()) { if (response.isSuccessful()) { Files.write(Paths.get("converted.png"), response.body().bytes()); } else { System.err.println(response.body().string()); } }
ข้อผิดพลาด
ทุกความล้มเหลวจะส่งกลับเป็นซองข้อผิดพลาด JSON ที่มี "code" ให้โค้ดของคุณใช้แยกกรณีได้ พร้อม "message" ที่มนุษย์อ่านเข้าใจ บางข้อผิดพลาดมีฟิลด์เพิ่มเติม (เช่น quota_exceeded จะมี "limit" และ "used")
{
"error": {
"code": "quota_exceeded",
"message": "Monthly API allowance of 5000 conversion-minutes reached.",
"limit": 5000,
"used": 5000
}
}
| Status & code | When it happens |
|---|---|
401 missing_key | ไม่มีการส่งส่วนหัว Authorization มา |
401 invalid_key | คีย์นี้ไม่มีอยู่จริง หรือถูกเพิกถอนแล้ว |
403 account_suspended | บัญชีที่เป็นเจ้าของคีย์นี้ถูกระงับ |
403 plan_required | บัญชีนี้อยู่ในแพ็กเกจ Free — การใช้งาน API ต้องมี Basic, Lite, Pro หรือ Team |
400 invalid_category | "category" ไม่ใช่ "image" หรือ "document" |
400 missing_target | "target" ว่างเปล่า |
400 no_file | ไม่มีการส่งไฟล์มา หรือการอัปโหลดล้มเหลว — ฟิลด์ต้องตั้งชื่อว่า "file" |
413 file_too_large | ไฟล์มีขนาดเกินขีดจำกัดการอัปโหลดสูงสุดของแพ็กเกจของคุณ |
429 quota_exceeded | โควตานาทีการแปลงรายเดือนของแพ็กเกจถูกใช้จนหมดแล้ว จะรีเซ็ตเมื่อเริ่มเดือนปฏิทินถัดไป |
429 concurrency_limit | มีการแปลงไฟล์ทำงานพร้อมกันมากเกินไปสำหรับบัญชีนี้ (ใช้ร่วมกับเว็บไซต์) — รอให้งานหนึ่งเสร็จก่อนแล้วลองใหม่ |
400/415/422/500/503 conversion_failed | ไฟล์นี้ไม่สามารถแปลงได้ — "message" อธิบายสาเหตุ รหัสสถานะจะต่างกันไปตามสาเหตุ: 400/415/422 หมายความว่าไฟล์หรือ target นี้จะไม่สำเร็จไม่ว่าจะลองกี่ครั้งก็ตาม; 500/503 หมายถึงปัญหาฝั่งเซิร์ฟเวอร์ และ 503 โดยเฉพาะคุ้มค่าที่จะลองใหม่อีกครั้งในเวลาสั้นๆ |
405 method_not_allowed | ใช้เมธอด HTTP ผิด — เอนด์พอยต์นี้รับเฉพาะ POST |
400 invalid_target | "target" ไม่ใช่ฟอร์แมตผลลัพธ์ที่รองรับสำหรับหมวดหมู่นั้น |
404 job_not_found | ไม่มีงานที่มี id นี้อยู่ในบัญชีนี้ (ข้อความเดียวกันนี้จะถูกส่งกลับสำหรับ job_id ของบัญชีอื่นด้วย — จะไม่มีการเปิดเผยว่ามีอยู่จริงหรือไม่) |
410 result_gone | งานเสร็จสิ้นแล้ว แต่ผลลัพธ์ถูกลบไปแล้ว (ผลลัพธ์จะถูกลบทันทีหลังดาวน์โหลด หรือโดยอัตโนมัติหลังช่วงเวลาจัดเก็บสั้น ๆ) |
500 storage_failed | เซิร์ฟเวอร์ไม่สามารถบันทึกไฟล์ที่อัปโหลดเพื่อประมวลผลเบื้องหลังได้ ลองใหม่ได้อย่างปลอดภัย |
การจัดการข้อผิดพลาดและการลองใหม่
ให้แยกกรณีด้วยฟิลด์ "code" ใน JSON ไม่ใช่ข้อความ "message" — ถ้อยคำอาจเปลี่ยนแปลงได้ในอนาคต แต่ code จะไม่เปลี่ยน concurrency_limit คุ้มค่าที่จะลองใหม่อีกครั้งสั้นๆ หลังจากผ่านไปสองสามวินาที (จะหายไปทันทีที่การแปลงที่กำลังทำงานอยู่ของคุณตัวใดตัวหนึ่งเสร็จสิ้น) ส่วน quota_exceeded จะไม่คลี่คลายเองจนกว่าจะถึงเดือนถัดไป จึงไม่ควรลองใหม่ซ้ำๆ ในลูป conversion_failed เป็น code เดียวที่รหัสสถานะ HTTP ยังมีความหมาย: 503 คือปัญหาชั่วคราวฝั่งเซิร์ฟเวอร์ที่คุ้มค่าให้ลองใหม่สั้นๆ หนึ่งครั้ง ส่วน 400/415/422/500 หมายความว่าไฟล์/target ชุดนั้นจะไม่สำเร็จไม่ว่าจะส่งซ้ำกี่ครั้งก็ตาม การตรวจสอบขนาดไฟล์ฝั่งไคลเอนต์ก่อนอัปโหลดจะช่วยไม่ให้เสียคำขอไปกับ file_too_large ที่รู้ผลอยู่แล้ว
แพ็กเกจและขีดจำกัด
API ใช้ขีดจำกัดร่วมกับแพ็กเกจเดียวกับที่คุณใช้บนเว็บไซต์อยู่แล้ว — ไม่ต้องตั้งค่าแยกต่างหาก
Basic
bolt2000 นาทีการแปลง / เดือน
upload_fileไฟล์ขนาดสูงสุด 2 GB
sync_alt50 คำขอพร้อมกัน
speed30 คำขอ/นาที
Lite
bolt3000 นาทีการแปลง / เดือน
upload_fileไฟล์ขนาดสูงสุด 4 GB
sync_alt100 คำขอพร้อมกัน
speed60 คำขอ/นาที
Pro
bolt5000 นาทีการแปลง / เดือน
upload_fileไฟล์ขนาดสูงสุด 10 GB
sync_altคำขอพร้อมกันได้ไม่จำกัด
speed120 คำขอ/นาที
Team
bolt10000 นาทีการแปลง / เดือน
upload_fileไฟล์ขนาดสูงสุด 20 GB
sync_altคำขอพร้อมกันได้ไม่จำกัด
speed240 คำขอ/นาที
tollใช้ร่วมกับพูลเครดิตรายเดือนของทีม หากทีมใช้พูลนั้นอยู่
เมื่อมีการใช้ขีดจำกัดต่อนาที ทุกการตอบกลับจะมีส่วนหัว X-RateLimit-Limit และ X-RateLimit-Remaining และการตอบกลับแบบ 429 จะมี Retry-After (หน่วยเป็นวินาที) ด้วย — ใช้ค่าเหล่านี้เพื่อชะลอคำขอก่อนจะถึงขีดจำกัด แทนที่จะตอบสนองหลังจากได้รับ 429 เท่านั้น
ฟอร์แมตที่รองรับ
เครื่องมือแปลงไฟล์ตัวเดียวกันทุกประการกับที่เว็บไซต์ใช้ — ไม่มีฟอร์แมตใดเฉพาะ API หรือเฉพาะเว็บไซต์
รองรับเป็นต้นทาง:
JPG, PNG, GIF, WEBP, BMP, AVIF, PDF, PSD, TIFF, EPS, HEIC
ใช้เป็นปลายทางได้:
JPG, PNG, GIF, WEBP, BMP, AVIF, PDF, ICO, PSD, TIFF, EPS
รองรับเป็นต้นทาง:
PDF, DOCX, DOC, PPTX, PPT, XLSX, XLS, RTF, ODT, ODP, ODS, HTML
ใช้เป็นปลายทางได้:
PDF, DOCX, DOC, PPTX, PPT, XLSX, XLS, RTF, ODT, ODP, ODS
ต้นทางและปลายทาง (ฟอร์แมตเข้าและออกเหมือนกัน):
JPG, PNG, WEBP, GIF
ต้นทางและปลายทาง (ฟอร์แมตเข้าและออกเหมือนกัน):
ต้นทางและปลายทาง (ฟอร์แมตเข้าและออกเหมือนกัน):
MP4, MOV, AVI, MKV, WEBM
ต้นทางและปลายทาง (ฟอร์แมตเข้าและออกเหมือนกัน):
MP3, WAV, OGG, AAC, FLAC, M4A, WMA, OPUS, AIFF, AMR, AU, CAF, AC3, DTS, GSM, IRCAM, MP2, TTA, VOC, W64, WV, SPX, RM
infoวิดีโอและเสียง — ทั้งการแปลงและการบีบอัด — ยังใช้ได้เฉพาะบนเว็บไซต์ในตอนนี้ เพราะคำขอ HTTP แบบซิงโครนัสไม่เหมาะกับงานที่อาจใช้เวลาหลายนาที
คำถามที่พบบ่อย
ยังไม่รองรับ — การแปลงเหล่านั้นอาจใช้เวลาหลายนาที ซึ่งไม่เหมาะกับคำขอ HTTP แบบซิงโครนัสเพียงครั้งเดียว ปัจจุบันใช้งานได้บนเว็บไซต์ และอาจรองรับผ่าน API ในอนาคต หากมี API แบบอะซิงโครนัส/ระบบงานคิว
การใช้งาน API ต้องมี Basic, Lite, Pro หรือ Team หากบัญชีเปลี่ยนไปเป็น Free — ไม่ว่าจะยกเลิกเองหรือการสมัครสมาชิกหมดอายุ — คีย์ที่มีอยู่จะหยุดทำงานทันที คีย์จะกลับมาทำงานโดยอัตโนมัติเมื่อบัญชีกลับไปใช้แพ็กเกจแบบชำระเงินอีกครั้ง คุณไม่จำเป็นต้องสร้างคีย์ใหม่
เมื่อเริ่มต้นเดือนปฏิทินแต่ละเดือน ไม่ใช่วันที่เรียกเก็บเงินของคุณ
ปัจจุบันยังไม่มี — ทุกคำขอนับรวมในโควตารายเดือนจริงของคุณ ใช้ไฟล์ขนาดเล็กระหว่างการผสานระบบเพื่อประหยัดโควตา
ได้ ไม่เกินขีดจำกัดการทำงานพร้อมกันของแพ็กเกจคุณ (ดู Plans & limits ด้านบน) — ใช้ร่วมกับการแปลงไฟล์ที่คุณรันบนเว็บไซต์ในเวลาเดียวกันด้วย ไม่ใช่โควตาแยกต่างหากสำหรับ API เท่านั้น
สำหรับ document-compress รับประกัน — จะไม่ส่งไฟล์ PDF ที่ใหญ่กว่าไฟล์ที่อัปโหลดกลับมา หากการบีบอัดใหม่ของ Ghostscript ไม่ได้ผลดีขึ้น คุณจะได้ไฟล์ต้นฉบับกลับมาโดยไม่เปลี่ยนแปลง (X-Saved-Percent จะแสดงเป็น 0) สำหรับ image-compress, target_percent เป็นเป้าหมายที่ตัวเข้ารหัสพยายามทำให้ได้ ไม่ใช่การรับประกันที่แน่นอน — ไฟล์ต้นฉบับที่ถูกบีบอัดหนักอยู่แล้วอาจเล็กลงได้อีกไม่มากนัก
พร้อมเริ่มต้นแล้วหรือยัง?
สร้างคีย์และส่งคำขอแรกของคุณได้ภายในไม่ถึงหนึ่งนาที
รับคีย์ API ของคุณ