Remesh API

Pinapayagan ka ng Remesh API na mag-Remesh at mag-export ng mga umiiral na 3D model na nabuo ng ibang Meshy API (tulad ng Image to 3D o Text to 3D) sa iba't ibang format. Nagbibigay ang seksyong ito ng mga detalye kung paano gamitin ang Remesh API.


POST/openapi/v1/remesh

Gumawa ng Remesh Task

Gumagawa ang endpoint na ito ng bagong Remesh task.

Mga Parameter

  • Name
    input_task_id
    Type
    string
    Kinakailangan
    Description

    Ang ID ng nakumpletong Image to 3D o Text to 3D task na nais mong i-remesh. Ang task na ito ay dapat isa sa mga sumusunod na task: Text to 3D Preview, Text to 3D Refine, Image to 3D o Retexture. Bukod dito, dapat ay mayroon itong status na SUCCEEDED.

  • Name
    model_url
    Type
    string
    Kinakailangan
    Description

    Mangyaring magbigay ng 3D model para i-remesh ng Meshy sa pamamagitan ng publicly accessible URL o data URI. Mga suportadong format: .glb, .gltf, .obj, .fbx, .stl.

    Para sa mga Data URI, gamitin ang MIME type: application/octet-stream.

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

    Isang listahan ng mga target format para sa na-remesh na model. Kapag hindi inilagay, GLB lang ang gagawin.

    Mga available na value: glb, fbx, obj, usdz, blend, stl, 3mf.

  • Name
    topology
    Type
    string
    default triangle
    Description

    Tukuyin ang topology ng generated model.

    Mga available na value:

    • quad: Gumawa ng quad-dominant na mesh.
    • triangle: Gumawa ng decimated na triangle mesh.
  • Name
    target_polycount
    Type
    integer
    default 30,000
    Description

    Tukuyin ang target na bilang ng mga polygon sa generated model. Maaaring lumihis ang aktuwal na bilang ng mga polygon mula sa target depende sa complexity ng heometriya.

    Nag-iiba ang valid na value range depende sa user tier:

    • 100 hanggang 300,000 (kasama)
  • Name
    decimation_mode
    Type
    integer
    Description

    I-enable ang adaptive decimation sa pamamagitan ng pagtatakda ng polycount level. Kapag itinakda, binabalewala ang target_polycount.

    Mga available na value:

    • 1: Adaptive — ultra polycount.
    • 2: Adaptive — high polycount.
    • 3: Adaptive — medium polycount.
    • 4: Adaptive — low polycount.
  • Name
    resize_height
    Type
    number
    lipas na
    default 0
    Description

    I-resize ang model sa isang partikular na taas na sinusukat sa metro. Inirerekomenda naming gamitin na lang ang nakalaang Resize API.

  • Name
    resize_longest_side
    Type
    number
    lipas na
    default 0
    Description

    I-resize ang model upang ang pinakamahabang bounding-box dimension ay maging katumbas ng tinukoy na value sa metro. Inirerekomenda naming gamitin na lang ang nakalaang Resize API.

  • Name
    auto_size
    Type
    boolean
    lipas na
    default false
    Description

    Kapag itinakda sa true, gumagamit ang serbisyo ng AI vision upang awtomatikong tantiyahin ang real-world na taas ng object at i-resize ang model nang naaayon. Inirerekomenda naming gamitin na lang ang nakalaang Resize API.

Naaangkop lamang kapag auto_size = true
  • Name
    origin_at
    Type
    string
    lipas na
    default bottom
    Description

    Posisyon ng origin. Inirerekomenda naming gamitin na lang ang nakalaang Resize API.

    Mga available na value: bottom, center.

  • Name
    convert_format_only
    Type
    boolean
    lipas na
    Description

    Kung true, babaguhin lang ng serbisyo ang format ng input model file, at babalewalain ang iba pang input tulad ng topology, resize_height, at target_polycount. Inirerekomenda naming gamitin na lang ang nakalaang I-convert API.

  • Name
    alpha_thumbnail
    Type
    boolean
    default false
    Description

    Kapag itinakda sa true, bukod pa rito ay nagre-render ang task ng transparent-background (RGBA) na bersyon ng preview at ibinabalik ito bilang alpha_thumbnail_url sa GET response. Hindi nababago ang kasalukuyang thumbnail_url field.

Mga Ibinabalik

Ang result property ng response ay naglalaman ng id ng bagong gawang remesh task.

Mga Failure Mode

  • Name
    400 - Bad Request
    Description

    Hindi katanggap-tanggap ang request. Mga karaniwang sanhi:

    • Nawawalang parameter: Dapat ibigay ang alinman sa model_url o input_task_id.
    • Invalid na input task: Dapat tumukoy ang input_task_id sa isang successful na task mula sa suportadong model.
    • Invalid na model format: Ang model_url ay tumuturo sa file na may hindi suportadong extension.
    • Hindi maabot na URL: Hindi ma-download ang model_url.
    • Invalid na topology: Invalid ang topology parameter.
    • Mutually exclusive na mga parameter: Hindi maaaring parehong nakatakda ang auto_size at resize_height.
  • Name
    401 - Unauthorized
    Description

    Nabigo ang authentication. Pakisuri ang iyong API key.

  • Name
    402 - Payment Required
    Description

    Hindi sapat ang credits upang maisagawa ang task na ito.

  • Name
    429 - Too Many Requests
    Description

    Lumampas ka na sa iyong rate limit.

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

GET/openapi/v1/remesh/:id

Kunin ang isang Remesh Task

Kinukuha ng endpoint na ito ang isang remesh task gamit ang ID nito.

Mga Parameter

  • Name
    id
    Type
    path
    Description

    Ang ID ng remesh task na kukunin.

