Auto Split API

Splits een 3D-model op in afzonderlijk printbare onderdelen — automatisch, op basis van de onderdelen die u benoemt, of op basis van kleurgebied — met optionele connectoren; dunne gebieden die door een snede achterblijven, worden altijd versterkt zodat elk onderdeel solide print.


POST/openapi/v1/print/split

Een Auto Split-taak maken

Dit endpoint maakt een nieuwe Auto Split-taak aan. De taak snijdt het model van een eerdere taak in afzonderlijk printbare delen en retourneert het gesegmenteerde model, waarbij elk deel een eigen object in het bestand is.

Parameters

  • Name
    input_task_id
    Type
    string
    Verplicht
    Description

    De ID van een geslaagde taak waarvan het model gesplitst moet worden. Ondersteunde taaktypen: Afbeelding naar 3D, Multi-afbeelding naar 3D, Tekst naar 3D (preview), Remesh, Converteren, en Formaat wijzigen. De taak moet de status SUCCEEDED hebben, en het model moet zijn gegenereerd met Meshy 6 of Meshy 7 (ai_model meshy-6, meshy-7, meshy-7.1, of latest). Low-poly- en Smart Topology-modellen (meshy-t2) worden niet ondersteund. Een model met textuur wordt geaccepteerd, maar de textuur wordt niet meegenomen in het resultaat.

  • Name
    mode
    Type
    string
    standaard auto
    Description

    Hoe het model in delen wordt verdeeld.

    Beschikbare waarden:

    • auto: Meshy bepaalt de sneden zelf. prompt wordt genegeerd.
    • by_parts: Snijd langs de structurele onderdelen die je noemt in prompt, zoals hoofd, armen en romp.
    • by_color: Snijd langs de kleurgebieden die je noemt in prompt. Vereist een invoer die is gegenereerd uit een geüploade afbeelding (Afbeelding naar 3D of Multi-afbeelding naar 3D); andere invoer wordt geweigerd met 400. De grenzen van de kleurgebieden komen uit de bronafbeelding, niet uit de textuur van het invoermodel. Voor Multi-afbeelding naar 3D gebruikt Auto Split de eerste bronafbeelding.
Alleen van toepassing wanneer mode = by_parts or by_color
  • Name
    prompt
    Type
    string
    Verplicht
    Description

    Beschrijft, in willekeurige taal, de delen om in te splitsen. Meshy leest hieruit 1 tot 10 onderdeelnamen, dus benoem de stukken in plaats van het model te beschrijven — bijvoorbeeld split into the figure and the base, of head, torso, left arm, right arm, legs. Eén onderdeel benoemen is prima: alles wat je niet hebt benoemd wordt één overblijvend deel, dus the head splitst het model op in het hoofd en de rest, net als in de web-app. Maximaal 600 tekens. Twee faalscenario's: een beschrijving die om helemaal geen splitsing vraagt, of meer dan 10 delen noemt, wordt geweigerd met 400 en er wordt niets in rekening gebracht; een beschrijving die Meshy helemaal niet kan lezen valt terug op auto, de taak wordt nog steeds uitgevoerd en in rekening gebracht, en de respons bevat prompt_ignored: true.

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

    Formaten waarin het gesplitste model wordt geëxporteerd. Formaten die scène-objecten ondersteunen (glb, obj, fbx, usdz, blend, 3mf) bevatten elk deel als een apart object; stl heeft geen begrip van afzonderlijke objecten, dus dat voegt elk deel samen tot één vast object, gerangschikt volgens layout (vraag 3mf aan voor afzonderlijk selecteerbare delen in een slicer). glb wordt altijd gegenereerd en geretourneerd in model_urls; vermeld eventuele andere gewenste formaten aanvullend.

    Beschikbare waarden: glb, obj, fbx, stl, usdz, blend, 3mf.

  • Name
    layout
    Type
    string
    standaard assembled
    Description

    Hoe de delen worden gerangschikt in elk uitvoerformaat en in de thumbnail.

    Beschikbare waarden:

    • assembled: Delen blijven op de plek waar ze in het bronmodel stonden.
    • on_plate: Delen worden plat neergelegd en uitgespreid op het printbed, klaar om te slicen — dezelfde indeling als de On Plate-weergave van de web-app.

    In beide indelingen wordt een ingeklapt flintertje of puntachtig restdeel dat overblijft van een snede vóór het exporteren verwijderd, zodat elk deel dat je krijgt printbaar is. Formaten die scène-objecten ondersteunen bevatten één object per deel; stl voegt ze samen tot één vast object.

  • Name
    connectors
    Type
    boolean
    standaard false
    Description

    Voegt pen-en-gatverbindingen (mortise-and-tenon) toe bij elke snede zodat de geprinte delen in elkaar passen.

Alleen van toepassing wanneer connectors = true
  • Name
    connector_type
    Type
    string
    standaard cube
    Description

    De vorm van de verbinding bij elk snijvlak.

    Beschikbare waarden: cube, cylinder.

  • Name
    connector_size
    Type
    number
    standaard 0.5
    Description

    Grootte van de verbinding relatief ten opzichte van het snijvlak.

    Geldig bereik: 0.1 tot 0.8.

  • Name
    connector_height
    Type
    number
    standaard 0.1
    Description

    Hoever de verbinding uitsteekt vanaf het snijvlak, relatief ten opzichte van het snijvlak.

    Geldig bereik: 0.1 tot 0.8.

