Auto Split API

Hatiin ang isang 3D model sa mga bahaging maaaring i-print nang hiwalay — awtomatiko, ayon sa mga bahaging pinangalanan mo, o ayon sa color region — na may opsyonal na mga connector; ang manipis na mga rehiyong naiwan ng isang cut ay palaging pinatitibay para ang bawat bahagi ay mag-print nang solid.


POST/openapi/v1/print/split

Gumawa ng Auto Split Task

Ang endpoint na ito ay gumagawa ng bagong Auto Split task. Pinuputol ng task ang modelo ng isang naunang task sa mga bahaging maaaring i-print nang hiwalay at ibinabalik ang segmented na modelo, kung saan ang bawat bahagi ay sarili nitong object sa file.

Mga Parameter

  • Name
    input_task_id
    Type
    string
    Kinakailangan
    Description

    Ang ID ng isang matagumpay na task kung saan ang modelo ay ipuputol. Sinusuportahang mga uri ng task: Image to 3D, Multi-Image to 3D, Text to 3D (preview), Remesh, Convert, at Resize. Dapat ang status ng task ay SUCCEEDED, at ang modelo nito ay dapat nabuo gamit ang Meshy 6 o Meshy 7 (ai_model meshy-6, meshy-7, o latest). Hindi suportado ang mga low-poly at Smart Topology (meshy-t2) na modelo.

  • Name
    mode
    Type
    string
    default auto
    Description

    Paano hahatiin sa mga bahagi ang modelo.

    Mga magagamit na value:

    • auto: Pipiliin ni Meshy ang mga hiwa. Hindi papansinin ang prompt.
    • by_parts: Hihiwain ayon sa mga structural part na pinangalanan mo sa prompt, tulad ng ulo, braso, at torso.
    • by_color: Hihiwain ayon sa mga rehiyon ng kulay na pinangalanan mo sa prompt. Nangangailangan ng input na nabuo mula sa na-upload na larawan (Image to 3D o Multi-Image to 3D); tatanggihan ang ibang mga input na may 400.
Naaangkop lamang kapag mode = by_parts or by_color
  • Name
    prompt
    Type
    string
    Kinakailangan
    Description

    Naglalarawan ng mga bahaging hahatiin, sa kahit anong wika. Nagbabasa si Meshy ng 1 hanggang 10 pangalan ng bahagi mula rito, kaya pangalanan ang mga piraso sa halip na ilarawan ang modelo — halimbawa split into the figure and the base, o head, torso, left arm, right arm, legs. Hanggang 600 na karakter. Dalawang mode ng pagkabigo: ang isang paglalarawan na parang paghati pero pinangalanan ang mas kaunti sa dalawang bahagi (halimbawa split into individual parts) ay tatanggihan na may 400 at walang sisingilin; ang isang paglalarawan na hindi mabasa ni Meshy ay babalik sa auto, patuloy na tatakbo at sisingilin ang task, at ang tugon nito ay may prompt_ignored: true.

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

    Mga format kung saan i-export ang hinating modelo. Ang bawat bahagi ay hiwalay na object sa bawat format. Palaging ginagawa at ibinabalik ang glb sa model_urls; ilista ang iba pang mga format na nais mo bilang karagdagan.

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

    Ang 3mf ay isinulat para sa mga slicer: isang object bawat bahagi, bawat isa sa sariling filament slot, kaya bubuksan ng Bambu Studio ang file bilang mga bahaging may sariling kulay at hiwalay na mapipili (may dalang Bambu Studio project configuration ang archive; babasahin ng ibang mga slicer ang heometriya). Tulad ng iba pang print format ng Meshy, ito ay sa millimeters at, dahil ang endpoint na ito ay walang target na laki, ang buong modelo ay isasukat upang ang pinakamahabang gilid nito ay 150 mm — ang parehong limitasyon na ginagamit ng iba pang print-format export, na pinili upang umakma sa bawat pangunahing build plate. Sa layout: "on_plate", ang limitasyon ay ikakapit sa naka-layout na plate sa kabuuan, kaya handa na ang file para i-slice; sa assembled, nananatili ang mga bahagi sa kinaroroonan nila sa source model at ikaw ang mag-aayos nito sa slicer.

  • Name
    layout
    Type
    string
    default assembled
    Description

    Paano nakaayos ang mga bahagi sa bawat output format, at sa thumbnail.

    Mga magagamit na value:

    • assembled: Nananatili ang mga bahagi sa kinaroroonan nila sa source model.
    • on_plate: Ang mga bahagi ay pinapatag at ikakalat sa build plate, handa na para i-slice — ang parehong pag-aayos na ginagamit ng On Plate view ng web app.

    Sa parehong layout, ang mga na-export na file ay may isang object bawat bahagi at walang iba pa: ang isang naka-collapse na maliit na piraso o piraso na parang punto na natira mula sa isang paghiwa ay tatanggalin bago i-export, kaya bawat object na makikita mo sa file ay maaaring i-print.

  • Name
    connectors
    Type
    boolean
    default false
    Description

    Nagdaragdag ng mortise-and-tenon na connector sa bawat hiwa upang magkasya ang mga naka-print na bahagi.

