lowpoly verrà ritirato il 30 ott 2026. Cambia modello prima di queste date per evitare errori nelle richieste.

API Auto Split

Dividi un modello 3D in parti stampabili separatamente — automaticamente, in base alle parti che nomini, o per regione di colore — con connettori opzionali; le regioni sottili lasciate da un taglio vengono sempre rinforzate in modo che ogni parte venga stampata solida.


POST/openapi/v1/print/split

Create an Auto Split Task

Questo endpoint crea un nuovo task Auto Split. Il task taglia il modello di un task precedente in parti stampabili separatamente e restituisce il modello segmentato, con ogni parte come proprio oggetto nel file.

Il task viene eseguito in background. Per la durata tipica, consulta Tempi di elaborazione.

Parametri

  • Name
    input_task_id
    Type
    string
    Obbligatorio
    Description

    L'ID di un task riuscito il cui modello deve essere diviso. Tipi di task supportati: Immagine in 3D, Multi-immagine in 3D, Testo in 3D (anteprima), Remesh, Converti e Ridimensiona. Il task deve avere stato SUCCEEDED e il suo modello deve essere stato generato con Meshy 6 o Meshy 7 (ai_model meshy-6, meshy-7, meshy-7.1, o latest). I modelli low-poly e Smart Topology (meshy-t2, meshy-t2.5) non sono supportati. Un modello con texture è accettato, ma la sua texture non viene riportata nel risultato.

  • Name
    mode
    Type
    string
    predefinito auto
    Description

    Come il modello viene diviso in parti.

    Valori disponibili:

    • auto: Meshy sceglie i tagli. prompt viene ignorato.
    • by_parts: Taglia lungo le parti strutturali indicate nel prompt, come testa, braccia e torso.
    • by_color: Taglia lungo le regioni di colore indicate nel prompt. Richiede un input generato da un'immagine caricata (Immagine in 3D o Multi-immagine in 3D); altri input vengono rifiutati con 400. I confini delle regioni di colore derivano dall'immagine sorgente, non dalla texture del modello di input. Per Multi-immagine in 3D, Auto Split utilizza la prima immagine sorgente.
Si applica solo quando mode = by_parts or by_color
  • Name
    prompt
    Type
    string
    Obbligatorio
    Description

    Descrive le parti in cui dividere, in qualsiasi lingua. Meshy legge da 1 a 10 nomi di parti da essa, quindi nomina i pezzi invece di descrivere il modello, ad esempio split into the figure and the base, oppure head, torso, left arm, right arm, legs. Nominare una singola parte va bene: tutto ciò che non hai nominato diventa una parte rimanente, quindi the head divide il modello in testa e resto, come nell'app web. Fino a 600 caratteri. Una descrizione che chiede di non effettuare alcuna divisione, o che nomina più di 10 parti, viene rifiutata con 400 e non viene addebitato nulla. Se Meshy non riesce a leggere alcun nome di parte dalla descrizione, divide invece lungo le parti che identifica nell'immagine di riferimento del modello, nel mode scelto: il task viene comunque eseguito ed addebitato, e include prompt_ignored: true. Se il modello non ha un'immagine di riferimento, o Meshy trova meno di due parti in essa, la richiesta viene invece rifiutata con 400 e non viene addebitato nulla.

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

    Formati in cui esportare il modello diviso. I formati che supportano oggetti scena (glb, obj, fbx, usdz, blend, 3mf) portano ogni parte come oggetto separato; stl non ha il concetto di oggetti separati, quindi fonde ogni parte in un unico solido disposto secondo layout (richiedi 3mf per parti selezionabili separatamente in uno slicer). glb viene sempre prodotto e restituito in model_urls; elenca qualsiasi altro formato desiderato in aggiunta.

    Valori disponibili: glb, obj, fbx, stl, usdz, blend, 3mf.

  • Name
    layout
    Type
    string
    predefinito assembled
    Description

    Come le parti sono disposte in ogni formato di output, e nella miniatura.

    Valori disponibili:

    • assembled: Le parti rimangono dove si trovavano nel modello sorgente.
    • on_plate: Le parti vengono adagiate piatte e distribuite sul piano di stampa, pronte per lo slicing — la stessa disposizione della vista On Plate dell'app web.

    In entrambi i layout, una scheggia collassata o un pezzo simile a un punto risultante da un taglio viene rimosso prima dell'esportazione, così ogni parte ottenuta è stampabile. I formati che supportano oggetti scena contengono un oggetto per parte; stl li fonde in un unico solido.

  • Name
    connectors
    Type
    boolean
    predefinito false
    Description

    Aggiunge connettori a tenone e mortasa a ogni taglio in modo che le parti stampate si incastrino tra loro.

