Auto Split API

Dela upp en 3D-modell i separat utskrivbara delar — automatiskt, efter delar du namnger, eller efter färgregion — med valfria kopplingar; tunna partier som blir kvar efter en skärning förstärks alltid så att varje del skrivs ut i ett massivt stycke.


POST/openapi/v1/print/split

Skapa en Auto Split-uppgift

Denna endpoint skapar en ny Auto Split-uppgift. Uppgiften skär modellen från en tidigare uppgift i separat utskrivbara delar och returnerar den segmenterade modellen, där varje del är ett eget objekt i filen.

Parametrar

  • Name
    input_task_id
    Type
    string
    Obligatorisk
    Description

    ID:t för en lyckad uppgift vars modell ska delas. Uppgiftstyper som stöds: Bild till 3D, Flera bilder till 3D, Text till 3D (förhandsvisning), Remesh, Konvertera och Ändra storlek. Uppgiften måste ha statusen SUCCEEDED, och dess modell måste vara genererad med Meshy 6 eller Meshy 7 (ai_model meshy-6, meshy-7, meshy-7.1 eller latest). Low-poly- och Smart Topology-modeller (meshy-t2) stöds inte. En texturerad modell accepteras, men dess textur förs inte över till resultatet.

  • Name
    mode
    Type
    string
    standard auto
    Description

    Hur modellen delas upp i delar.

    Tillgängliga värden:

    • auto: Meshy väljer snitten. prompt ignoreras.
    • by_parts: Skär längs de strukturella delar du namnger i prompt, till exempel huvud, armar och bål.
    • by_color: Skär längs de färgregioner du namnger i prompt. Kräver en indata genererad från en uppladdad bild (Bild till 3D eller Flera bilder till 3D); andra indata avvisas med 400. Gränserna för färgregionerna kommer från källbilden, inte från indatamodellens textur. För Flera bilder till 3D använder Auto Split den första källbilden.
Gäller endast när mode = by_parts or by_color
  • Name
    prompt
    Type
    string
    Obligatorisk
    Description

    Beskriver de delar som ska delas upp i, på valfritt språk. Meshy läser 1 till 10 delnamn från den, så namnge delarna i stället för att beskriva modellen — till exempel split into the figure and the base, eller head, torso, left arm, right arm, legs. Att namnge en enda del är okej: allt du inte namngett blir en återstående del, så the head delar modellen i huvudet och resten, precis som i webbappen. Upp till 600 tecken. Två typer av misslyckanden: en beskrivning som inte begär någon uppdelning alls, eller som namnger fler än 10 delar, avvisas med 400 och inget debiteras; en beskrivning Meshy inte kan tolka alls faller tillbaka till auto, uppgiften körs och debiteras ändå, och dess svar innehåller prompt_ignored: true.

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

    Format som den uppdelade modellen ska exporteras i. Format som stöder scenobjekt (glb, obj, fbx, usdz, blend, 3mf) bär varje del som ett separat objekt; stl har ingen uppfattning om separata objekt, så det slår samman varje del till ett enda solidt objekt arrangerat enligt layout (begär 3mf för separat valbara delar i en slicer). glb produceras alltid och returneras i model_urls; ange eventuella övriga format du vill ha utöver detta.

    Tillgängliga värden: glb, obj, fbx, stl, usdz, blend, 3mf.

  • Name
    layout
    Type
    string
    standard assembled
    Description

    Hur delarna arrangeras i varje utdataformat, och i miniatyren.

    Tillgängliga värden:

    • assembled: Delarna behåller samma placering som i källmodellen.
    • on_plate: Delarna läggs platt och utspridda på byggplattan, redo att skäras — samma arrangemang som webbappens On Plate-vy.

    I båda arrangemangen tas en hopfallen sliver eller punktliknande bit som blir kvar från ett snitt bort före export, så varje del du får är utskrivbar. Format som stöder scenobjekt håller ett objekt per del; stl slår samman dem till ett enda solitt objekt.

  • Name
    connectors
    Type
    boolean
    standard false
    Description

    Lägger till tapp-och-hål-kopplingar vid varje snitt så att de utskrivna delarna passar ihop.

Gäller endast när connectors = true
  • Name
    connector_type
    Type
    string
    standard cube
    Description

    Formen på kopplingen vid varje snittyta.

    Tillgängliga värden: cube, cylinder.

  • Name
    connector_size
    Type
    number
    standard 0.5
    Description

    Kopplingens storlek i förhållande till snittytan.

    Giltigt intervall: 0.1 till 0.8.

  • Name
    connector_height
    Type
    number
    standard 0.1
    Description

    Hur långt kopplingen sträcker sig från snittytan, i förhållande till snittytan.

    Giltigt intervall: 0.1 till 0.8.