Naaangkop lamang kapag connectors = true
  • Name
    connector_type
    Type
    string
    default cube
    Description

    Ang hugis ng connector sa bawat ibabaw ng hiwa.

    Mga magagamit na value: cube, cylinder.

  • Name
    connector_size
    Type
    number
    default 0.5
    Description

    Laki ng connector kaugnay sa ibabaw ng hiwa.

    Wastong saklaw: 0.1 hanggang 0.8.

  • Name
    connector_height
    Type
    number
    default 0.1
    Description

    Gaano lalabas ang connector mula sa ibabaw ng hiwa, kaugnay sa ibabaw ng hiwa.

    Wastong saklaw: 0.1 hanggang 0.8.

Ibinabalik

Ang result property ng tugon ay naglalaman ng id ng bagong likhang Auto Split task.

Mga Mode ng Pagkabigo

  • Name
    400 - Bad Request
    Description

    Hindi katanggap-tanggap ang request. Karaniwang mga dahilan:

    • Kulang na prompt: Kinakailangan ang prompt kung ang mode ay by_parts o by_color.
    • Ang prompt ay pinangalanan ang mas kaunti sa dalawang bahagi: Ang by_parts / by_color ay nangangailangan ng hindi bababa sa dalawang pinangalanang piraso (halimbawa head, torso, base); tatanggihan ang isang generic na instruksyon tulad ng split into individual parts. Walang sisingilin.
    • Hindi suportadong input task: Ang input_task_id ay dapat tumutukoy sa isang matagumpay na task ng suportadong uri, na nabuo gamit ang Meshy 6 o Meshy 7.
    • May texture na input: May mga texture ang input model. Sa ngayon, suportado lamang ang mga modelong walang texture.
    • Walang reference image: Ang by_color ay nangangailangan ng input na nabuo mula sa na-upload na larawan.
    • Hindi suportadong format: May stl sa target_formats.
    • Connector na labas sa saklaw: Ang connector_size o connector_height ay labas sa 0.1 hanggang 0.8.
  • Name
    401 - Unauthorized
    Description

    Nabigo ang authentication. Pakisuri ang iyong API key.

  • Name
    402 - Payment Required
    Description

    Hindi sapat ang credits upang isagawa ang task na ito.

  • Name
    404 - Not Found
    Description

    Ang input_task_id ay hindi umiiral o hindi kabilang sa iyong account.

  • Name
    429 - Too Many Requests
    Description

    Nalagpasan mo ang iyong rate limit. Ang mga request na by_parts at by_color ay nagbabahagi din ng limitasyon sa prompt-parsing na 12 request kada minuto bawat account.

  • Name
    503 - Service Unavailable
    Description

    Pansamantalang hindi magagamit ang prompt-based splitting (by_parts at by_color). Subukan muli mamaya, o gamitin ang mode: "auto", na hindi apektado. Walang sisingilin.

Request

POST
/openapi/v1/print/split
# Simple request: let Meshy choose the cuts
curl https://api.meshy.ai/openapi/v1/print/split \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
  }'

