Ireretiro ang lowpoly sa Oct 30, 2026. Lumipat ng modelo bago ang mga petsang ito para maiwasan ang mga error sa request. Tingnan ang lahat ng deprecation

Remesh API

Buuin muli ang mesh ng isang 3D model gamit ang bagong topology at face count, at i-export ito sa mga format na iyong pipiliin. Ang model ay maaaring manggaling sa ibang Meshy task, tulad ng Image to 3D o Text to 3D, o mula sa isang model file.


POST/openapi/v1/remesh

Create a Remesh task

Gumagawa ng Remesh task. Tumatakbo ang task sa background. Para malaman kung gaano karaming oras karaniwang tumatagal ang isang task, tingnan ang Processing times.

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

Mga Parameter

  • Name
    input_task_id
    Type
    string
    Kinakailangan
    Description

    Kinakailangan maliban kung ipadala mo ang model_url. Ang ID ng task kung saang modelo mo gustong i-remesh, halimbawa isang Text to 3D, Image to 3D, Retexture, o Remesh task. Dapat ang task ay isang ginawa mo gamit ang API at may status na SUCCEEDED.

  • Name
    model_url
    Type
    string
    Kinakailangan
    Description

    Kinakailangan maliban kung ipadala mo ang input_task_id. Ang modelong ire-remesh, bilang isang pampublikong URL o isang data URI. Kung parehas mong ipapadala, ginagamit ng Meshy ang input_task_id.

    Dapat ang modelo ay isang GLB, glTF, OBJ, FBX, o STL file na hindi hihigit sa 400 MB mula sa isang http o https URL, o 100 MB bilang data URI. Para sa data URI, gamitin ang MIME type na application/octet-stream.

    Ang file na mahigit 100 MB ay dapat ding sumunod sa mga sumusunod na patakaran:

    • Ang GLB, glTF, FBX, o OBJ file ay maaaring magkaroon ng hanggang 10,000,000 faces. Binibilang ng Meshy ang faces bilang mga triangle, kaya ang isang quad ay binibilang bilang 2, at ang isang mesh na naguhit nang higit sa isang beses ay binibilang isang beses bawat kopya.
    • Ang FBX file ay dapat binary FBX 7.1 o mas bago.
    • Ang GLB o glTF file ay hindi dapat gumamit ng Draco compression.
  • Name
    target_formats
    Type
    string[]
    default ["glb"]
    Description

    Ang mga file format na gagawin.

    Mga available na value:

    • glb
    • fbx
    • obj
    • usdz
    • blend
    • stl
    • 3mf
  • Name
    topology
    Type
    string
    default triangle
    Description

    Ang uri ng face ng na-remesh na modelo.

    Mga available na value:

    • quad: isang mesh na quad-dominant
    • triangle: isang na-decimate na triangle mesh
  • Name
    target_polycount
    Type
    integer
    default 30000
    Description

    Ang bilang ng mga face na target, mula 100 hanggang 300000. Maaaring magkaiba ang resulta sa target, depende sa heometriya ng modelo. Ang value na labas sa saklaw ay nagbabalik ng 400.

  • Name
    decimation_mode
    Type
    integer
    Description

    Adaptive na bilang ng face, ayon sa antas. Kapag itinakda mo ito, hindi papansinin ng Meshy ang target_polycount.

    Mga available na value:

    • 1: ultra
    • 2: mataas
    • 3: katamtaman
    • 4: mababa
  • Name
    resize_height
    Type
    number
    ⚠ lipas na
    default 0
    Description

    Gamitin ang Resize API sa halip. Ang taas na iresize ang modelo, sa metro. Magpadala ng hindi hihigit sa isa sa resize_height, resize_longest_side, at auto_size.

  • Name
    resize_longest_side
    Type
    number
    ⚠ lipas na
    default 0
    Description

    Gamitin ang Resize API sa halip. Ang haba na iresize ang pinakamahabang gilid ng bounding box ng modelo, sa metro. Magpadala ng hindi hihigit sa isa sa resize_height, resize_longest_side, at auto_size.

  • Name
    auto_size
    Type
    boolean
    ⚠ lipas na
    default false
    Description

    Gamitin ang Resize API sa halip. Kung tatantyahin ang tunay na taas ng bagay gamit ang AI vision at ire-resize ang modelo dito. Magpadala ng hindi hihigit sa isa sa resize_height, resize_longest_side, at auto_size.

  • Name
    origin_at
    Type
    string
    ⚠ lipas na
    default bottom
    Description

    Gamitin ang Resize API sa halip. Kung saan ilalagay ang origin ng modelo, bottom o center. Nalalapat ang default kapag ipinadala mo ang resize_height, resize_longest_side, o auto_size. Kung wala sa mga ito, ililipat lamang ng Meshy ang origin kung ipapadala mo ang origin_at.

  • Name
    convert_format_only
    Type
    boolean
    ⚠ lipas na
    Description

    Gamitin ang Convert API sa halip. Kung ic-convert lamang ang modelo sa target_formats. Kapag true, hindi papansinin ng Meshy ang topology, target_polycount, decimation_mode, resize_height, resize_longest_side, at auto_size, pero susuriin pa rin ang kanilang mga value, kaya ang di-balidong value ay nagbabalik ng 400. Sa convert_format_only: true, ang walang laman o null na target_formats ay nagbabalik ng 400.

  • Name
    alpha_thumbnail
    Type
    boolean
    default false
    Description

    Kung magre-render din ng preview na may transparent na background (RGBA), ibinabalik sa alpha_thumbnail_url kapag kinuha mo ang task. Hindi nagbabago ang thumbnail_url.