Retourwaarden

De result-eigenschap van de respons bevat de id van de nieuw aangemaakte Auto Split-taak.

Faalscenario's

  • Name
    400 - Bad Request
    Description

    Het verzoek was onaanvaardbaar. Veelvoorkomende oorzaken:

    • Ontbrekende prompt: prompt is vereist wanneer mode gelijk is aan by_parts of by_color.
    • Prompt beschrijft geen splitsing, of te veel delen: by_parts / by_color accepteert 1 tot 10 benoemde stukken. Een beschrijving die vraagt om het model in één stuk te houden, of meer dan 10 delen noemt, wordt geweigerd. Er wordt niets in rekening gebracht.
    • Niet-ondersteunde invoertaak: De input_task_id moet verwijzen naar een geslaagde taak van een ondersteund type, gegenereerd met Meshy 6 of Meshy 7.
    • Geen referentieafbeelding: by_color vereist een invoer die is gegenereerd uit een geüploade afbeelding.
    • Verbinding buiten bereik: connector_size of connector_height valt buiten 0.1 tot 0.8.
  • Name
    401 - Unauthorized
    Description

    Authenticatie is mislukt. Controleer je API-sleutel.

  • Name
    402 - Payment Required
    Description

    Onvoldoende credits om deze taak uit te voeren.

  • Name
    404 - Not Found
    Description

    De input_task_id bestaat niet of behoort niet tot jouw account.

  • Name
    429 - Too Many Requests
    Description

    Je hebt je rate limit overschreden. by_parts- en by_color-verzoeken delen ook een prompt-verwerkingslimiet van 12 verzoeken per minuut per account.

  • Name
    503 - Service Unavailable
    Description

    Prompt-gebaseerd splitsen (by_parts en by_color) is tijdelijk niet beschikbaar. Probeer het later opnieuw, of gebruik mode: "auto", die hier niet door wordt beïnvloed. Er wordt niets in rekening gebracht.

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

Een Auto Split-taak ophalen

Deze endpoint haalt een Auto Split-taak op aan de hand van de bijbehorende ID.

Parameters

  • Name
    id
    Type
    path
    Description

    De ID van de Auto Split-taak die moet worden opgehaald.

Retourwaarden

Het 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

Een Auto Split-taak verwijderen

Dit endpoint verwijdert een Auto Split-taak permanent, inclusief alle bijbehorende modellen en gegevens. Deze actie is onomkeerbaar.

Padparameters

  • Name
    id
    Type
    path
    Description

    De ID van de Auto Split-taak die moet worden verwijderd.

Taakstatus

Een taak die nog PENDING is, wordt verwijderd en de credits die bij het aanmaken zijn verbruikt, worden terugbetaald.

Een taak die al IN_PROGRESS is, kan niet worden verwijderd: het verzoek wordt afgewezen met 409 Conflict en de taak blijft doorlopen. Credits voor een taak die de worker al is gestart, zijn niet terugbetaalbaar, dus het verwijderen ervan tijdens de uitvoering zou u zowel de credits als het resultaat kosten. Wacht tot deze SUCCEEDED, FAILED of CANCELED bereikt, en verwijder deze daarna.

Een taak in een eindstatus (SUCCEEDED, FAILED of CANCELED) wordt verwijderd zonder terugbetaling.

Retourwaarden

Geeft 200 OK terug bij succes, of 409 Conflict wanneer de taak IN_PROGRESS is.

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

// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS — the task is left 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."
}

GET/openapi/v1/print/split

Auto Split-taken opvragen

Met deze endpoint kunt u een lijst met Auto Split-taken ophalen.

Parameters

Optionele attributen

  • Name
    page_num
    Type
    integer
    Description

    Paginanummer voor paginering. Begint bij en staat standaard op 1.

  • Name
    page_size
    Type
    integer
    Description

    Maximaal aantal items per pagina. Standaard 10 items. Maximaal toegestaan is 100 items; hogere waarden worden afgekapt tot 100.

  • Name
    sort_by
    Type
    string
    Description

    Veld waarop gesorteerd wordt. Beschikbare waarden:

    • +created_at: Sorteren op aanmaaktijd in oplopende volgorde.
    • -created_at: Sorteren op aanmaaktijd in aflopende volgorde.

Retourwaarden

Retourneert een gepagineerde lijst met The Auto Split Task Objects.

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 een Auto Split-taak

Dit endpoint streamt realtime updates voor een Auto Split-taak met behulp van Server-Sent Events (SSE).

Parameters

  • Name
    id
    Type
    path
    Description

    Unieke identifier voor de Auto Split-taak die gestreamd moet worden.

Retourwaarden

Retourneert een stream van The Auto Split Task Objects als Server-Sent Events.

