Remesh API

Ang Remesh API ay nagbibigay-daan sa iyo na mag-remesh at mag-export ng mga umiiral na 3D models na ginawa ng iba pang Meshy APIs (tulad ng Image to 3D o Text to 3D) sa iba't ibang format. Ang seksyong ito ay nagbibigay ng mga detalye kung paano gamitin ang Remesh API.


POST/openapi/v1/remesh

Gumawa ng Remesh Task

Ang endpoint na ito ay lumilikha ng bagong remesh task.

Mga Parameter

  • Name
    input_task_id
    Type
    string
    Kinakailangan
    Description

    Ang ID ng natapos na 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 itong may status na SUCCEEDED.

  • Name
    model_url
    Type
    string
    Kinakailangan
    Description

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

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

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

    Isang listahan ng mga target na format para sa remeshed na modelo. Kapag hindi ibinigay, tanging GLB lamang ang nalilikha.

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

  • Name
    topology
    Type
    string
    default triangle
    Description

    Tukuyin ang topology ng nalikhang modelo.

    Mga available na halaga:

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

    Tukuyin ang target na bilang ng polygons sa nalikhang modelo. Ang aktwal na bilang ng polygons ay maaaring lumihis mula sa target depende sa kumplikado ng heometriya.

    Ang wastong saklaw ng halaga ay nag-iiba depende sa user tier:

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

    Paganahin ang adaptive decimation sa pamamagitan ng pagtatakda ng polycount level. Kapag itinakda, ang target_polycount ay hindi pinapansin.

    Mga available na halaga:

    • 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 modelo sa isang tiyak na taas na sinusukat sa metro. Inirerekomenda naming gamitin ang dedikadong Resize API sa halip.

  • Name
    resize_longest_side
    Type
    number
    lipas na
    default 0
    Description

    I-resize ang modelo upang ang pinakamahabang dimensyon ng bounding-box ay katumbas ng tinukoy na halaga sa metro. Inirerekomenda naming gamitin ang dedikadong Resize API sa halip.

  • Name
    auto_size
    Type
    boolean
    lipas na
    default false
    Description

    Kapag itinakda sa true, ang serbisyo ay gumagamit ng AI vision upang awtomatikong tantiyahin ang totoong taas ng bagay at i-resize ang modelo nang naaayon. Inirerekomenda naming gamitin ang dedikadong Resize API sa halip.

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

    Posisyon ng origin. Inirerekomenda naming gamitin ang dedikadong Resize API sa halip.

    Mga available na halaga: bottom, center.

  • Name
    convert_format_only
    Type
    boolean
    lipas na
    Description

    Kung true, ang serbisyo ay magbabago lamang ng format ng input model file, hindi pinapansin ang ibang input tulad ng topology, resize_height, at target_polycount. Inirerekomenda naming gamitin ang dedikadong Convert API sa halip.

  • Name
    alpha_thumbnail
    Type
    boolean
    default false
    Description

    Kapag itinakda sa true, ang task ay karagdagang nagre-render ng transparent-background (RGBA) na bersyon ng preview at ibinabalik ito bilang alpha_thumbnail_url sa GET response. Ang umiiral na thumbnail_url na field ay hindi nagbabago.

Mga Ibinabalik

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

Mga Mode ng Pagkabigo

  • Name
    400 - Bad Request
    Description

    Ang request ay hindi katanggap-tanggap. Karaniwang mga sanhi:

    • Nawawalang parameter: Dapat ibigay ang alinman sa model_url o input_task_id.
    • Hindi wastong input task: Ang input_task_id ay dapat tumukoy sa isang matagumpay na task mula sa isang suportadong modelo.
    • Hindi wastong format ng modelo: Ang model_url ay tumutukoy sa isang file na may hindi suportadong extension.
    • Hindi maabot na URL: Ang model_url ay hindi ma-download.
    • Hindi wastong topology: Ang topology na parameter ay hindi wasto.
    • Mutually exclusive parameters: Ang auto_size at resize_height ay hindi maaaring parehong itakda.
  • Name
    401 - Unauthorized
    Description

    Nabigo ang authentication. Mangyaring suriin ang iyong API key.

  • Name
    402 - Payment Required
    Description

    Hindi sapat ang credits upang isagawa ang task na ito.

  • Name
    429 - Too Many Requests
    Description

    Naabot mo na ang 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

Ang endpoint na ito ay kumukuha ng isang remesh task gamit ang ID nito.

Mga Parameter

  • Name
    id
    Type
    path
    Description

    Ang ID ng remesh task na kukunin.

Mga Ibinabalik

Ang Remesh Task object.

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

Tanggalin ang isang Remesh Task

Ang endpoint na ito ay permanenteng nagtatanggal ng isang remesh task, kasama ang lahat ng kaugnay na modelo at datos. Ang aksyong ito ay hindi na maibabalik.

Mga Parameter ng Path

  • Name
    id
    Type
    path
    Description

    Ang ID ng remesh task 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

Listahan ng mga Gawain sa Remesh

