API Remesh

API Remesh memungkinkan Anda untuk melakukan remesh dan ekspor model 3D yang sudah ada yang dihasilkan oleh API Meshy lainnya (seperti Gambar ke 3D atau Teks ke 3D) ke dalam berbagai format. Bagian ini memberikan rincian tentang cara menggunakan API Remesh.


POST/openapi/v1/remesh

Buat Tugas Remesh

Endpoint ini membuat tugas remesh baru.

Parameter

  • Name
    input_task_id
    Type
    string
    Wajib
    Description

    ID dari tugas Gambar ke 3D atau Teks ke 3D yang telah selesai yang ingin Anda remesh. Tugas ini harus salah satu dari tugas berikut: Pratinjau Teks ke 3D, Penyempurnaan Teks ke 3D, Gambar ke 3D atau Retexture. Selain itu, harus memiliki status SUCCEEDED.

  • Name
    model_url
    Type
    string
    Wajib
    Description

    Silakan sediakan model 3D untuk Meshy untuk remesh melalui URL yang dapat diakses publik atau Data URI. Format yang didukung: .glb, .gltf, .obj, .fbx, .stl.

    Untuk Data URI, gunakan MIME type: application/octet-stream.

  • Name
    target_formats
    Type
    string[]
    default ["glb"]
    Description

    Daftar format target untuk model yang telah di-remesh. Jika tidak disebutkan, hanya GLB yang dihasilkan.

    Nilai yang tersedia: glb, fbx, obj, usdz, blend, stl, 3mf.

  • Name
    topology
    Type
    string
    default triangle
    Description

    Tentukan topology dari model yang dihasilkan.

    Nilai yang tersedia:

    • quad: Menghasilkan mesh dominan quad.
    • triangle: Menghasilkan mesh segitiga yang tereduksi.
  • Name
    target_polycount
    Type
    integer
    default 30,000
    Description

    Tentukan jumlah poligon target dalam model yang dihasilkan. Jumlah poligon aktual mungkin menyimpang dari target tergantung pada kompleksitas geometri.

    Rentang nilai yang valid bervariasi tergantung pada tingkat pengguna:

    • 100 hingga 300,000 (inklusif)
  • Name
    decimation_mode
    Type
    integer
    Description

    Aktifkan decimation adaptif dengan menetapkan tingkat jumlah poligon. Ketika diatur, target_polycount diabaikan.

    Nilai yang tersedia:

    • 1: Adaptif — jumlah poligon ultra.
    • 2: Adaptif — jumlah poligon tinggi.
    • 3: Adaptif — jumlah poligon sedang.
    • 4: Adaptif — jumlah poligon rendah.
  • Name
    resize_height
    Type
    number
    usang
    default 0
    Description

    Ubah ukuran model ke tinggi tertentu yang diukur dalam meter. Kami merekomendasikan menggunakan Resize API yang didedikasikan.

  • Name
    resize_longest_side
    Type
    number
    usang
    default 0
    Description

    Ubah ukuran model sehingga dimensi kotak pembatas terpanjang sama dengan nilai yang ditentukan dalam meter. Kami merekomendasikan menggunakan Resize API yang didedikasikan.

  • Name
    auto_size
    Type
    boolean
    usang
    default false
    Description

    Ketika diatur ke true, layanan menggunakan visi AI untuk secara otomatis memperkirakan tinggi dunia nyata dari objek dan mengubah ukuran model sesuai. Kami merekomendasikan menggunakan Resize API yang didedikasikan.

Hanya berlaku ketika auto_size = true
  • Name
    origin_at
    Type
    string
    usang
    default bottom
    Description

    Posisi titik asal. Kami merekomendasikan menggunakan Resize API yang didedikasikan.

    Nilai yang tersedia: bottom, center.

  • Name
    convert_format_only
    Type
    boolean
    usang
    Description

    Jika true, layanan hanya akan mengubah format file model input, mengabaikan input lain seperti topology, resize_height, dan target_polycount. Kami merekomendasikan menggunakan Convert API yang didedikasikan.

  • Name
    alpha_thumbnail
    Type
    boolean
    default false
    Description

    Ketika diatur ke true, tugas juga merender versi pratinjau dengan latar belakang transparan (RGBA) dan mengembalikannya sebagai alpha_thumbnail_url pada respons GET. Field thumbnail_url yang ada tidak berubah.

Mengembalikan

Properti result dari respons berisi id dari tugas remesh yang baru dibuat.

Mode Kegagalan

  • Name
    400 - Bad Request
    Description

    Permintaan tidak dapat diterima. Penyebab umum:

    • Parameter hilang: Baik model_url atau input_task_id harus disediakan.
    • Tugas input tidak valid: input_task_id harus merujuk pada tugas yang berhasil dari model yang didukung.
    • Format model tidak valid: model_url menunjuk ke file dengan ekstensi yang tidak didukung.
    • URL tidak dapat dijangkau: model_url tidak dapat diunduh.
    • Topology tidak valid: Parameter topology tidak valid.
    • Parameter saling eksklusif: auto_size dan resize_height tidak dapat diatur bersamaan.
  • Name
    401 - Unauthorized
    Description

    Autentikasi gagal. Silakan periksa kunci API Anda.

  • Name
    402 - Payment Required
    Description

    Kredit tidak mencukupi untuk melakukan tugas ini.

  • Name
    429 - Too Many Requests
    Description

    Anda telah melebihi batas laju Anda.

Permintaan

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

GET/openapi/v1/remesh/:id

Mengambil Tugas Remesh

Endpoint ini mengambil tugas remesh berdasarkan ID-nya.

