Convert API
Convert API cho phép bạn chuyển đổi các mô hình 3D hiện có sang các định dạng file khác.
Create a Convert Task
Endpoint này tạo một task chuyển đổi định dạng mới.
Tham số
Chỉ một trong hai input_task_id hoặc model_url là bắt buộc. Nếu cả hai được cung cấp, input_task_id sẽ có độ ưu tiên.
- Name
- input_task_id
- Type
- string
- Bắt buộc
- Description
ID của một task Meshy đã hoàn thành mà bạn muốn chuyển đổi model. Task phải có trạng thái là
SUCCEEDED.
- Name
- model_url
- Type
- string
- Bắt buộc
- Description
Một URL công khai có thể truy cập được hoặc data URI trỏ đến một file model 3D. Các định dạng được hỗ trợ:
.glb,.gltf,.obj,.fbx,.stl. Đối với Data URI, sử dụng MIME type:application/octet-stream.
- Name
- target_formats
- Type
- string[]
- Bắt buộc
- Description
Danh sách các định dạng đầu ra cho model đã chuyển đổi. Các giá trị khả dụng:
glb,fbx,obj,usdz,blend,stl,3mf.
Giá trị trả về
Thuộc tính result của phản hồi chứa id của task chuyển đổi vừa được tạo.
Các trường hợp lỗi
400 - Bad Request
Yêu cầu không hợp lệ. Các nguyên nhân thường gặp:
- Thiếu tham số: Phải cung cấp
model_urlhoặcinput_task_id. - Thiếu target_formats: Phải chỉ định ít nhất một định dạng đích.
- Task đầu vào không hợp lệ:
input_task_idphải trỏ đến một task đã thành công. - Định dạng model không hợp lệ:
model_urltrỏ đến một file có phần mở rộng không được hỗ trợ. - URL không thể truy cập: Không thể tải xuống
model_url.
401 - Unauthorized
Xác thực thất bại. Vui lòng kiểm tra khóa API của bạn.
402 - Payment Required
Không đủ tín dụng để thực hiện task này.
429 - Too Many Requests
Bạn đã vượt quá giới hạn tốc độ.
Request
curl https://api.meshy.ai/openapi/v1/convert \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"target_formats": ["fbx", "stl"]
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Truy xuất tác vụ Chuyển đổi
Endpoint này truy xuất một tác vụ chuyển đổi theo ID của nó.
Tham số
- Name
- id
- Type
- path
- Description
ID của tác vụ chuyển đổi cần truy xuất.
Kết quả trả về
Đối tượng Tác vụ Chuyển đổi.
Request
curl https://api.meshy.ai/openapi/v1/convert/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "convert",
"model_urls": {
"glb": "",
"fbx": "https://assets.meshy.ai/.../model.fbx?Expires=...",
"obj": "",
"usdz": "",
"stl": "https://assets.meshy.ai/.../model.stl?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
Xóa một tác vụ Chuyển đổi
Endpoint này xóa vĩnh viễn một tác vụ chuyển đổi, bao gồm tất cả các mô hình và dữ liệu liên quan. Hành động này không thể hoàn tác.
Tham số đường dẫn
- Name
- id
- Type
- path
- Description
ID của tác vụ chuyển đổi cần xóa.
Trạng thái tác vụ
Một tác vụ vẫn còn ở trạng thái PENDING sẽ được xóa và số tín dụng đã tiêu tốn tại
thời điểm tạo sẽ được hoàn lại.
Một tác vụ đã ở trạng thái IN_PROGRESS thì không thể xóa: yêu cầu sẽ bị
từ chối với mã 409 Conflict và tác vụ vẫn tiếp tục chạy. Tín dụng cho một tác vụ
mà worker đã bắt đầu xử lý sẽ không được hoàn lại, vì vậy việc xóa nó giữa chừng
sẽ khiến bạn mất cả tín dụng lẫn kết quả. Hãy chờ cho đến khi tác vụ đạt trạng thái
SUCCEEDED, FAILED hoặc CANCELED, rồi mới xóa nó.
Một tác vụ ở trạng thái cuối cùng (SUCCEEDED, FAILED hoặc CANCELED) sẽ được xóa
mà không hoàn lại tín dụng.
Kết quả trả về
Trả về 200 OK khi thành công, hoặc 409 Conflict khi tác vụ đang ở trạng thái
IN_PROGRESS.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/convert/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS — the task is left running:
{
"message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}
Liệt kê Convert Tasks
Endpoint này cho phép bạn lấy danh sách các convert task.
Tham số
- Name
- page_num
- Type
- integer
- mặc định 1
- Description
Số trang cho phân trang.
- Name
- page_size
- Type
- integer
- mặc định 10
- Description
Giới hạn kích thước trang. Tối đa cho phép là
100mục.
- Name
- sort_by
- Type
- string
- Description
Trường dùng để sắp xếp. Các giá trị khả dụng:
+created_at: Sắp xếp theo thời gian tạo tăng dần.-created_at: Sắp xếp theo thời gian tạo giảm dần.
Trả về
Trả về một danh sách phân trang gồm Các đối tượng Convert Task.
Request
curl https://api.meshy.ai/openapi/v1/convert?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "convert",
"model_urls": {
"fbx": "https://assets.meshy.ai/.../model.fbx?Expires=...",
"stl": "https://assets.meshy.ai/.../model.stl?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
]
Stream một Convert Task
Endpoint này truyền (stream) các cập nhật theo thời gian thực cho một convert task bằng Server-Sent Events (SSE).
Tham số
- Name
- id
- Type
- path
- Description
Định danh duy nhất của convert task cần stream.
Kết quả trả về
Trả về một luồng (stream) các The Convert Task Objects dưới dạng Server-Sent Events.
Đối với các task ở trạng thái PENDING hoặc IN_PROGRESS, luồng phản hồi sẽ chỉ bao gồm các trường progress và status cần thiết.
Request
curl -N https://api.meshy.ai/openapi/v1/convert/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Message event examples illustrate task progress.
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "convert",
"model_urls": {
"fbx": "https://assets.meshy.ai/.../model.fbx?Expires=...",
"stl": "https://assets.meshy.ai/.../model.stl?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
Đối tượng Convert Task
Đối tượng Convert Task đại diện cho một tác vụ chuyển đổi định dạng.
Properties
id· string
Định danh duy nhất cho tác vụ.
type· string
Loại tác vụ. Giá trị là convert.
model_urls· object
Các URL có thể tải xuống cho các tệp mô hình đã chuyển đổi. Chỉ các định dạng được chỉ định trong target_formats mới có URL. Các thuộc tính định dạng khác sẽ là chuỗi rỗng.
progress· integer
Tiến trình của tác vụ (0-100).
status· string
Trạng thái của tác vụ. Các giá trị có thể có: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
preceding_tasks· integer
Số lượng tác vụ đứng trước. Chỉ có ý nghĩa khi trạng thái là PENDING.
created_at· timestamp
Dấu thời gian khi tác vụ được tạo, tính bằng mili giây.
started_at· timestamp
Dấu thời gian khi tác vụ được bắt đầu, tính bằng mili giây. 0 nếu chưa bắt đầu.
finished_at· timestamp
Dấu thời gian khi tác vụ hoàn thành, tính bằng mili giây. 0 nếu chưa hoàn thành.
task_error· object
Đối tượng lỗi nếu tác vụ thất bại. Xem Lỗi để biết thêm chi tiết.
consumed_credits· integer
Số lượng tín dụng đã tiêu thụ bởi tác vụ này (1 tín dụng cho mỗi tác vụ convert). Trả về 0 đối với các tác vụ FAILED.