Mga Ibinabalik

Ang field na result ng tugon ay naghahawak ng ID ng bagong Remesh task.

Mga Paraan ng Pagkabigo

  • Name
    400 - Bad Request
    Description

    Hindi matatakbo ang request. Sinasabi ng mensahe ng error kung aling problema ang nahanap nito. Halimbawa:

    • Nawawalang parameter: Hindi ipinadala ang alinman sa model_url o input_task_id.
    • Di-balidong input task: Ang input_task_id ay hindi isang matagumpay na API task, o hindi sinusuportahan ng AI model nito ang remeshing.
    • Di-balidong format ng modelo: Ang model_url file ay may hindi suportadong extension.
    • Hindi maabot na URL: Hindi ma-download ng Meshy ang model_url file.
    • Masyadong malaki ang model file: Ang model_url file ay mahigit 400 MB mula sa isang http o https URL, o mahigit 100 MB bilang data URI.
    • Sobra-sobra ang faces: Ang model_url file ay mahigit 100 MB at may higit sa 10,000,000 faces. Bawasan ang bilang ng faces, pagkatapos ipadala muli ang file.
    • ASCII FBX na mahigit 100 MB: Ang model_url file ay isang ASCII FBX na mahigit 100 MB. Ipadala ito bilang binary FBX o GLB.
    • Hindi mabasang model file: Ang model_url file ay mahigit 100 MB, at hindi mabasa ng Meshy ang header nito. Halimbawa, ito ay isang Draco-compressed GLB o glTF, o isang binary FBX na mas luma sa 7.1.
    • Masyadong kumplikado ang model header: Ang model_url file ay mahigit 100 MB, at ang header nito ay may masyadong maraming mesh, node, o record na susuriin. Bawasan ang bilang ng mga bagay sa file, pagkatapos ipadala muli ito.
    • Di-balidong topology: Ang topology ay hindi quad o triangle.
    • Magkasalungat na parameter: Ang request ay may higit sa isa sa auto_size, resize_height, at resize_longest_side. Magpadala lamang ng isa.

    Ayusin ang request, pagkatapos ipadala itong muli. Tingnan ang Errors.

  • Name
    401 - Unauthorized
    Description

    Nawawala o di-balido ang API key. Suriin ang Authorization header.

  • Name
    402 - Payment Required
    Description

    Halimbawa:

    • Hindi sapat na credits: Ang account ay walang sapat na credits para sa task na ito, o naabot ng account ang limitasyon ng credit. Suriin ang iyong balanse ng credit, pagkatapos subukan muli.
    • Libreng plano: Ang paggawa ng task ay nangangailangan ng bayad na plano. I-upgrade ang iyong plano sa iyong mga setting ng subscription, pagkatapos subukan muli.
  • Name
    403 - Forbidden
    Description

    Ang input_task_id ay isang bas-relief na modelo, na hindi kayang i-remesh ng endpoint na ito. Ang mensahe ay This model type does not support this operation. Magpadala ng ibang modelo.

  • Name
    404 - Not Found
    Description

    Ang input_task_id ay hindi tumugma sa alinman sa iyong mga task. Suriin ang ID ng task, pagkatapos ipadala muli ang request.

  • Name
    429 - Too Many Requests
    Description

    Nalampasan mo ang iyong rate limit. Maghintay, pagkatapos subukan muli. Tingnan ang Rate limits.


