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ợ

Remesh API

Xây dựng lại lưới của mô hình 3D với topology và số lượng mặt mới, đồng thời xuất ra các định dạng mà bạn chọn. Mô hình có thể đến từ một tác vụ khác của Meshy, chẳng hạn như Ảnh sang 3D hoặc Văn bản sang 3D, hoặc từ một tệp mô hình.


POST/openapi/v1/remesh

Tạo tác vụ Remesh

Tạo một tác vụ Remesh. Tác vụ chạy ngầm. Để biết thời gian xử lý thường mất bao lâu, xem Thời gian xử lý.

Request

POST
/openapi/v1/remesh
# Basic remesh with custom formats and resize
curl https://api.meshy.ai/openapi/v1/remesh \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "target_formats": ["glb", "fbx"],
    "topology": "quad",
    "target_polycount": 50000,
    "resize_height": 1.0,
    "origin_at": "bottom"
  }'

# Quad remesh with auto-size
curl https://api.meshy.ai/openapi/v1/remesh \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "target_formats": ["glb", "fbx"],
    "topology": "quad",
    "target_polycount": 50000,
    "auto_size": true
  }'

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ụ mà bạn muốn remesh mô hình của nó, ví dụ như tác vụ Văn bản sang 3D, Ảnh sang 3D, Tạo lại texture, hoặc Remesh. Tác vụ đó phải là tác vụ bạn đã tạo bằng API và có trạng thái SUCCEEDED.

  • 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 remesh, dưới dạng URL công khai hoặc data URI. Nếu bạn gửi cả hai, Meshy sẽ dùng input_task_id.

    Mô hình phải là tệp GLB, glTF, OBJ, FBX, hoặc STL có dung lượng tối đa 400 MB từ URL http hoặc https, hoặc 100 MB nếu là data URI. Đối với data URI, hãy dùng MIME type application/octet-stream.

    Tệp lớn hơn 100 MB còn phải tuân theo các quy tắc sau:

    • Tệp GLB, glTF, FBX, hoặc OBJ có thể có tối đa 10.000.000 mặt. Meshy tính mặt theo tam giác, vì vậy 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.
    • Tệp FBX phải là FBX nhị phân 7.1 trở lên.
    • Tệp GLB hoặc glTF không được dùng nén Draco.
  • Name
    target_formats
    Type
    string[]
    mặc định ["glb"]
    Description

    Các định dạng tệp cần tạo.

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

    • glb
    • fbx
    • obj
    • usdz
    • blend
    • stl
    • 3mf
  • Name
    topology
    Type
    string
    mặc định triangle
    Description

    Loại mặt của mô hình đã remesh.

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

    • quad: lưới chủ yếu gồm mặt tứ giác
    • triangle: lưới tam giác đã giảm mặt
  • Name
    target_polycount
    Type
    integer
    mặc định 30000
    Description

    Số lượng mặt mục tiêu, từ 100 đến 300000. Kết quả có thể khác với mục tiêu, tùy thuộc vào hình học của mô hình. Giá trị ngoài phạm vi này sẽ trả về 400.

  • Name
    decimation_mode
    Type
    integer
    Description

    Số lượng mặt thích ứng, theo cấp độ. Khi bạn đặt tham số này, Meshy sẽ bỏ qua target_polycount.

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

    • 1: siêu cao (ultra)
    • 2: cao (high)
    • 3: trung bình (medium)
    • 4: thấp (low)
  • Name
    resize_height
    Type
    number
    ⚠ không dùng nữa
    mặc định 0
    Description

    Hãy dùng Resize API thay thế. Chiều cao để đổi kích thước mô hình, tính bằng mét. Chỉ gửi tối đa một trong các tham số resize_height, resize_longest_side, và auto_size.

  • Name
    resize_longest_side
    Type
    number
    ⚠ không dùng nữa
    mặc định 0
    Description

    Hãy dùng Resize API thay thế. Độ dài để đổi kích thước cạnh dài nhất của hộp bao mô hình, tính bằng mét. Chỉ gửi tối đa một trong các tham số resize_height, resize_longest_side, và auto_size.

  • Name
    auto_size
    Type
    boolean
    ⚠ không dùng nữa
    mặc định false
    Description

    Hãy dùng Resize API thay thế. Có ước tính chiều cao thực tế của vật thể bằng AI thị giác và đổi kích thước mô hình theo đó hay không. Chỉ gửi tối đa một trong các tham số resize_height, resize_longest_side, và auto_size.

  • Name
    origin_at
    Type
    string
    ⚠ không dùng nữa
    mặc định bottom
    Description

    Hãy dùng Resize API thay thế. Vị trí đặt gốc tọa độ của mô hình, bottom hoặc center. Giá trị mặc định áp dụng khi bạn gửi resize_height, resize_longest_side, hoặc auto_size. Nếu không gửi một trong các tham số đó, Meshy chỉ di chuyển gốc tọa độ nếu bạn gửi origin_at.

  • Name
    convert_format_only
    Type
    boolean
    ⚠ không dùng nữa
    Description

    Hãy dùng Convert API thay thế. Có chỉ chuyển đổi mô hình sang target_formats hay không. Khi là true, Meshy bỏ qua topology, target_polycount, decimation_mode, resize_height, resize_longest_side, và auto_size, nhưng vẫn kiểm tra giá trị của chúng, nên giá trị không hợp lệ sẽ trả về 400. Với convert_format_only: true, target_formats rỗng hoặc null sẽ trả về 400.

  • Name
    alpha_thumbnail
    Type
    boolean
    mặc định false
    Description

    Có đồng thời render một bản xem trước với nền trong suốt (RGBA) hay không, được trả về trong alpha_thumbnail_url khi bạn lấy tác vụ. thumbnail_url không thay đổi.

