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. Xem tất cả mục ngừng hỗ trợ

Multi-Color Print API

Chuyển đổi mô hình 3D thành tệp 3MF in nhiều màu để in 3D. Chọn bảng màu lên đến 16 màu và một cấu hình phần mềm cắt lớp dành cho hãng máy in của bạn.


POST/openapi/v1/print/multi-color

Tạo một tác vụ In nhiều màu

Tạo một tác vụ In nhiều màu, chuyển đổi một mô hình 3D thành một file 3MF nhiều màu để in 3D. Tác vụ chạy ở chế độ nền. Để biết thời gian một tác vụ thường mất bao lâu, xem Thời gian xử lý.

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

Tham số

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

    Bắt buộc trừ khi bạn gửi model_url. ID của tác vụ có mô hình bạn muốn in, ví dụ một tác vụ Ảnh sang 3D, Nhiều ảnh sang 3D, Văn bản sang 3D, Remesh, hoặc Tạo lại texture. Tác vụ đó phải là tác vụ bạn đã tạo bằng API, và có trạng thái SUCCEEDED.

    In nhiều màu đọc file GLB của tác vụ, file này có thể có tối đa 8.000.000 mặt. Một mô hình có nhiều mặt hơn sẽ trả về 400. Trong trường hợp đó, hãy chạy một tác vụ Remesh trên mô hình trước, rồi gửi ID của tác vụ Remesh thay vào đó.

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

    Bắt buộc trừ khi bạn gửi input_task_id. Mô hình cần in, dưới dạng một URL công khai hoặc một Data URI. Nếu bạn gửi cả hai, Meshy sẽ dùng input_task_id.

    Một URL http hoặc https phải trỏ đến một file .glb hoặc .fbx có dung lượng tối đa 400 MB. Một Data URI phải chứa một file GLB dạng base64 có dung lượng tối đa 100 MB. Hãy dùng data:model/gltf-binary;base64,. Gửi file .fbx dưới dạng URL http hoặc https.

    Một file trên 100 MB cũng phải tuân theo các quy tắc sau:

    • Có thể có tối đa 8.000.000 mặt. Meshy tính mặt theo tam giác, nên một mặt tứ giác được tính là 2, và một lưới được vẽ nhiều lần được tính một lần cho mỗi bản sao.
    • Một file FBX phải là FBX nhị phân phiên bản 7.1 trở lên.
    • Một file GLB không được dùng nén Draco.
  • 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, từ 1 đến 16. Để dùng giá trị mặc định, hãy bỏ qua tham số này thay vì gửi 0.

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

    Kiểu màu của file 3MF.

    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ế, chân thực như ảnh chụp, và tạo ra file lớn hơn.
    • cartoon: làm phẳng màu thành các vùng đồng nhất, rõ ràng để tạo phong cách cách điệu, và tạo ra file nhỏ hơn.

    Mô hình phải có màu. realistic cần một texture màu nền duy nhất, với UV trên mọi phần của lưới, còn cartoon cũng chấp nhận màu đỉnh (vertex colors). Meshy sẽ từ chối một mô hình không có texture (màu trắng). Xem model_missing_texture.

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

    Độ sâu phân chia (subdivision depth) mà Meshy dùng để lấy mẫu màu texture lên lưới, từ 3 đến 6. 0 tương đương với việc bỏ qua tham số này. Giá trị cao hơn sẽ nắm bắt chi tiết màu tinh tế hơn, và tạo ra file lớn hơn. Chỉ kiểu realistic sử dụng tham số này, còn cartoon sẽ bỏ qua nó.

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

    Thương hiệu máy in mà Meshy ghi cấu hình phần mềm cắt lớp (slicer preset) tương ứng vào file 3MF. Sau đó file này mở được trong phần mềm cắt lớp của thương hiệu đó với một máy in, sợi in (filament), và hồ sơ quy trình (process profile) phù hợp. Cấu hình này dùng máy in mặc định của thương hiệu, với đầu phun 0.4 mm.

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

    • bambu
    • anycubic
    • creality
    • elegoo
    • flashforge
    • prusa
    • qidi
    • snapmaker
    • ankermake

    Bất kỳ giá trị nào khác sẽ trả về 400.

Giá trị trả về