Ang endpoint na ito ay nagbibigay-daan sa iyo na makuha ang listahan ng mga gawain sa Remesh.

Mga Parameter

  • Name
    page_num
    Type
    integer
    default 1
    Description

    Numero ng pahina para sa pagination.

  • Name
    page_size
    Type
    integer
    default 10
    Description

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

  • Name
    sort_by
    Type
    string
    Description

    Patlang na gagamitin para sa pag-aayos.

    Mga magagamit na halaga:

    • +created_at: Ayusin ayon sa oras ng paglikha sa pataas na pagkakasunod-sunod.
    • -created_at: Ayusin ayon sa oras ng paglikha sa pababang pagkakasunod-sunod.

Mga Ibinabalik

Nagbabalik ng isang listahan na may pagination ng The Remesh Task Objects.

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

I-stream ang isang Remesh na Gawain

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

Mga Parameter

  • Name
    id
    Type
    path
    Description

    Natatanging pagkakakilanlan para sa Remesh na gawain na i-stream.

Mga Ibinabalik

Nagbabalik ng stream ng The Remesh Task Objects bilang Server-Sent Events.

Para sa mga PENDING o IN_PROGRESS na gawain, ang response stream ay maglalaman lamang ng mga kinakailangang progress at status na mga field.

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 Objek ng Gawain ng Remesh

Ang objek ng gawain ng Remesh ay kumakatawan sa isang yunit ng trabaho na ginagamit ng Meshy upang i-remesh at i-export ang isang umiiral na 3D na modelo sa iba't ibang mga format. Ang objek ay may mga sumusunod na katangian:

Mga Katangian

  • Name
    id
    Type
    string
    Description

    Natatanging pagkakakilanlan para sa gawain. Habang gumagamit kami ng k-sortable UUID para sa mga id ng gawain bilang detalye ng implementasyon, hindi ka dapat gumawa ng anumang mga palagay tungkol sa format ng id.

  • Name
    type
    Type
    string
    Description

    Uri ng gawain ng Remesh. Ang halaga ay remesh.

  • Name
    model_urls
    Type
    object
    Description

    Downloadable URL sa textured na 3D na file ng modelo na nabuo ng Meshy. Ang katangian para sa isang format ay hindi isasama kung ang format ay hindi nabuo sa halip na magbalik ng isang walang laman na string.

    • Name
      glb
      Type
      string
      Description

      Downloadable URL sa GLB file.

    • Name
      fbx
      Type
      string
      Description

      Downloadable URL sa FBX file.

    • Name
      obj
      Type
      string
      Description

      Downloadable URL sa OBJ file.

    • Name
      usdz
      Type
      string
      Description

      Downloadable URL sa USDZ file.

    • Name
      blend
      Type
      string
      Description

      Downloadable URL sa Blender file.

    • Name
      stl
      Type
      string
      Description

      Downloadable URL sa STL file.

    • Name
      3mf
      Type
      string
      Description

      Downloadable URL sa 3MF file. Tanging naroroon kapag ang 3mf ay hiniling sa pamamagitan ng target_formats.

  • Name
    thumbnail_url
    Type
    string
    Description

    Downloadable URL sa isang preview na imahe na na-render mula sa remeshed na modelo.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    Downloadable URL sa isang transparent-background (RGBA) na bersyon ng thumbnail_url. Tanging naroroon kapag ang gawain ay nilikha gamit ang alpha_thumbnail: true at ang transparent na preview ay matagumpay na na-render; kung hindi, ang field na ito ay hindi isasama.

  • Name
    progress
    Type
    integer
    Description

    Pag-unlad ng gawain. Kung ang gawain ay hindi pa nasisimulan, ang katangiang ito ay magiging 0. Kapag ang gawain ay nagtagumpay, ito ay magiging 100.

  • Name
    status
    Type
    string
    Description

    Katayuan ng gawain. Ang mga posibleng halaga ay isa sa PENDING, IN_PROGRESS, SUCCEEDED, FAILED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Ang bilang ng mga naunang gawain.

  • Name
    created_at
    Type
    timestamp
    Description

    Timestamp kung kailan nilikha ang gawain, sa milliseconds.

  • Name
    started_at
    Type
    timestamp
    Description

    Timestamp kung kailan sinimulan ang gawain, sa milliseconds. Kung ang gawain ay hindi pa nasisimulan, ang katangiang ito ay magiging 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Timestamp kung kailan natapos ang gawain, sa milliseconds. Kung ang gawain ay hindi pa natatapos, ang katangiang ito ay magiging 0.

  • Name
    task_error
    Type
    object
    Description

    Mga detalye ng error para sa mga nabigong gawain. Tingnan ang Errors para sa buong sanggunian ng task_error na objek.

  • Name
    consumed_credits
    Type
    integer
    Description

    Ang bilang ng mga credits na nagamit ng gawain na ito. Naroroon kapag ang katayuan ng gawain ay PENDING, IN_PROGRESS, o SUCCEEDED. Nagbabalik ng 0 para sa mga FAILED na gawain (ang mga credits ay ibinabalik sa pagkabigo).

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
}