GET/openapi/v1/remesh/:id

Kumuha ng Remesh na gawain

Ibinabalik ang isang Remesh na gawain gamit ang ID nito.

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
}

Mga Parameter

  • Name
    id
    Type
    path
    Description

    Ang task ID mula sa create response.

Ibinabalik

Ang Remesh task object.


DELETE/openapi/v1/remesh/:id

I-delete ang isang Remesh task

Permanenteng binubura ang isang Remesh task, kasama ang mga model at data nito. Hindi mo na maaaring bawiin ang pagbura.

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

Path parameters

  • Name
    id
    Type
    path
    Description

    Ang ID ng task na ide-delete.

Status ng task

Kapag binura mo ang isang PENDING na task, ire-refund ang mga credits na nagamit noong ginawa mo ito.

Hindi maaaring i-delete ang isang IN_PROGRESS na task. Ibabalik ng request ang 409 Conflict, at magpapatuloy ang pagtakbo ng task. Hindi nire-refund ng Meshy ang task na nasimulan na, kaya kapag binura mo ito, mawawala sa iyo kapwa ang credits at ang resulta. Hintayin itong umabot sa SUCCEEDED, FAILED, o CANCELED, bago ito i-delete.

Ang pagbura ng task na nasa final status (SUCCEEDED, FAILED, o CANCELED) ay hindi nagre-refund ng credits nito.

Mga Ibinabalik

200 OK kapag na-delete na ang task, o 409 Conflict kapag ang task ay IN_PROGRESS.


GET/openapi/v1/remesh

List Remesh tasks

Nagbabalik ng listahan ng iyong mga Remesh task.

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

Mga Parameter

  • Name
    page_num
    Type
    integer
    default 1
    Description

    Ang numero ng pahina na ibabalik, hanggang 255. Ang mas malaking value ay magbabalik ng 400.

  • Name
    page_size
    Type
    integer
    default 10
    Description

    Ang bilang ng mga task kada pahina, hanggang 100.

  • Name
    sort_by
    Type
    string
    Description

    Ang pagkakaayos ng pagsasaayos.

    Mga available na value:

    • +created_at: pinakaluma muna
    • -created_at: pinakabago muna

Mga Ibinabalik

Isang paginated na listahan ng Remesh task objects.


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

I-stream ang isang Remesh task

Ini-stream ang mga update ng isang Remesh task bilang 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,
}

Mga Parameter

  • Name
    id
    Type
    path
    Description

    Ang task ID mula sa response ng paglikha (create).

Ibinabalik

Isang stream ng Remesh task objects bilang Server-Sent Events.