Mga Ibinabalik

Ang object na Remesh Task.

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

DELETE/openapi/v1/remesh/:id

Magtanggal ng Gawain sa Remesh

Permanenteng tinatanggal ng endpoint na ito ang isang gawain sa Remesh, kasama ang lahat ng kaugnay na mga modelo at data. Hindi na maibabalik ang aksyong ito.

Mga Parameter ng Path

  • Name
    id
    Type
    path
    Description

    Ang ID ng gawain sa Remesh na tatanggalin.

Mga Ibinabalik

Nagbabalik ng 200 OK kapag matagumpay.

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

// Returns 200 Ok on success.

GET/openapi/v1/remesh

Ilista ang mga Remesh Task

Pinapayagan ka ng endpoint na ito na kunin ang listahan ng mga Remesh task.

Mga Parameter

  • Name
    page_num
    Type
    integer
    default 1
    Description

    Numero ng page para sa pagination.

  • Name
    page_size
    Type
    integer
    default 10
    Description

    Limitasyon sa laki ng page. Ang pinakamataas na pinapayagan ay 50 item.

  • Name
    sort_by
    Type
    string
    Description

    Field na pagbabatayan ng pag-uuri.

    Mga available na value:

    • +created_at: Pag-uri-uriin ayon sa oras ng paggawa sa pataas na ayos.
    • -created_at: Pag-uri-uriin ayon sa oras ng paggawa sa pababang ayos.

Mga Ibinabalik

Nagbabalik ng naka-pagination na listahan ng Mga Remesh Task Object.

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

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

Mag-stream ng Remesh Task

Ang endpoint na ito ay nag-stream ng real-time na mga update para sa isang Remesh task gamit ang Server-Sent Events (SSE).

Mga Parameter

  • Name
    id
    Type
    path
    Description

    Natatanging identifier para sa Remesh task na i-stream.

Mga Ibinabalik

Nagbabalik ng stream ng Mga Object ng Remesh Task bilang Server-Sent Events.

Para sa mga task na PENDING o IN_PROGRESS, isasama lamang ng response stream ang kinakailangang mga field na progress at status.

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.
// 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,
}

Ang Remesh Task Object

Ang Remesh Task object ay kumakatawan sa isang work unit na ginagamit ng Meshy para mag-Remesh at mag-export ng umiiral na modelong 3D sa iba't ibang format. Ang object ay may mga sumusunod na property:

Mga Property

  • Name
    id
    Type
    string
    Description

    Natatanging identifier para sa task. Bagama't gumagamit kami ng k-sortable UUID para sa mga task id bilang detalye ng implementasyon, hindi ka dapat gumawa ng anumang palagay tungkol sa format ng id.

  • Name
    type
    Type
    string
    Description

    Uri ng Remesh task. Ang value ay remesh.

  • Name
    model_urls
    Type
    object
    Description

    Nada-download na URL papunta sa may texture na 3D model file na binuo ng Meshy. Aalisin ang property para sa isang format kung hindi nabuo ang format, sa halip na magbalik ng empty string.

    • Name
      glb
      Type
      string
      Description

      Nada-download na URL papunta sa GLB file.

    • Name
      fbx
      Type
      string
      Description

      Nada-download na URL papunta sa FBX file.

    • Name
      obj
      Type
      string
      Description

      Nada-download na URL papunta sa OBJ file.

    • Name
      usdz
      Type
      string
      Description

      Nada-download na URL papunta sa USDZ file.

    • Name
      blend
      Type
      string
      Description

      Nada-download na URL papunta sa Blender file.

    • Name
      stl
      Type
      string
      Description

      Nada-download na URL papunta sa STL file.

    • Name
      3mf
      Type
      string
      Description

      Nada-download na URL papunta sa 3MF file. Naroon lamang kapag hiniling ang 3mf sa pamamagitan ng target_formats.

  • Name
    thumbnail_url
    Type
    string
    Description

    Nada-download na URL papunta sa preview image na ni-render mula sa na-remesh na model.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    Nada-download na URL papunta sa bersyong may transparent na background (RGBA) ng thumbnail_url. Naroon lamang kapag ginawa ang task gamit ang alpha_thumbnail: true at matagumpay na na-render ang transparent preview; kung hindi, aalisin ang field na ito.

  • Name
    progress
    Type
    integer
    Description

    Progress ng task. Kung hindi pa nasisimulan ang task, magiging 0 ang property na ito. Kapag matagumpay na ang task, magiging 100 ito.

  • Name
    status
    Type
    string
    Description

    Status ng task. Ang mga posibleng value ay isa sa PENDING, IN_PROGRESS, SUCCEEDED, FAILED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Ang bilang ng mga nauunang task.

  • Name
    created_at
    Type
    timestamp
    Description

    Timestamp kung kailan ginawa ang task, sa milliseconds.

  • Name
    started_at
    Type
    timestamp
    Description

    Timestamp kung kailan sinimulan ang task, sa milliseconds. Kung hindi pa nasisimulan ang task, magiging 0 ang property na ito.

  • Name
    finished_at
    Type
    timestamp
    Description

    Timestamp kung kailan natapos ang task, sa milliseconds. Kung hindi pa tapos ang task, magiging 0 ang property na ito.

  • Name
    task_error
    Type
    object
    Description

    Mga detalye ng error para sa mga bigong task. Tingnan ang Errors para sa buong task_error object reference.

  • Name
    consumed_credits
    Type
    integer
    Description

    Ang bilang ng credits na nagamit ng task na ito. Naroon kapag ang task status ay PENDING, IN_PROGRESS, o SUCCEEDED. Nagbabalik ng 0 para sa mga FAILED task (ibinabalik ang credits kapag nabigo).

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
}