Returvärden

Svarets result-egenskap innehåller id för den nyligen skapade Auto Split-uppgiften.

Felmoder

  • Name
    400 - Bad Request
    Description

    Begäran var inte godtagbar. Vanliga orsaker:

    • Saknad prompt: prompt krävs när mode är by_parts eller by_color.
    • Prompten beskriver ingen uppdelning, eller för många delar: by_parts/by_color accepterar 1 till 10 namngivna delar. En beskrivning som begär att modellen behålls i ett enda stycke, eller som namnger fler än 10 delar, avvisas. Inget debiteras.
    • Uppgiftstyp som inte stöds: input_task_id måste referera till en lyckad uppgift av en typ som stöds, genererad med Meshy 6 eller Meshy 7.
    • Ingen referensbild: by_color kräver en indata genererad från en uppladdad bild.
    • Koppling utanför intervallet: connector_size eller connector_height ligger utanför 0.1 till 0.8.
  • Name
    401 - Unauthorized
    Description

    Autentiseringen misslyckades. Kontrollera din API-nyckel.

  • Name
    402 - Payment Required
    Description

    Otillräckligt med credits för att utföra denna uppgift.

  • Name
    404 - Not Found
    Description

    input_task_id finns inte eller tillhör inte ditt konto.

  • Name
    429 - Too Many Requests
    Description

    Du har överskridit din hastighetsgräns. by_parts- och by_color-förfrågningar delar också på en gräns för prompt-tolkning på 12 förfrågningar per minut och konto.

  • Name
    503 - Service Unavailable
    Description

    Promptbaserad uppdelning (by_parts och by_color) är tillfälligt otillgänglig. Försök igen senare, eller använd mode: "auto", som inte påverkas. Inget debiteras.

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

Hämta en Auto Split-uppgift

Denna endpoint hämtar en Auto Split-uppgift baserat på dess ID.

Parametrar

  • Name
    id
    Type
    path
    Description

    ID:t för den Auto Split-uppgift som ska hämtas.

Returnerar

Auto Split Task-objektet.

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

Ta bort en Auto Split-uppgift

Denna endpoint tar permanent bort en Auto Split-uppgift, inklusive alla tillhörande modeller och data. Denna åtgärd kan inte ångras.

Sökvägsparametrar

  • Name
    id
    Type
    path
    Description

    ID:t för den Auto Split-uppgift som ska tas bort.

Uppgiftsstatus

En uppgift som fortfarande är PENDING tas bort och de credits som förbrukades vid skapandet återbetalas.

En uppgift som redan är IN_PROGRESS kan inte tas bort: begäran avvisas med 409 Conflict och uppgiften fortsätter att köras. Credits för en uppgift som arbetaren redan har påbörjat kan inte återbetalas, så att ta bort den mitt i körningen skulle kosta dig både credits och resultatet. Vänta tills den når SUCCEEDED, FAILED eller CANCELED, och ta sedan bort den.

En uppgift i ett slutgiltigt tillstånd (SUCCEEDED, FAILED eller CANCELED) tas bort utan återbetalning.

Returer

Returnerar 200 OK vid framgång, eller 409 Conflict när uppgiften är IN_PROGRESS.

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

Lista Auto Split-uppgifter

Denna endpoint gör det möjligt att hämta en lista över Auto Split-uppgifter.

Parametrar

Valfria attribut

  • Name
    page_num
    Type
    integer
    Description

    Sidnummer för paginering. Börjar och har standardvärdet 1.

  • Name
    page_size
    Type
    integer
    Description

    Gräns för sidstorlek. Standardvärdet är 10 objekt. Maximalt tillåtet är 100 objekt; större värden begränsas till 100.

  • Name
    sort_by
    Type
    string
    Description

    Fält att sortera efter. Tillgängliga värden:

    • +created_at: Sortera efter skapandetid i stigande ordning.
    • -created_at: Sortera efter skapandetid i fallande ordning.

Returnerar

Returnerar en paginerad lista med Auto Split-uppgiftsobjekt.

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

Denna endpoint strömmar realtidsuppdateringar för en Auto Split-uppgift med Server-Sent Events (SSE).

Parametrar

  • Name
    id
    Type
    path
    Description

    Unik identifierare för Auto Split-uppgiften som ska strömmas.

Returnerar

Returnerar en ström av The Auto Split Task Objects som Server-Sent Events.

