meshy-5 sẽ ngừng hoạt động vào 10 thg 10, 2026. lowpoly sẽ ngừng hoạt động vào 30 thg 10, 2026. Hãy chuyển sang mô hình khác trước các ngày này để tránh lỗi yêu cầu.

Multi-Color Print API

Chuyển đổi mô hình 3D sang định dạng 3MF nhiều màu để in 3D, với bảng màu có thể tùy chỉnh lên đến 16 màu.


POST/openapi/v1/print/multi-color

Tạo tác vụ in 3D đa màu

Endpoint này tạo một tác vụ in 3D đa màu mới. Tác vụ này chuyển đổi một mô hình 3D thành tệp 3MF đa màu phù hợp để in 3D.

Tham số

  • Name
    model_url
    Type
    string
    Bắt buộc
    Description

    URL có thể truy cập công khai hoặc Data URI của một mô hình 3D. Chúng tôi hiện hỗ trợ các định dạng .glb và .fbx.

  • Name
    max_colors
    Type
    integer
    mặc định 4
    Description

    Số lượng màu tối đa trong bảng màu đầu ra.

    Phạm vi hợp lệ: 1 đến 16.

  • Name
    style
    Type
    string
    mặc định realistic
    Description

    Phong cách màu sắc trực quan của tệp 3MF được tạo ra.

    Các giá trị khả dụng:

    • realistic: Lấy mẫu màu trực tiếp từ texture của mô hình để có chi tiết tinh tế, giống ảnh thật. Tạo ra tệp lớn hơn.
    • cartoon: Làm phẳng màu sắc thành các vùng đồng nhất, gọn gàng để tạo phong cách cách điệu. Tạo ra tệp nhỏ hơn.

    Đầu vào phải mang theo màu sắc: realistic yêu cầu một texture màu cơ bản duy nhất với tọa độ UV trên mọi phần của lưới; cartoon cũng chấp nhận màu theo từng đỉnh. Các mô hình không có texture (màu trắng) sẽ bị từ chối — xem model_missing_texture.

  • Name
    max_depth
    Type
    integer
    mặc định 4
    Description

    Độ sâu phân chia được sử dụng để lấy mẫu màu texture lên lưới. Giá trị càng cao sẽ nắm bắt chi tiết màu sắc càng tinh tế nhưng đổi lại tệp sẽ lớn hơn. Chỉ áp dụng cho phong cách realistic; bị bỏ qua đối với cartoon.

    Phạm vi hợp lệ: 3 đến 6.

  • Name
    printer_brand
    Type
    string
    mặc định bambu
    Description

    Thương hiệu máy in mà preset phần mềm cắt lớp của nó được ghi vào tệp 3MF, để tệp mở trong phần mềm cắt lớp của thương hiệu đó với máy in, vật liệu in và hồ sơ quy trình phù hợp. Mỗi thương hiệu sử dụng máy in mặc định của mình với đầu phun 0,4 mm.

    Các giá trị khả dụng: bambu, anycubic, creality, elegoo, flashforge, prusa, qidi, snapmaker, ankermake.

Kết quả trả về

Thuộc tính result của phản hồi chứa id của tác vụ in 3D vừa được tạo.

Các trường hợp thất bại

  • Name
    400 - Bad Request
    Description

    Yêu cầu không được chấp nhận. Các nguyên nhân phổ biến:

    • Thiếu tham số: Phải cung cấp model_url hoặc input_task_id.
    • Định dạng mô hình không hợp lệ: model_url trỏ đến một tệp có phần mở rộng không được hỗ trợ (chỉ hỗ trợ .glb và .fbx).
    • URL không thể truy cập: Không thể tải xuống model_url.
    • Tác vụ đầu vào không hợp lệ: input_task_id phải tham chiếu đến một tác vụ thành công.
    • max_colors không hợp lệ: Giá trị phải nằm trong khoảng từ 1 đến 16.
    • style không hợp lệ: Giá trị phải là realistic hoặc cartoon.
    • max_depth không hợp lệ: Giá trị phải nằm trong khoảng từ 3 đến 6.
    • printer_brand không hợp lệ: Giá trị phải là một trong các thương hiệu được liệt kê ở trên.
    • Không có nguồn màu: Mô hình đầu vào không có texture màu cơ bản (realistic cần một texture duy nhất, có UV, trên mọi phần của lưới) và không có màu theo đỉnh (cartoon chấp nhận cả hai). Hãy thêm texture cho mô hình trước, hoặc sử dụng cartoon cho các mô hình có màu theo đỉnh. Các tệp .fbx được tải lên sẽ được kiểm tra sau khi tác vụ chuẩn hóa chúng và sẽ thất bại với lỗi model_missing_texture.
  • Name
    401 - Unauthorized
    Description

    Xác thực thất bại. Vui lòng kiểm tra khóa API của bạn.

  • Name
    402 - Payment Required
    Description

    Không đủ tín dụng để thực hiện tác vụ này.

  • Name
    429 - Too Many Requests
    Description

    Bạn đã vượt quá giới hạn tốc độ của mình.

Request

POST
/openapi/v1/print/multi-color
# Convert a 3D model to a multi-color 3MF with a Creality slicer preset
curl https://api.meshy.ai/openapi/v1/print/multi-color \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "max_colors": 8,
    "printer_brand": "creality"
  }'

Response