Si applica solo quando connectors = true
  • Name
    connector_type
    Type
    string
    predefinito cube
    Description

    La forma del connettore su ogni superficie di taglio.

    Valori disponibili: cube, cylinder.

  • Name
    connector_size
    Type
    number
    predefinito 0.5
    Description

    Dimensione del connettore relativa alla superficie di taglio.

    Intervallo valido: da 0.1 a 0.8.

  • Name
    connector_height
    Type
    number
    predefinito 0.1
    Description

    Quanto il connettore si estende dalla superficie di taglio, relativamente alla superficie di taglio.

    Intervallo valido: da 0.1 a 0.8.

Valori restituiti

La proprietà result della risposta contiene l'id del nuovo task Auto Split creato.

Modalità di errore

  • Name
    400 - Bad Request
    Description

    La richiesta non era accettabile. Cause comuni:

    • Prompt mancante: prompt è obbligatorio quando mode è by_parts o by_color.
    • Il prompt non descrive alcuna divisione, oppure indica troppe parti: by_parts / by_color accetta da 1 a 10 pezzi nominati. Una descrizione che chiede di mantenere il modello in un unico pezzo, o che nomina più di 10 parti, viene rifiutata. Non viene addebitato nulla.
    • Task di input non supportato: input_task_id deve fare riferimento a un task riuscito di un tipo supportato, generato con Meshy 6 o Meshy 7.
    • Nessuna immagine di riferimento: by_color richiede un input generato da un'immagine caricata.
    • Connettore fuori intervallo: connector_size o connector_height è fuori dall'intervallo 0.1 - 0.8.
  • Name
    401 - Unauthorized
    Description

    Autenticazione non riuscita. Verifica la tua chiave API.

  • Name
    402 - Payment Required
    Description

    Crediti insufficienti per eseguire questo task.

  • Name
    404 - Not Found
    Description

    input_task_id non esiste o non appartiene al tuo account.

  • Name
    429 - Too Many Requests
    Description

    Hai superato il tuo limite di frequenza. Le richieste by_parts e by_color condividono inoltre un limite di analisi del prompt di 12 richieste al minuto per account.

  • Name
    503 - Service Unavailable
    Description

    La divisione basata su prompt (by_parts e by_color) è temporaneamente non disponibile. Riprova più tardi, oppure usa mode: "auto", che non è interessato dal problema. Non viene addebitato nulla.

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

Recupera un task di Auto Split

Questo endpoint recupera un task di Auto Split tramite il suo ID.

Parametri

  • Name
    id
    Type
    path
    Description

    L'ID del task di Auto Split da recuperare.

Restituisce

L'oggetto Task di Auto Split.

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

Elimina un'attività di Auto Split

Questo endpoint elimina definitivamente un'attività di Auto Split, inclusi tutti i modelli e i dati associati. Questa azione è irreversibile.

Parametri del percorso

  • Name
    id
    Type
    path
    Description

    L'ID dell'attività di Auto Split da eliminare.

Stato dell'attività

Un'attività ancora in stato PENDING viene eliminata e i crediti consumati al momento della creazione vengono rimborsati.

Un'attività già IN_PROGRESS non può essere eliminata: la richiesta viene rifiutata con 409 Conflict e l'attività continua a essere eseguita. I crediti per un'attività che il worker ha già iniziato a elaborare non sono rimborsabili, quindi eliminarla a metà esecuzione ti farebbe perdere sia i crediti sia il risultato. Attendi che raggiunga lo stato SUCCEEDED, FAILED o CANCELED, quindi eliminala.

Un'attività in uno stato finale (SUCCEEDED, FAILED o CANCELED) viene eliminata senza rimborso.

Restituisce

Restituisce 200 OK in caso di successo, oppure 409 Conflict quando l'attività è 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

Elenca attività Auto Split

Questo endpoint consente di recuperare un elenco di attività Auto Split.

Parametri

Attributi opzionali

  • Name
    page_num
    Type
    integer
    Description

    Numero di pagina per la paginazione. Inizia e ha come valore predefinito 1.

  • Name
    page_size
    Type
    integer
    Description

    Limite della dimensione della pagina. Il valore predefinito è 10 elementi. Il massimo consentito è 100 elementi; valori superiori vengono limitati a 100.

  • Name
    sort_by
    Type
    string
    Description

    Campo in base al quale ordinare. Valori disponibili:

    • +created_at: Ordina per data di creazione in ordine crescente.
    • -created_at: Ordina per data di creazione in ordine decrescente.

Restituisce

Restituisce un elenco paginato di 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 di un task di Auto Split

Questo endpoint trasmette in streaming gli aggiornamenti in tempo reale di un task di Auto Split utilizzando Server-Sent Events (SSE).

Parametri

  • Name
    id
    Type
    path
    Description

    Identificatore univoco del task di Auto Split da trasmettere in streaming.

Restituisce

Restituisce uno stream di The Auto Split Task Objects come Server-Sent Events.