Trường result của phản hồi chứa ID của tác vụ In nhiều màu mới.

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

  • Name
    400 - Bad Request
    Description

    Yêu cầu không thể chạy. Thông báo lỗi sẽ cho biết vấn đề mà hệ thống phát hiện. Ví dụ:

    • Thiếu tham số: Không có model_url lẫn input_task_id được gửi.
    • Định dạng mô hình không hợp lệ: File model_url không phải là file .glb hoặc .fbx.
    • URL không thể truy cập: Meshy không thể tải file model_url.
    • File mô hình quá lớn: File model_url vượt quá 400 MB khi là URL http hoặc https, hoặc vượt quá 100 MB khi là Data URI.
    • Quá nhiều mặt: File model_url vượt quá 100 MB và có hơn 8.000.000 mặt. Hãy giảm số lượng mặt, rồi gửi lại file.
    • FBX dạng ASCII vượt quá 100 MB: File model_url là file FBX dạng ASCII vượt quá 100 MB. Hãy gửi dưới dạng FBX nhị phân hoặc GLB.
    • File mô hình không đọc được: File model_url vượt quá 100 MB, và Meshy không thể đọc header của nó. Ví dụ, đó là một file GLB nén Draco, hoặc một file FBX nhị phân cũ hơn phiên bản 7.1.
    • Header mô hình quá phức tạp: File model_url vượt quá 100 MB, và header của nó có quá nhiều lưới, nút, hoặc bản ghi để kiểm tra. Hãy giảm số lượng đối tượng trong file, rồi gửi lại.
    • Tác vụ đầu vào không hợp lệ: input_task_id không phải là một tác vụ thành công.
    • Quá nhiều mặt trong tác vụ đầu vào: Mô hình của input_task_id có hơn 8.000.000 mặt. Hãy chạy một tác vụ Remesh trên mô hình đó, rồi gửi ID của tác vụ Remesh thay vào đó.
    • max_colors không hợp lệ: max_colors là số âm hoặc vượt quá 16.
    • style không hợp lệ: style không phải là realistic hoặc cartoon.
    • max_depth không hợp lệ: max_depth nằm ngoài khoảng 3 đến 6, và không phải là 0.
    • printer_brand không hợp lệ: printer_brand không phải là một trong các giá trị khả dụng.
    • Không có nguồn màu: Mô hình thiếu màu mà style yêu cầu. realistic cần một texture màu nền duy nhất, có UV, trên mọi phần của lưới. cartoon chấp nhận một texture màu nền hoặc màu đỉnh. Hãy tạo texture cho mô hình trước, hoặc dùng cartoon cho mô hình có màu đỉnh. Meshy chỉ kiểm tra một file .fbx được tải lên sau khi tác vụ chuẩn hóa nó, nên tác vụ sẽ thất bại với lỗi model_missing_texture thay vào đó.

    Hãy sửa yêu cầu, rồi gửi lại. Xem Lỗi.

  • Name
    401 - Unauthorized
    Description

    Khóa API bị thiếu hoặc không hợp lệ. Hãy kiểm tra header Authorization.

  • Name
    402 - Payment Required
    Description

    Ví dụ:

    • Không đủ tín dụng: Tài khoản không có đủ tín dụng cho tác vụ này, hoặc tài khoản đã đạt giới hạn tín dụng. Hãy kiểm tra số dư tín dụng của bạn, rồi thử lại.
    • Gói miễn phí: Việc tạo tác vụ yêu cầu một gói trả phí. Hãy nâng cấp gói của bạn trong cài đặt đăng ký, rồi thử lại.
  • Name
    403 - Forbidden
    Description

    input_task_id là một mô hình phù điêu (bas-relief), mà endpoint này không thể in. Thông báo là This model type does not support this operation. Hãy gửi một mô hình khác.

  • Name
    404 - Not Found
    Description

    input_task_id không khớp với bất kỳ tác vụ nào của bạn. Hãy kiểm tra ID tác vụ, rồi gửi lại yêu cầu.

  • Name
    429 - Too Many Requests
    Description

    Bạn đã vượt quá giới hạn tốc độ. Hãy chờ, rồi thử lại. Xem Giới hạn tốc độ.


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

Lấy một tác vụ in Nhiều Màu

Trả về một tác vụ in Nhiều Màu theo ID của nó.

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,
  "expires_at": 1700259201000,
  "task_error": null,
"consumed_credits": 10
}

Tham số

  • Name
    id
    Type
    path
    Description

    ID tác vụ từ phản hồi tạo.

Giá trị trả về

Đối tượng tác vụ in Nhiều Màu.


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

Xóa một tác vụ In nhiều màu

Xóa vĩnh viễn một tác vụ In nhiều màu, bao gồm cả mô hình và dữ liệu của nó. Bạn không thể hoàn tác việc xóa.

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 keeps 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."
}

Tham số đường dẫn

  • Name
    id
    Type
    path
    Description

    ID của tác vụ cần xóa.

Trạng thái tác vụ

Xóa một tác vụ PENDING sẽ hoàn lại số tín dụng đã sử dụng khi bạn tạo tác vụ đó.

Một tác vụ IN_PROGRESS không thể bị xóa. Yêu cầu sẽ trả về 409 Conflict, và tác vụ vẫn tiếp tục chạy. Meshy không hoàn tín dụng cho một tác vụ đã bắt đầu chạy, vì vậy việc xóa nó sẽ khiến bạn mất cả tín dụng lẫn kết quả. Hãy đợi cho đến khi tác vụ đạt trạng thái SUCCEEDED, FAILED, hoặc CANCELED, rồi mới xóa nó.