Ang bawat event ay naglalaman ng kumpletong task object, sa parehong anyo na ibinabalik ng Get endpoint. Habang ang task ay PENDING o IN_PROGRESS, wala pang mga value ang mga result field nito.


Ang Remesh task object

Ang isang Remesh task object ay naglalarawan ng isang remesh ng isang 3D model. Ito ang naghahawak ng status, ng progress, at ng mga file ng model kapag nagtagumpay ang task.

Mga Properties

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

    Ang task ID. Ituring itong isang opaque na string, at huwag umasa sa format nito.

  • Name
    type
    Type
    string
    Description

    Ang uri ng task, palaging remesh.

  • Name
    model_urls
    Type
    object
    Description

    Mga download URL para sa remeshed na model, isa para sa bawat file format. Ang format na hindi na-generate ng task ay walang key, sa halip na isang blankong string.

    • Name
      glb
      Type
      string
      Description

      Ang GLB file.

    • Name
      fbx
      Type
      string
      Description

      Ang FBX file.

    • Name
      obj
      Type
      string
      Description

      Ang OBJ file.

    • Name
      usdz
      Type
      string
      Description

      Ang USDZ file.

    • Name
      blend
      Type
      string
      Description

      Ang Blender file.

    • Name
      stl
      Type
      string
      Description

      Ang STL file.

    • Name
      3mf
      Type
      string
      Description

      Ang 3MF file. Naroroon lamang kapag kasama sa target_formats ang 3mf.

  • Name
    thumbnail_url
    Type
    string
    Description

    Download URL para sa preview image ng remeshed na model.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    Download URL para sa bersyon ng thumbnail_url na may transparent na background (RGBA). Naroroon lamang kapag ginawa mo ang task gamit ang alpha_thumbnail: true at na-render ng Meshy ang transparent na preview.

  • Name
    progress
    Type
    integer
    Description

    Kung gaano karami ang natapos sa task, bilang isang porsyento. Ito ay 0 hanggang magsimula ang task at 100 kapag ito ay nagtagumpay.

  • Name
    status
    Type
    string
    Description

    Ang status ng task, isa sa PENDING, IN_PROGRESS, SUCCEEDED, FAILED, o CANCELED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Ang bilang ng mga task na nasa unahan ng task na ito sa queue. Makabuluhan lamang ang value habang ang task ay PENDING.

  • Name
    created_at
    Type
    timestamp
    Description

    Oras kung kailan ginawa ang task, sa Unix milliseconds.

  • Name
    started_at
    Type
    timestamp
    Description

    Oras kung kailan nagsimula ang task, sa Unix milliseconds. Ito ay 0 hanggang magsimula ang task.

  • Name
    finished_at
    Type
    timestamp
    Description

    Oras kung kailan natapos ang task, sa Unix milliseconds. Ito ay 0 hanggang matapos ang task.

  • Name
    expires_at
    Type
    timestamp
    Description

    Oras kung kailan mag-e-expire ang mga download URL ng task, sa Unix milliseconds. Ito ay 0 hanggang matapos ang task.

  • Name
    texture_urls
    Type
    array
    Description

    Mga download URL para sa texture maps ng model, kapag nagtagumpay ang task: isang array ng mga object, isa para sa bawat texture set. Bawat object ay may base_color URL, at maaari ring magkaroon ng metallic, roughness, normal, emission, at metallic_roughness na mga URL. Ito ay null hanggang magtagumpay ang task, at isang blankong array kapag ang model ay walang texture maps.

  • Name
    task_error
    Type
    object
    Description

    Ang mga detalye ng error kapag nabigo ang task. Tingnan ang Errors.

  • Name
    consumed_credits
    Type
    integer
    Description

    Ang bilang ng credits na ginamit ng task. Naroroon kapag ang status ay PENDING, IN_PROGRESS, o SUCCEEDED. Ito ay 0 para sa isang FAILED na task, dahil ire-refund ng Meshy ang credits kapag nabigo ang isang task.