{
  "result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}

GET/openapi/v1/print/multi-color/:id

Truy xuất tác vụ In 3D đa màu

endpoint này truy xuất một tác vụ in 3D đa màu theo ID của nó.

Tham số

  • Name
    id
    Type
    path
    Description

    ID của tác vụ in 3D cần truy xuất.

Giá trị trả về

Đối tượng Tác vụ In 3D.

Request

GET
/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl https://api.meshy.ai/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-multi-color",
  "model_urls": {
      "3mf": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.3mf?Expires=***"
},
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
"consumed_credits": 10
}

DELETE/openapi/v1/print/multi-color/:id

Xóa một Tác vụ In 3D Đa Màu

Endpoint này xóa vĩnh viễn một tác vụ in 3D đa màu, 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ụ in 3D đa màu cần xóa.

Trạng thái tác vụ

Một tác vụ vẫn đang ở 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 đợi cho đến khi nó đạt trạng thái SUCCEEDED, FAILED hoặc CANCELED, rồi mới xóa.

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 được hoàn tín dụng.

Giá trị 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

DELETE
/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/print/multi-color/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."
}

GET/openapi/v1/print/multi-color

Lấy danh sách tác vụ in 3D đa màu

Endpoint này cho phép bạn lấy danh sách các tác vụ in 3D đa màu.

Tham số

Thuộc tính tùy chọn

  • Name
    page_num
    Type
    integer
    Description

    Số trang dùng cho phân trang. Bắt đầu và mặc định là 1.

  • Name
    page_size
    Type
    integer
    Description

    Giới hạn số lượng mục trên mỗi trang. Mặc định là 10 mục. Tối đa cho phép là 100 mụ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.

Kết quả trả về

Trả về danh sách phân trang của Đối tượng tác vụ in 3D.

Request

GET
/openapi/v1/print/multi-color
curl https://api.meshy.ai/openapi/v1/print/multi-color?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
    "type": "print-multi-color",
    "model_urls": {
      "3mf": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.3mf?Expires=***"
    },
    "progress": 100,
    "status": "SUCCEEDED",
    "preceding_tasks": 0,
    "created_at": 1699999999000,
    "started_at": 1700000000000,
    "finished_at": 1700000001000,
    "task_error": null,
  "consumed_credits": 10
  }
]

GET/openapi/v1/print/multi-color/:id/stream

Stream a Multi-Color 3D Print Task

Endpoint này truyền trực tuyến các cập nhật theo thời gian thực cho một tác vụ in 3D nhiều màu bằng Server-Sent Events (SSE).

Tham số

  • Name
    id
    Type
    path
    Description

    Định danh duy nhất của tác vụ in 3D nhiều màu cần truyền trực tuyến.

Kết quả trả về

Trả về một luồng The 3D Print Task Objects dưới dạng Server-Sent Events.

Đối với các tác vụ ở 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

GET
/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
curl -N https://api.meshy.ai/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
event: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "type": "print-multi-color",
  "model_urls": {
    "3mf": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/model.3mf?Expires=***"
  },
  "progress": 100,
  "status": "SUCCEEDED",
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
"consumed_credits": 10
}

Đối tượng Tác vụ In 3D

  • Name
    id
    Type
    string
    Description

    Định danh duy nhất cho tác vụ. Mặc dù chúng tôi sử dụng UUID có thể sắp xếp theo k (k-sortable UUID) làm chi tiết triển khai cho id tác vụ, bạn không nên đưa ra bất kỳ giả định nào về định dạng của id.

  • Name
    type
    Type
    string
    Description

    Loại của tác vụ In 3D. Giá trị là print-multi-color.

  • Name
    model_urls
    Type
    object
    Description

    URL có thể tải xuống cho tệp mô hình 3D được tạo bởi Meshy. Thuộc tính cho một định dạng sẽ bị bỏ qua nếu định dạng đó không được tạo ra, thay vì trả về một chuỗi rỗng.

    • Name
      3mf
      Type
      string
      Description

      URL có thể tải xuống cho tệp 3MF nhiều màu.

  • Name
    progress
    Type
    integer
    Description

    Tiến độ của tác vụ. Nếu tác vụ chưa bắt đầu, thuộc tính này sẽ là 0. Khi tác vụ đã thành công, giá trị này sẽ trở thành 100.

  • Name
    status
    Type
    string
    Description

    Trạng thái của tác vụ. Các giá trị có thể là một trong các giá trị PENDING, IN_PROGRESS, SUCCEEDED, FAILED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Số lượng tác vụ đứng trước.

  • Name
    created_at
    Type
    timestamp
    Description

    Dấu thời gian khi tác vụ được tạo, tính bằng mili-giây.

  • Name
    started_at
    Type
    timestamp
    Description

    Dấu thời gian khi tác vụ được bắt đầu, tính bằng mili-giây. Nếu tác vụ chưa bắt đầu, thuộc tính này sẽ là 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Dấu thời gian khi tác vụ hoàn thành, tính bằng mili-giây. Nếu tác vụ chưa hoàn thành, thuộc tính này sẽ là 0.

  • Name
    task_error
    Type
    object
    Description

    Chi tiết lỗi cho các tác vụ thất bại. Xem Lỗi để biết toàn bộ tham chiếu đối tượng task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Số lượng tín dụng đã tiêu thụ bởi tác vụ này. Xuất hiện khi trạng thái tác vụ là PENDING, IN_PROGRESS, hoặc SUCCEEDED. Trả về 0 đối với các tác vụ FAILED (tín dụng được hoàn lại khi thất bại).

The 3D Print Task Object

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-multi-color",
  "model_urls": {
      "3mf": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.3mf?Expires=***"
},
  "progress": 100,
  "status": "SUCCEEDED",
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
"consumed_credits": 10
}