Xóa một tác vụ ở trạng thái cuối cùng (SUCCEEDED, FAILED, hoặc CANCELED) sẽ không hoàn lại tín dụng của tác vụ đó.

Kết quả trả về

200 OK khi tác vụ được xóa, hoặc 409 Conflict khi tác vụ đang ở trạng thái IN_PROGRESS.


GET/openapi/v1/print/multi-color

Liệt kê tác vụ In nhiều màu

Trả về danh sách các tác vụ In nhiều màu của bạn.

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,
    "expires_at": 1700259201000,
    "task_error": null,
  "consumed_credits": 10
  }
]

Tham số

  • Name
    page_num
    Type
    integer
    mặc định 1
    Description

    Số trang cần trả về. Số trang bắt đầu từ 1.

  • Name
    page_size
    Type
    integer
    mặc định 10
    Description

    Số lượng tác vụ trên mỗi trang, tối đa 100.

  • Name
    sort_by
    Type
    string
    Description

    Thứ tự sắp xếp.

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

    • +created_at: cũ nhất trước
    • -created_at: mới nhất trước

Giá trị trả về

Một danh sách phân trang các đối tượng tác vụ In nhiều màu.


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

Stream một tác vụ Multi-Color Print

Stream các cập nhật của tác vụ Multi-Color Print dưới dạng Server-Sent Events (SSE).

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.
// These examples are shortened. Each event holds the full task object.
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,
  "expires_at": 1700259201000,
  "task_error": null,
"consumed_credits": 10
}

Tham số

  • Name
    id
    Type
    path
    Description

    ID tác vụ từ phản hồi tạo tác vụ.

Giá trị trả về

Một luồng (stream) các đối tượng tác vụ Multi-Color Print dưới dạng Server-Sent Events.

Mỗi sự kiện chứa toàn bộ đối tượng tác vụ, theo cùng định dạng mà endpoint Get trả về. Trong khi tác vụ đang ở trạng thái PENDING hoặc IN_PROGRESS, các trường kết quả của nó chưa có giá trị.


Đối tượng tác vụ In nhiều màu (Multi-Color Print task)

Một đối tượng tác vụ In nhiều màu mô tả một lần chuyển đổi mô hình 3D sang tệp 3MF in nhiều màu. Nó chứa trạng thái, progress, và tệp 3MF khi tác vụ thành công.

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,
  "expires_at": 1700259201000,
  "task_error": null,
"consumed_credits": 10
}
  • Name
    id
    Type
    string
    Description

    ID của tác vụ. Hãy coi đây là một chuỗi không minh bạch (opaque string), và đừng phụ thuộc vào định dạng của nó.

  • Name
    type
    Type
    string
    Description

    Loại tác vụ, luôn là print-multi-color.

  • Name
    model_urls
    Type
    object
    Description

    URL tải xuống cho mô hình đã in, mỗi URL ứng với một định dạng tệp. Một định dạng mà tác vụ không tạo ra sẽ không có khóa tương ứng, thay vì có một chuỗi rỗng.

    • Name
      3mf
      Type
      string
      Description

      Tệp 3MF in nhiều màu.

  • Name
    progress
    Type
    integer
    Description

    Tác vụ đã hoàn thành bao nhiêu, tính theo phần trăm. Giá trị là 0 cho đến khi tác vụ bắt đầu và 100 khi tác vụ thành công.

  • Name
    status
    Type
    string
    Description

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

  • Name
    preceding_tasks
    Type
    integer
    Description

    Số lượng tác vụ đứng trước tác vụ này trong hàng đợi. Giá trị này chỉ có ý nghĩa khi tác vụ đang ở trạng thái PENDING.

  • Name
    created_at
    Type
    timestamp
    Description

    Thời điểm tác vụ được tạo, tính bằng mili-giây Unix.

  • Name
    started_at
    Type
    timestamp
    Description

    Thời điểm tác vụ bắt đầu, tính bằng mili-giây Unix. Giá trị là 0 cho đến khi tác vụ bắt đầu.

  • Name
    finished_at
    Type
    timestamp
    Description

    Thời điểm tác vụ kết thúc, tính bằng mili-giây Unix. Giá trị là 0 cho đến khi tác vụ kết thúc.

  • Name
    expires_at
    Type
    timestamp
    Description

    Thời điểm kết quả của tác vụ hết hạn, tính bằng mili-giây Unix. Giá trị là 0 cho đến khi tác vụ kết thúc.

  • Name
    task_error
    Type
    object
    Description

    Chi tiết lỗi khi tác vụ thất bại. Xem Lỗi.

  • Name
    consumed_credits
    Type
    integer
    Description

    Số tín dụng mà tác vụ đã sử dụng. Có mặt khi trạng thái là PENDING, IN_PROGRESS, hoặc SUCCEEDED. Giá trị là 0 đối với tác vụ FAILED, vì Meshy sẽ hoàn lại tín dụng khi tác vụ thất bại.