# Advanced request: name the parts, add connectors, export glb and obj
curl https://api.meshy.ai/openapi/v1/print/split \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "mode": "by_parts",
    "prompt": "split into the figure and the base",
    "target_formats": ["glb", "obj"],
    "layout": "on_plate",
    "connectors": true,
    "connector_type": "cylinder",
    "connector_size": 0.4
  }'

Response

{
  "result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}

GET/openapi/v1/print/split/:id

Kunin ang Auto Split Task

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

Mga Parameter

  • Name
    id
    Type
    path
    Description

    Ang ID ng Auto Split task na kukunin.

Ibinabalik

Ang Auto Split Task object.

Request

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

Response

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-split",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
  "part_count": 4,
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000082000,
  "task_error": null,
  "consumed_credits": 10
}

DELETE/openapi/v1/print/split/:id

Burahin ang isang Auto Split Task

Permanenteng binubura ng endpoint na ito ang isang Auto Split task, kasama ang lahat ng kaugnay na modelo at datos. Hindi na maibabalik ang aksyong ito.

Mga Path Parameter

  • Name
    id
    Type
    path
    Description

    Ang ID ng Auto Split task na buburahin.

Mga Ibinabalik na Halaga

Nagbabalik ng 200 OK kapag matagumpay.

Request

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

Response

// Returns 200 Ok on success.

GET/openapi/v1/print/split

Ilista ang mga Auto Split Task

Ang endpoint na ito ay nagbibigay-daan sa iyo upang kunin ang isang listahan ng mga Auto Split task.

Mga Parameter

Opsyonal na mga attribute

  • Name
    page_num
    Type
    integer
    Description

    Numero ng pahina para sa pagination. Nagsisimula at nagde-default sa 1.

  • Name
    page_size
    Type
    integer
    Description

    Limitasyon sa laki ng pahina. Ang default ay 10 na item. Ang pinakamataas na pinapayagan ay 100 na item; ang mas malalaking value ay pinipigilan sa 100.

  • Name
    sort_by
    Type
    string
    Description

    Field na gagamitin sa pag-sort. Mga available na value:

    • +created_at: Isaayos ayon sa oras ng paglikha nang pataas.
    • -created_at: Isaayos ayon sa oras ng paglikha nang pababa.

Mga Ibinabalik

Nagbabalik ng isang paginated na listahan ng Mga Auto Split Task Object.

Request

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

Response

[
  {
    "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
    "type": "print-split",
    "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***"
    },
    "thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
    "part_count": 4,
    "progress": 100,
    "status": "SUCCEEDED",
    "preceding_tasks": 0,
    "created_at": 1699999999000,
    "started_at": 1700000000000,
    "finished_at": 1700000082000,
    "task_error": null,
    "consumed_credits": 10
  }
]

GET/openapi/v1/print/split/:id/stream

Stream an Auto Split Task

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

Mga Parameter

  • Name
    id
    Type
    path
    Description

    Natatanging identifier para sa Auto Split task na i-stream.

Ibinabalik

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

Bawat message event ay nagdadala ng kumpletong task object gaya ng ibinabalik ng Retrieve an Auto Split Task, kabilang ang consumed_credits, ang mga timestamp, at prompt_ignored; habang ang task ay PENDING o IN_PROGRESS, ang mga field na nagbabago sa pagitan ng mga frame ay progress, status, started_at at preceding_tasks, at lumalabas ang model_urls, thumbnail_url, part_count at parts kapag naabot na nito ang SUCCEEDED. Ang isang error event ay nagdadala lamang ng status_code at message, kaya mag-branch batay sa pangalan ng event bago basahin ang status.

Request

GET
/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
curl -N https://api.meshy.ai/openapi/v1/print/split/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 (other task fields omitted here for brevity;
// each frame is the full task object).
event: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "type": "print-split",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/model.glb?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/preview.png?Expires=***",
  "part_count": 4,
  "progress": 100,
  "status": "SUCCEEDED",
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000082000,
  "task_error": null,
  "consumed_credits": 10
}

Ang Auto Split Task Object