Parameter

  • Name
    id
    Type
    path
    Description

    ID dari tugas remesh yang akan diambil.

Mengembalikan

Objek Tugas Remesh.

Permintaan

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

Respon

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

DELETE/openapi/v1/remesh/:id

Hapus Tugas Remesh

Endpoint ini secara permanen menghapus tugas remesh, termasuk semua model dan data yang terkait. Tindakan ini tidak dapat dibatalkan.

Parameter Path

  • Name
    id
    Type
    path
    Description

    ID dari tugas remesh yang akan dihapus.

Mengembalikan

Mengembalikan 200 OK jika berhasil.

Permintaan

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

Respon

// Returns 200 Ok on success.

GET/openapi/v1/remesh

Daftar Tugas Remesh

Endpoint ini memungkinkan Anda untuk mengambil daftar tugas Remesh.

Parameter

  • Name
    page_num
    Type
    integer
    default 1
    Description

    Nomor halaman untuk paginasi.

  • Name
    page_size
    Type
    integer
    default 10
    Description

    Batas ukuran halaman. Maksimum yang diizinkan adalah 50 item.

  • Name
    sort_by
    Type
    string
    Description

    Bidang untuk pengurutan.

    Nilai yang tersedia:

    • +created_at: Urutkan berdasarkan waktu pembuatan dalam urutan naik.
    • -created_at: Urutkan berdasarkan waktu pembuatan dalam urutan turun.

Mengembalikan

Mengembalikan daftar dengan paginasi dari Objek Tugas Remesh.

Permintaan

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

Respon

[
  {
    "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
  }
]

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

Streaming Tugas Remesh

Endpoint ini mengalirkan pembaruan real-time untuk tugas Remesh menggunakan Server-Sent Events (SSE).

Parameter

  • Name
    id
    Type
    path
    Description

    Pengenal unik untuk tugas Remesh yang akan di-stream.

Mengembalikan

Mengembalikan aliran Objek Tugas Remesh sebagai Server-Sent Events.

Untuk tugas PENDING atau IN_PROGRESS, aliran respons hanya akan menyertakan bidang progress dan status yang diperlukan.

Permintaan

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.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
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,
}

Objek Tugas Remesh

Objek Tugas Remesh mewakili unit kerja yang digunakan oleh Meshy untuk melakukan remesh dan mengekspor model 3D yang ada ke berbagai format. Objek ini memiliki properti sebagai berikut:

Properti

  • Name
    id
    Type
    string
    Description

    Pengenal unik untuk tugas. Meskipun kami menggunakan UUID yang dapat diurutkan secara k untuk id tugas sebagai detail implementasi, Anda tidak boleh membuat asumsi apa pun tentang format id tersebut.

  • Name
    type
    Type
    string
    Description

    Jenis tugas Remesh. Nilainya adalah remesh.

  • Name
    model_urls
    Type
    object
    Description

    URL yang dapat diunduh untuk file model 3D bertekstur yang dihasilkan oleh Meshy. Properti untuk format akan dihilangkan jika format tersebut tidak dihasilkan, bukan mengembalikan string kosong.

    • Name
      glb
      Type
      string
      Description

      URL yang dapat diunduh untuk file GLB.

    • Name
      fbx
      Type
      string
      Description

      URL yang dapat diunduh untuk file FBX.

    • Name
      obj
      Type
      string
      Description

      URL yang dapat diunduh untuk file OBJ.

    • Name
      usdz
      Type
      string
      Description

      URL yang dapat diunduh untuk file USDZ.

    • Name
      blend
      Type
      string
      Description

      URL yang dapat diunduh untuk file Blender.

    • Name
      stl
      Type
      string
      Description

      URL yang dapat diunduh untuk file STL.

    • Name
      3mf
      Type
      string
      Description

      URL yang dapat diunduh untuk file 3MF. Hanya ada ketika 3mf diminta melalui target_formats.

  • Name
    thumbnail_url
    Type
    string
    Description

    URL yang dapat diunduh untuk gambar pratinjau yang dirender dari model yang telah di-remesh.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    URL yang dapat diunduh untuk versi latar belakang transparan (RGBA) dari thumbnail_url. Hanya ada ketika tugas dibuat dengan alpha_thumbnail: true dan pratinjau transparan berhasil dirender; jika tidak, bidang ini dihilangkan.

  • Name
    progress
    Type
    integer
    Description

    Progress dari tugas. Jika tugas belum dimulai, properti ini akan bernilai 0. Setelah tugas berhasil, ini akan menjadi 100.

  • Name
    status
    Type
    string
    Description

    Status dari tugas. Nilai yang mungkin adalah salah satu dari PENDING, IN_PROGRESS, SUCCEEDED, FAILED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Jumlah tugas sebelumnya.

  • Name
    created_at
    Type
    timestamp
    Description

    Stempel waktu ketika tugas dibuat, dalam milidetik.

  • Name
    started_at
    Type
    timestamp
    Description

    Stempel waktu ketika tugas dimulai, dalam milidetik. Jika tugas belum dimulai, properti ini akan bernilai 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Stempel waktu ketika tugas selesai, dalam milidetik. Jika tugas belum selesai, properti ini akan bernilai 0.

  • Name
    task_error
    Type
    object
    Description

    Detail kesalahan untuk tugas yang gagal. Lihat Kesalahan untuk referensi lengkap objek task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Jumlah kredit yang dikonsumsi oleh tugas ini. Ada ketika status tugas adalah PENDING, IN_PROGRESS, atau SUCCEEDED. Mengembalikan 0 untuk tugas FAILED (kredit dikembalikan jika gagal).

Contoh Objek Tugas Remesh

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