Giá trị trả về

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

Các trường hợp lỗi

  • Name
    400 - Bad Request
    Description

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

    • Thiếu tham số: Không gửi model_url cũng không gửi input_task_id.
    • Tác vụ đầu vào không hợp lệ: input_task_id không phải là một tác vụ API thành công, hoặc mô hình AI của nó không hỗ trợ remesh.
    • Định dạng mô hình không hợp lệ: Tệp model_url có phần mở rộng không được hỗ trợ.
    • URL không thể truy cập: Meshy không thể tải xuống tệp model_url.
    • Tệp mô hình quá lớn: Tệp model_url vượt quá 400 MB từ URL http hoặc https, hoặc vượt quá 100 MB nếu là data URI.
    • Quá nhiều mặt: Tệp model_url vượt quá 100 MB và có nhiều hơn 10.000.000 mặt. Hãy giảm số lượng mặt, rồi gửi lại tệp.
    • ASCII FBX vượt quá 100 MB: Tệp model_url là ASCII FBX vượt quá 100 MB. Hãy gửi dưới dạng FBX nhị phân hoặc GLB.
    • Tệp mô hình không đọc được: Tệp model_url vượt quá 100 MB, và Meshy không thể đọc phần header của nó. Ví dụ, đó là GLB hoặc glTF đã nén Draco, hoặc FBX nhị phân cũ hơn 7.1.
    • Header mô hình quá phức tạp: Tệp model_url vượt quá 100 MB, và phần header của nó có quá nhiều lưới, node, hoặc bản ghi để kiểm tra. Hãy giảm số lượng đối tượng trong tệp, rồi gửi lại.
    • Topology không hợp lệ: topology không phải là quad hoặc triangle.
    • Tham số loại trừ lẫn nhau: Yêu cầu có nhiều hơn một trong các tham số auto_size, resize_height, và resize_longest_side. Chỉ gửi một tham số.

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

  • Name
    401 - Unauthorized
    Description

    Thiếu khóa API hoặc khóa API 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í: Tạo tác vụ yêu cầu 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ô hình chạm nổi (bas-relief), mà endpoint này không thể remesh. 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 đợi, rồi thử lại. Xem Giới hạn tốc độ.


GET/openapi/v1/remesh/:id

Lấy một tác vụ Remesh

Trả về một tác vụ Remesh theo ID của nó.

Request

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

Response

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "remesh",
  "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
      "fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
      "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
      "usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
      "blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
      "stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null
}