Ang Auto Split task ay may dala lamang ang mga property sa ibaba. Ang mga generation-prompt field na kasama sa ibang task object (name, object_prompt, texture_prompt at iba pa), ang iisang model_url, at ang texture_urls ay hindi kailanman napopopulate para sa isang split at hindi ibinabalik. Ang mga property na napupunan habang tumatakbo ang task (thumbnail_url, model_urls, ang mga timestamp) ay palaging naroroon, walang laman hanggang magkaroon ng halaga, kaya hindi nagbabago ang set ng mga key sa pagitan ng PENDING at SUCCEEDED.

  • 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 task. Ang halaga ay print-split.

  • Name
    model_urls
    Type
    object
    Description

    Mga URL na maaaring i-download para sa hinating (split) modelo, isa para sa bawat hiniling na format. Ang bawat bahagi ay hiwalay na object sa file. Ang property para sa isang format ay hindi isasama kung hindi hiniling ang format na iyon.

    • Name
      glb
      Type
      string
      Description

      Downloadable URL sa hinating modelo sa GLB format.

    • Name
      obj
      Type
      string
      Description

      Downloadable URL sa hinating modelo sa OBJ format.

    • Name
      fbx
      Type
      string
      Description

      Downloadable URL sa hinating modelo sa FBX format.

    • Name
      usdz
      Type
      string
      Description

      Downloadable URL sa hinating modelo sa USDZ format.

    • Name
      blend
      Type
      string
      Description

      Downloadable URL sa hinating modelo sa Blender format.

    • Name
      3mf
      Type
      string
      Description

      Downloadable URL sa hinating modelo sa 3MF format: isang object bawat bahagi, bawat isa sa sarili nitong filament slot, sa millimeters, na sinukat upang ang pinakamahabang gilid ay 150 mm, kasama ang isang Bambu Studio project configuration.

  • Name
    thumbnail_url
    Type
    string
    Description

    Downloadable URL sa isang na-render na preview ng hinating modelo, kung saan ang bawat bahagi ay may kani-kanilang kulay, sa hiniling na layout.

  • Name
    prompt_ignored
    Type
    boolean
    Description

    true kapag ang prompt ng isang by_parts o by_color request ay walang pinangalanang bahagi, kaya awtomatikong hinati ni Meshy ang modelo — ang mga pangalan ng bahagi sa resulta ay galing kay Meshy, hindi sa iyo. Naroroon simula sa PENDING. Hindi isinasama para sa mga auto task at sa anumang pagkakataong sinunod ang prompt.

  • Name
    part_count
    Type
    integer
    Description

    Bilang ng mga naipi-print na bahagi sa hinating modelo — isa bawat object sa mga na-export na file. Ang mga natupok na maliliit na piraso (collapsed slivers) na hindi kayang gawing naipi-print na piraso ng segmentation ay tinatanggal sa mga file bago i-export at hindi kasama sa bilang.

  • Name
    progress
    Type
    integer
    Description

    Progreso ng task. Kung hindi pa nasisimulan ang task, ang property na ito ay 0. Kapag nagtagumpay na ang task, ito ay magiging 100.

  • Name
    status
    Type
    string
    Description

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

  • Name
    preceding_tasks
    Type
    integer
    Description

    Ang bilang ng mga naunang task.

  • Name
    created_at
    Type
    timestamp
    Description

    Timestamp kung kailan nagawa ang task, sa millisecond.

  • Name
    started_at
    Type
    timestamp
    Description

    Timestamp kung kailan nasimulan ang task, sa millisecond. Kung hindi pa nasisimulan ang task, ang property na ito ay 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Timestamp kung kailan natapos ang task, sa millisecond. Kung hindi pa natatapos ang task, ang property na ito ay 0.

  • Name
    task_error
    Type
    object
    Description

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

  • Name
    consumed_credits
    Type
    integer
    Description

    Ang bilang ng mga credits na nagamit ng task na ito. Palaging naroroon: 10 sa sandaling matanggap ang task, at 0 para sa mga FAILED na task dahil naibabalik ang singil kapag nabigo. Ang pagtanggal ng isang task habang ito ay PENDING pa rin ay nagbabalik din ng bayad.

The Auto Split Task Object

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-split",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
  "part_count": 4,
  "progress": 100,
  "status": "SUCCEEDED",
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000082000,
  "task_error": null,
  "consumed_credits": 10
}