Varje message-händelse innehåller hela uppgiftsobjektet som returneras av Retrieve an Auto Split Task, inklusive consumed_credits, tidsstämplarna och prompt_ignored; medan uppgiften är PENDING eller IN_PROGRESS är fälten som ändras mellan bildrutorna progress, status, started_at och preceding_tasks, och model_urls, thumbnail_url och part_count visas när den når SUCCEEDED. En error-händelse innehåller endast status_code och message, så gör en förgrening baserat på händelsenamnet innan du läser 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
}

The Auto Split Task Object

En Auto Split-uppgift innehåller endast egenskaperna nedan. Fälten för genereringsprompt som andra uppgiftsobjekt innehåller (name, object_prompt, texture_prompt och så vidare), den enskilda model_url, och texture_urls fylls aldrig i för en delning och returneras inte. Egenskaper som fylls i medan uppgiften körs (thumbnail_url, model_urls, tidsstämplarna) finns alltid med, tomma tills de har ett värde, så mängden nycklar ändras inte mellan PENDING och SUCCEEDED.

  • Name
    id
    Type
    string
    Description

    Unik identifierare för uppgiften. Även om vi använder en k-sorterbar UUID för uppgifts-id som implementationsdetalj, bör du inte göra några antaganden om formatet på id:t.

  • Name
    type
    Type
    string
    Description

    Uppgiftens typ. Värdet är print-split.

  • Name
    model_urls
    Type
    object
    Description

    Nedladdningsbara URL:er till den delade modellen, en per begärt format. Format som stöder scenobjekt behåller varje del som ett separat objekt; stl slår samman dem till ett enda solidt objekt. Egenskapen för ett format utelämnas om formatet inte begärdes.

    • Name
      glb
      Type
      string
      Description

      Nedladdningsbar URL till den delade modellen i GLB-format.

    • Name
      obj
      Type
      string
      Description

      Nedladdningsbar URL till den delade modellen i OBJ-format.

    • Name
      fbx
      Type
      string
      Description

      Nedladdningsbar URL till den delade modellen i FBX-format.

    • Name
      stl
      Type
      string
      Description

      Nedladdningsbar URL till den delade modellen i STL-format. Alla delar slås samman till ett enda solidt objekt; begär 3mf för separat valbara delar.

    • Name
      usdz
      Type
      string
      Description

      Nedladdningsbar URL till den delade modellen i USDZ-format.

    • Name
      blend
      Type
      string
      Description

      Nedladdningsbar URL till den delade modellen i Blender-format.

    • Name
      3mf
      Type
      string
      Description

      Nedladdningsbar URL till den delade modellen i 3MF-format.

  • Name
    thumbnail_url
    Type
    string
    Description

    Nedladdningsbar URL till en renderad förhandsvisning av den delade modellen, med varje del i en distinkt färg, i den begärda layout.

  • Name
    prompt_ignored
    Type
    boolean
    Description

    true när en by_parts- eller by_color-begärans prompt inte namngav några delar, så Meshy delade modellen automatiskt istället — delnamnen i resultatet är Meshys, inte dina. Finns från PENDING och framåt. Utelämnas för auto-uppgifter och när prompten följdes.

  • Name
    part_count
    Type
    integer
    Description

    Antal utskriftsbara delar som delningen producerade. Format som stöder scenobjekt bär ett objekt per del; stl slår samman dem till ett enda solidt objekt, och antalet rapporterar fortfarande delarna. Kollapsade flisor som segmenteringen inte kunde omvandla till en utskriftsbar del tas bort från filerna före export och räknas inte.

  • Name
    progress
    Type
    integer
    Description

    Uppgiftens progress. Om uppgiften inte har startat ännu blir denna egenskap 0. Så snart uppgiften har lyckats blir den 100.

  • Name
    status
    Type
    string
    Description

    Uppgiftens status. Möjliga värden är ett av PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Antalet föregående uppgifter.

  • Name
    created_at
    Type
    timestamp
    Description

    Tidsstämpel för när uppgiften skapades, i millisekunder.

  • Name
    started_at
    Type
    timestamp
    Description

    Tidsstämpel för när uppgiften startades, i millisekunder. Om uppgiften inte har startat ännu blir denna egenskap 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Tidsstämpel för när uppgiften avslutades, i millisekunder. Om uppgiften inte har avslutats ännu blir denna egenskap 0.

  • Name
    task_error
    Type
    object
    Description

    Feldetaljer för misslyckade uppgifter. Se Fel för den fullständiga referensen till objektet task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Antalet credits som förbrukats av denna uppgift. Finns alltid: 10 när uppgiften har accepterats, och 0 för FAILED-uppgifter eftersom avgiften återbetalas vid misslyckande. Att ta bort en uppgift medan den fortfarande är PENDING återbetalar den också.

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
}