Elk message-event bevat het volledige taakobject zoals geretourneerd door Retrieve an Auto Split Task, inclusief consumed_credits, de timestamps en prompt_ignored; terwijl de taak PENDING of IN_PROGRESS is, zijn de velden die tussen frames veranderen progress, status, started_at en preceding_tasks, en model_urls, thumbnail_url en part_count verschijnen zodra de taak SUCCEEDED bereikt. Een error-event bevat alleen status_code en message, dus splits op basis van de eventnaam voordat je status uitleest.

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
}

The Auto Split Task Object

Een Auto Split-taak bevat alleen de onderstaande eigenschappen. De generatie-promptvelden die andere taakobjecten bevatten (name, object_prompt, texture_prompt enzovoort), de enkele model_url, en texture_urls worden bij een split nooit ingevuld en worden niet geretourneerd. Eigenschappen die tijdens het uitvoeren van de taak worden ingevuld (thumbnail_url, model_urls, de tijdstempels) zijn altijd aanwezig, leeg totdat ze een waarde hebben, dus de set sleutels verandert niet tussen PENDING en SUCCEEDED.

  • Name
    id
    Type
    string
    Description

    Unieke identificatie voor de taak. Hoewel we als implementatiedetail een k-sorteerbare UUID gebruiken voor taak-id's, moet je geen aannames doen over de indeling van de id.

  • Name
    type
    Type
    string
    Description

    Type van de taak. De waarde is print-split.

  • Name
    model_urls
    Type
    object
    Description

    Downloadbare URL's naar het gesplitste model, één per aangevraagd formaat. Formaten die scène-objecten ondersteunen houden elk deel als een apart object; stl voegt ze samen tot één massief object. De eigenschap voor een formaat wordt weggelaten als het formaat niet werd aangevraagd.

    • Name
      glb
      Type
      string
      Description

      Downloadbare URL naar het gesplitste model in GLB-formaat.

    • Name
      obj
      Type
      string
      Description

      Downloadbare URL naar het gesplitste model in OBJ-formaat.

    • Name
      fbx
      Type
      string
      Description

      Downloadbare URL naar het gesplitste model in FBX-formaat.

    • Name
      stl
      Type
      string
      Description

      Downloadbare URL naar het gesplitste model in STL-formaat. Alle delen worden samengevoegd tot één massief object; vraag 3mf aan voor afzonderlijk selecteerbare delen.

    • Name
      usdz
      Type
      string
      Description

      Downloadbare URL naar het gesplitste model in USDZ-formaat.

    • Name
      blend
      Type
      string
      Description

      Downloadbare URL naar het gesplitste model in Blender-formaat.

    • Name
      3mf
      Type
      string
      Description

      Downloadbare URL naar het gesplitste model in 3MF-formaat.

  • Name
    thumbnail_url
    Type
    string
    Description

    Downloadbare URL naar een gerenderde voorvertoning van het gesplitste model, met elk deel in een aparte kleur, in de aangevraagde layout.

  • Name
    prompt_ignored
    Type
    boolean
    Description

    true wanneer de prompt van een by_parts- of by_color-aanvraag geen delen benoemde, waardoor Meshy het model automatisch heeft gesplitst — de deelnamen in het resultaat zijn van Meshy, niet van jou. Aanwezig vanaf PENDING. Weggelaten voor auto-taken en telkens wanneer de prompt werd gevolgd.

  • Name
    part_count
    Type
    integer
    Description

    Aantal printbare delen dat de splitsing heeft opgeleverd. Formaten die scène-objecten ondersteunen bevatten één object per deel; stl voegt ze samen tot één massief object, en het aantal geeft nog steeds de delen weer. Ingeklapte splinters die de segmentatie niet in een printbaar stuk kon omzetten, worden vóór het exporteren uit de bestanden verwijderd en worden niet meegeteld.

  • Name
    progress
    Type
    integer
    Description

    Voortgang van de taak. Als de taak nog niet is gestart, is deze eigenschap 0. Zodra de taak is geslaagd, wordt dit 100.

  • Name
    status
    Type
    string
    Description

    Status van de taak. Mogelijke waarden zijn PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Het aantal voorgaande taken.

  • Name
    created_at
    Type
    timestamp
    Description

    Tijdstempel van wanneer de taak is aangemaakt, in milliseconden.

  • Name
    started_at
    Type
    timestamp
    Description

    Tijdstempel van wanneer de taak is gestart, in milliseconden. Als de taak nog niet is gestart, is deze eigenschap 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Tijdstempel van wanneer de taak is voltooid, in milliseconden. Als de taak nog niet is voltooid, is deze eigenschap 0.

  • Name
    task_error
    Type
    object
    Description

    Foutdetails voor mislukte taken. Zie Fouten voor de volledige referentie van het task_error-object.

  • Name
    consumed_credits
    Type
    integer
    Description

    Het aantal credits dat door deze taak is verbruikt. Altijd aanwezig: 10 zodra de taak is geaccepteerd, en 0 voor FAILED-taken omdat de kosten bij mislukking worden terugbetaald. Het verwijderen van een taak terwijl deze nog PENDING is, betaalt de kosten eveneens terug.

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
}