Tham số

  • Name
    id
    Type
    path
    Description

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

Giá trị trả về

Đối tượng tác vụ Remesh.


DELETE/openapi/v1/remesh/:id

Xóa một tác vụ Remesh

Xóa vĩnh viễn một tác vụ Remesh, bao gồm cả cá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/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/remesh/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 lại tín dụng cho một tác vụ đã bắt đầu, 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 nó đạt trạng thái SUCCEEDED, FAILED, hoặc CANCELED, sau đó mới xóa.

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.

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

Liệt kê các tác vụ Remesh

Trả về danh sách các tác vụ Remesh của bạn.

Request

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

Response

[
  {
    "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
    "type": "remesh",
    "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
      "fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
      "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
      "usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
      "blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
      "stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
    },
    "progress": 100,
    "status": "SUCCEEDED",
    "created_at": 1699999999000,
    "started_at": 1700000000000,
    "finished_at": 1700000001000,
    "task_error": null
  }
]

Tham số

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

    Số trang cần trả về, tối đa 255. Giá trị lớn hơn sẽ trả về lỗi 400.

  • 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ề

Danh sách phân trang của các đối tượng tác vụ Remesh.


GET/openapi/v1/remesh/:id/stream

Stream một tác vụ Remesh

Truyền trực tuyến các cập nhật của tác vụ Remesh dưới dạng Server-Sent Events (SSE).

Request

GET
/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
curl -N https://api.meshy.ai/openapi/v1/remesh/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": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "remesh",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
    "fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
    "usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
    "blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
  },
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
}

Tham số

  • Name
    id
    Type
    path
    Description

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

Giá trị trả về

Một luồng các đối tượng tác vụ Remesh 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ụ Remesh

Một đối tượng tác vụ Remesh mô tả một lần remesh của mô hình 3D. Nó lưu trữ trạng thái, progress, và các tệp mô hình khi tác vụ thành công.

Thuộc tính

Example Remesh Task Object

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "remesh",
  "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
      "fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
      "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
      "usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
      "blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
      "stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
  },
  "progress": 100,
  "status": "SUCCEEDED",
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 5
}
  • Name
    id
    Type
    string
    Description

    ID của tác vụ. Hãy coi nó như một chuỗi không minh bạch, 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à remesh.

  • Name
    model_urls
    Type
    object
    Description

    URL tải xuống cho mô hình đã remesh, 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ì là một chuỗi rỗng.

    • Name
      glb
      Type
      string
      Description

      Tệp GLB.

    • Name
      fbx
      Type
      string
      Description

      Tệp FBX.

    • Name
      obj
      Type
      string
      Description

      Tệp OBJ.

    • Name
      usdz
      Type
      string
      Description

      Tệp USDZ.

    • Name
      blend
      Type
      string
      Description

      Tệp Blender.

    • Name
      stl
      Type
      string
      Description

      Tệp STL.

    • Name
      3mf
      Type
      string
      Description

      Tệp 3MF. Chỉ xuất hiện khi target_formats bao gồm 3mf.

  • Name
    thumbnail_url
    Type
    string
    Description

    URL tải xuống cho hình ảnh xem trước của mô hình đã remesh.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    URL tải xuống cho một phiên bản của thumbnail_url với nền trong suốt (RGBA). Chỉ xuất hiện khi bạn tạo tác vụ với alpha_thumbnail: true và Meshy đã render ảnh xem trước trong suốt.

  • Name
    progress
    Type
    integer
    Description

    Mức độ hoàn thành của tác vụ, 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 các URL tải xuống 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
    texture_urls
    Type
    array
    Description

    URL tải xuống cho các texture map của mô hình, khi tác vụ thành công: một mảng các đối tượng, mỗi đối tượng ứng với một bộ texture. Mỗi đối tượng có một URL base_color, và cũng có thể có các URL metallic, roughness, normal, emission, và metallic_roughness. Giá trị là null cho đến khi tác vụ thành công, và là một mảng rỗng khi mô hình không có texture map nào.

  • 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. Xuất hiện 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 hoàn lại tín dụng khi một tác vụ thất bại.