Auto Split API
Splits een 3D-model op in afzonderlijk printbare onderdelen — automatisch, volgens de onderdelen die u benoemt, of per kleurgebied — met optionele verbindingsstukken; dunne gebieden die door een snede ontstaan, worden altijd versterkt zodat elk onderdeel massief print.
Het splitsingsresultaat behoudt de invoertextuur niet. Auto Split accepteert invoer met textuur, dus u hoeft het model niet opnieuw te genereren met should_texture: false. Het bouwt de gesneden onderdelen opnieuw op en kent elk onderdeel een vlakke vertexkleur toe; er wordt geen invoertextuurmap meegenomen naar een geëxporteerd formaat.
Create an Auto Split Task
Dit endpoint maakt een nieuwe Auto Split-taak aan. De taak snijdt het model van een eerdere taak op in afzonderlijk printbare onderdelen en retourneert het gesegmenteerde model, waarbij elk onderdeel een eigen object in het bestand is.
De taak draait op de achtergrond. Zie Processing Times voor hoe lang dit meestal duurt.
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
SUCCEEDEDhebben, en het model moet zijn gegenereerd met Meshy 6 of Meshy 7 (ai_modelmeshy-6,meshy-7,meshy-7.1, oflatest). Low-poly- en Smart Topology-modellen (meshy-t2,meshy-t2.5) worden niet ondersteund. Een getextureerd model wordt geaccepteerd, maar de textuur ervan wordt niet overgenomen in het resultaat.
- Name
- mode
- Type
- string
- standaard auto
- Description
Hoe het model wordt opgedeeld in onderdelen.
Beschikbare waarden:
auto: Meshy kiest de sneden.promptwordt genegeerd.by_parts: Snijd langs de structurele onderdelen die je noemt inprompt, zoals hoofd, armen en romp.by_color: Snijd langs de kleurgebieden die je noemt inprompt. Vereist een invoer die is gegenereerd vanuit een geüploade afbeelding (Afbeelding naar 3D of Multi-afbeelding naar 3D); andere invoer wordt geweigerd met400. 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.
mode = by_parts or by_color- Name
- prompt
- Type
- string
- Verplicht
- Description
Beschrijft de onderdelen om in te splitsen, in elke taal. Meshy leest 1 tot 10 onderdeelnamen hieruit, dus benoem de onderdelen in plaats van het model te beschrijven, bijvoorbeeld
split into the figure and the base, ofhead, torso, left arm, right arm, legs. Eén onderdeel benoemen is prima: alles wat je niet benoemd hebt, wordt één resterend onderdeel, dusthe headsplitst het model op in het hoofd en de rest, net als in de web-app. Maximaal 600 tekens. Een beschrijving die helemaal geen splitsing vraagt, of meer dan 10 onderdelen noemt, wordt geweigerd met400en er wordt niets in rekening gebracht. Als Meshy geen onderdeelnamen uit de beschrijving kan lezen, splitst het in plaats daarvan langs de onderdelen die het identificeert in de referentieafbeelding van het model, in de gekozen mode: de taak wordt dan toch uitgevoerd en in rekening gebracht, en krijgtprompt_ignored: true. Als het model geen referentieafbeelding heeft, of Meshy vindt daarin minder dan twee onderdelen, wordt het verzoek in plaats daarvan geweigerd met400en wordt er niets in rekening gebracht.
- Name
- target_formats
- Type
- array
- standaard ["glb"]
- Description
Formaten waarin het gesplitste model wordt geëxporteerd. Formaten die scèneobjecten ondersteunen (
glb,obj,fbx,usdz,blend,3mf) bevatten elk onderdeel als een apart object;stlkent geen aparte objecten, dus daarin worden alle onderdelen samengevoegd tot één geheel geheel, gerangschikt volgenslayout(vraag3mfaan voor afzonderlijk selecteerbare onderdelen in een slicer).glbwordt altijd gegenereerd en geretourneerd inmodel_urls; vermeld eventuele andere gewenste formaten extra.Beschikbare waarden:
glb,obj,fbx,stl,usdz,blend,3mf.
- Name
- layout
- Type
- string
- standaard assembled
- Description
Hoe de onderdelen worden gerangschikt in elk uitvoerformaat, en in de thumbnail.
Beschikbare waarden:
assembled: Onderdelen blijven waar het bronmodel ze had.on_plate: Onderdelen worden plat neergelegd en verspreid op het bouwplatform, klaar om te slicen — dezelfde indeling als de On Plate-weergave van de web-app.
In beide indelingen wordt een ingeklapt flintertje of puntvormig restant van een snede vóór export verwijderd, zodat elk onderdeel dat je krijgt printbaar is. Formaten die scèneobjecten ondersteunen, bevatten één object per onderdeel;
stlvoegt ze samen tot één geheel.
- Name
- connectors
- Type
- boolean
- standaard false
- Description
Voegt pen-en-gatverbindingen toe bij elke snede, zodat de geprinte onderdelen in elkaar passen.
connectors = true- Name
- connector_type
- Type
- string
- standaard cube
- Description
De vorm van de connector bij elk snijvlak.
Beschikbare waarden:
cube,cylinder.
- Name
- connector_size
- Type
- number
- standaard 0.5
- Description
Connectorgrootte ten opzichte van het snijvlak.
Geldig bereik:
0.1tot0.8.
- Name
- connector_height
- Type
- number
- standaard 0.1
- Description
Hoe ver de connector uitsteekt vanaf het snijvlak, ten opzichte van het snijvlak.
Geldig bereik:
0.1tot0.8.
Returns
De result-eigenschap van de respons bevat de id van de nieuw aangemaakte Auto Split-taak.
Failure Modes
- Name
400 - Bad Request- Description
Het verzoek was onacceptabel. Veelvoorkomende oorzaken:
- Ontbrekende prompt:
promptis verplicht wanneermodeby_partsofby_coloris. - Prompt beschrijft geen splitsing, of te veel onderdelen:
by_parts/by_coloraccepteert 1 tot 10 benoemde onderdelen. Een beschrijving die vraagt om het model in één stuk te houden, of meer dan 10 onderdelen noemt, wordt geweigerd. Er wordt niets in rekening gebracht. - Niet-ondersteunde invoertaak:
input_task_idmoet verwijzen naar een geslaagde taak van een ondersteund type, gegenereerd met Meshy 6 of Meshy 7. - Geen referentieafbeelding:
by_colorvereist een invoer die is gegenereerd vanuit een geüploade afbeelding. - Connector buiten bereik:
connector_sizeofconnector_heightvalt buiten0.1tot0.8.
- Ontbrekende prompt:
- 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_idbestaat niet of behoort niet tot jouw account.
- Name
429 - Too Many Requests- Description
Je hebt je rate limit overschreden.
by_parts- enby_color-verzoeken delen ook een limiet van 12 verzoeken per minuut per account voor het verwerken van prompts.
- Name
503 - Service Unavailable- Description
Prompt-gebaseerd splitsen (
by_partsenby_color) is tijdelijk niet beschikbaar. Probeer het later opnieuw, of gebruikmode: "auto", wat hier niet door wordt beïnvloed. Er wordt niets in rekening gebracht.
Request
# 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"
}
Een Auto Split-taak ophalen
Dit endpoint haalt een Auto Split-taak op aan de hand van de ID.
Parameters
- Name
- id
- Type
- path
- Description
De ID van de Auto Split-taak die moet worden opgehaald.
Returns
Het Auto Split Task-object.
Request
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
}
Een Auto Split-taak verwijderen
Dit endpoint verwijdert een Auto Split-taak permanent, inclusief alle bijbehorende modellen en gegevens. Deze actie is onomkeerbaar.
Pad-parameters
- 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 je zowel de credits als het
resultaat kosten. Wacht tot de taak SUCCEEDED, FAILED of CANCELED
bereikt, en verwijder deze dan.
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
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."
}
Lijst van Auto Split-taken
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 standaard is
1.
- Name
- page_size
- Type
- integer
- Description
Limiet voor paginagrootte. Standaard
10items. Maximaal toegestaan is100items; hogere waarden worden beperkt tot100.
- Name
- sort_by
- Type
- string
- Description
Veld om op te sorteren. Beschikbare waarden:
+created_at: Sorteer op aanmaaktijd in oplopende volgorde.-created_at: Sorteer op aanmaaktijd in aflopende volgorde.
Retourwaarden
Retourneert een gepagineerde lijst van The Auto Split Task Objects.
Request
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
}
]
Een Auto Split-taak streamen
Deze 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 moet worden gestreamd.
Retourwaarden
Retourneert een stream van The Auto Split Task Objects als Server-Sent Events.
Elke message-gebeurtenis bevat het volledige taakobject zoals geretourneerd door Retrieve an Auto Split Task, inclusief consumed_credits, de tijdstempels en prompt_ignored; terwijl de taak PENDING of IN_PROGRESS is, zijn de velden die per frame veranderen progress, status, started_at en preceding_tasks, en verschijnen model_urls, thumbnail_url en part_count zodra de taak SUCCEEDED bereikt. Een error-gebeurtenis bevat alleen status_code en message, dus vertak op basis van de naam van de gebeurtenis voordat je status uitleest.
Request
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 voor een split nooit ingevuld en worden niet geretourneerd. Eigenschappen die tijdens het verloop van de taak worden ingevuld (thumbnail_url, model_urls, de tijdstempels) zijn altijd aanwezig, leeg totdat ze een waarde hebben, zodat de set sleutels niet verandert tussen PENDING en SUCCEEDED.
- Name
- id
- Type
- string
- Description
Unieke identifier 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 onderdeel als een apart object;
stlsmelt ze samen tot één vast object. De eigenschap voor een formaat wordt weggelaten als dat formaat niet is 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 onderdelen zijn samengesmolten tot één vast object; vraag
3mfaan voor afzonderlijk selecteerbare onderdelen.
- 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 preview van het gesplitste model, met elk onderdeel in een aparte kleur, in de aangevraagde
layout.
- Name
- prompt_ignored
- Type
- boolean
- Description
truewanneer depromptvan eenby_parts- ofby_color-aanvraag geen onderdelen noemde, waardoor Meshy het model automatisch heeft gesplitst — de onderdeelnamen in het resultaat zijn die van Meshy, niet de jouwe. Aanwezig vanafPENDING. Weggelaten voorauto-taken en wanneer de prompt wel is gevolgd.
- Name
- part_count
- Type
- integer
- Description
Aantal printbare onderdelen dat de split heeft opgeleverd. Formaten die scène-objecten ondersteunen bevatten één object per onderdeel;
stlsmelt ze samen tot één vast object, en het aantal rapporteert nog steeds de onderdelen. Ingeklapte splinters die de segmentatie niet in een printbaar stuk kon omzetten, worden vóór de export uit de bestanden verwijderd en 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 dit100.
- 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.
De waarde van dit veld is alleen betekenisvol als de taakstatus
PENDINGis.
- 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. Als de veiligheidscontrole van de modelaanbieder het invoermodel weigert, mislukt de taak mettask_error.typeinvalid_inputencodeprovider_content_refused. Zie Fouten.
- Name
- consumed_credits
- Type
- integer
- Description
Het aantal credits dat door deze taak is verbruikt. Altijd aanwezig:
10zodra de taak is geaccepteerd, en0voorFAILED-taken omdat de kosten bij een mislukking worden terugbetaald. Het verwijderen van een taak terwijl deze nogPENDINGis, resulteert eveneens in terugbetaling.
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
}