Ogni evento message trasporta l'oggetto task completo come restituito da Retrieve an Auto Split Task, inclusi consumed_credits, i timestamp e prompt_ignored; mentre il task è PENDING o IN_PROGRESS i campi che cambiano tra un frame e l'altro sono progress, status, started_at e preceding_tasks, mentre model_urls, thumbnail_url e part_count compaiono una volta raggiunto lo stato SUCCEEDED. Un evento error trasporta solo status_code e message, quindi distingui in base al nome dell'evento prima di leggere 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
}

L'oggetto Auto Split Task

Un task Auto Split contiene solo le proprietà seguenti. I campi relativi al prompt di generazione presenti in altri oggetti task (name, object_prompt, texture_prompt e simili), il singolo model_url e texture_urls non vengono mai valorizzati per uno split e non vengono restituiti. Le proprietà che si popolano man mano che il task procede (thumbnail_url, model_urls, i timestamp) sono sempre presenti, vuote finché non hanno un valore, quindi l'insieme di chiavi non cambia tra PENDING e SUCCEEDED.

  • Name
    id
    Type
    string
    Description

    Identificatore univoco del task. Sebbene utilizziamo uno UUID k-sortable come dettaglio implementativo per gli id dei task, non dovresti fare nessuna assunzione sul formato dell'id.

  • Name
    type
    Type
    string
    Description

    Tipo del task. Il valore è print-split.

  • Name
    model_urls
    Type
    object
    Description

    URL scaricabili del modello suddiviso, uno per ciascun formato richiesto. I formati che supportano oggetti scena mantengono ogni parte come oggetto separato; stl le fonde in un unico solido. La proprietà di un formato verrà omessa se il formato non è stato richiesto.

    • Name
      glb
      Type
      string
      Description

      URL scaricabile del modello suddiviso in formato GLB.

    • Name
      obj
      Type
      string
      Description

      URL scaricabile del modello suddiviso in formato OBJ.

    • Name
      fbx
      Type
      string
      Description

      URL scaricabile del modello suddiviso in formato FBX.

    • Name
      stl
      Type
      string
      Description

      URL scaricabile del modello suddiviso in formato STL. Tutte le parti sono fuse in un unico solido; richiedi 3mf per parti selezionabili separatamente.

    • Name
      usdz
      Type
      string
      Description

      URL scaricabile del modello suddiviso in formato USDZ.

    • Name
      blend
      Type
      string
      Description

      URL scaricabile del modello suddiviso in formato Blender.

    • Name
      3mf
      Type
      string
      Description

      URL scaricabile del modello suddiviso in formato 3MF.

  • Name
    thumbnail_url
    Type
    string
    Description

    URL scaricabile di un'anteprima renderizzata del modello suddiviso, con ciascuna parte in un colore distinto, nel layout richiesto.

  • Name
    prompt_ignored
    Type
    boolean
    Description

    true quando il prompt di una richiesta by_parts o by_color non ha indicato alcuna parte, per cui Meshy ha suddiviso il modello automaticamente — i nomi delle parti nel risultato sono quelli di Meshy, non i tuoi. Presente a partire da PENDING. Omesso per i task auto e ogni volta che il prompt è stato seguito.

  • Name
    part_count
    Type
    integer
    Description

    Numero di parti stampabili prodotte dallo split. I formati che supportano oggetti scena contengono un oggetto per parte; stl le fonde in un unico solido, e il conteggio continua a riportare il numero delle parti. Le schegge collassate che la segmentazione non è riuscita a trasformare in un pezzo stampabile vengono rimosse dai file prima dell'esportazione e non vengono conteggiate.

  • Name
    progress
    Type
    integer
    Description

    Avanzamento del task. Se il task non è ancora iniziato, questa proprietà sarà 0. Una volta che il task è completato con successo, diventerà 100.

  • Name
    status
    Type
    string
    Description

    Stato del task. I valori possibili sono uno tra PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Il numero di task precedenti.

  • Name
    created_at
    Type
    timestamp
    Description

    Timestamp di quando il task è stato creato, in millisecondi.

  • Name
    started_at
    Type
    timestamp
    Description

    Timestamp di quando il task è stato avviato, in millisecondi. Se il task non è ancora iniziato, questa proprietà sarà 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Timestamp di quando il task è stato completato, in millisecondi. Se il task non è ancora terminato, questa proprietà sarà 0.

  • Name
    task_error
    Type
    object
    Description

    Dettagli dell'errore per i task falliti. Consulta Errori per il riferimento completo dell'oggetto task_error. Se il controllo di sicurezza del fornitore del modello rifiuta il modello in input, il task fallisce con task_error.type invalid_input e code provider_content_refused. Consulta Errori.

  • Name
    consumed_credits
    Type
    integer
    Description

    Il numero di crediti consumati da questo task. Sempre presente: 10 una volta che il task è stato accettato, e 0 per i task FAILED perché l'addebito viene rimborsato in caso di fallimento. Anche eliminare un task mentre è ancora PENDING ne comporta il rimborso.

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
}