API di stampa multicolore

Converti i modelli 3D in formato 3MF multicolore per la stampa 3D, con una palette colori configurabile fino a 16 colori.


POST/openapi/v1/print/multi-color

Crea un'attività di stampa 3D multicolore

Questo endpoint crea una nuova attività di stampa 3D multicolore. L'attività converte un modello 3D in un file 3MF multicolore adatto alla stampa 3D.

Parametri

  • Name
    model_url
    Type
    string
    Obbligatorio
    Description

    URL pubblicamente accessibile o Data URI di un modello 3D. Attualmente supportiamo i formati .glb e .fbx.

  • Name
    max_colors
    Type
    integer
    predefinito 4
    Description

    Numero massimo di colori nella palette di output.

    Intervallo valido: da 1 a 16.

  • Name
    style
    Type
    string
    predefinito realistic
    Description

    Stile visivo dei colori del file 3MF generato.

    Valori disponibili:

    • realistic: campiona i colori direttamente dalla texture del modello per un dettaglio fine e fotorealistico. Produce un file più grande.
    • cartoon: appiattisce i colori in regioni uniformi e pulite per un aspetto stilizzato. Produce un file più piccolo.

    L'input deve contenere informazioni sul colore: realistic richiede una singola texture di colore base con coordinate UV su ogni parte della mesh; cartoon accetta anche colori per vertice. I modelli senza texture (bianchi) vengono rifiutati — vedi model_missing_texture.

Valori restituiti

La proprietà result della risposta contiene l'id della nuova attività di stampa 3D creata.

Modalità di errore

  • Name
    400 - Bad Request
    Description

    La richiesta non era accettabile. Cause comuni:

    • Parametro mancante: deve essere fornito model_url oppure input_task_id.
    • Formato del modello non valido: model_url punta a un file con un'estensione non supportata (sono supportati solo .glb e .fbx).
    • URL non raggiungibile: non è stato possibile scaricare model_url.
    • Attività di input non valida: input_task_id deve fare riferimento a un'attività riuscita.
    • max_colors non valido: il valore deve essere compreso tra 1 e 16.
    • style non valido: il valore deve essere realistic o cartoon.
    • Nessuna sorgente di colore: il modello di input non ha una texture di colore base (realistic ne richiede una singola, con UV, su ogni parte della mesh) né colori per vertice (cartoon accetta entrambi). Applica prima una texture al modello, oppure usa cartoon per i modelli con colori per vertice. I caricamenti .fbx vengono verificati dopo che l'attività li normalizza e falliscono con model_missing_texture invece.
  • Name
    401 - Unauthorized
    Description

    Autenticazione non riuscita. Controlla la tua chiave API.

  • Name
    402 - Payment Required
    Description

    Crediti insufficienti per eseguire questa attività.

  • Name
    429 - Too Many Requests
    Description

    Hai superato il tuo limite di frequenza.

Request

POST
/openapi/v1/print/multi-color
# Convert a 3D model to multi-color 3MF for printing
curl https://api.meshy.ai/openapi/v1/print/multi-color \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "max_colors": 8
  }'

Response

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

GET/openapi/v1/print/multi-color/:id

Recupera un'attività di stampa 3D multicolore

Questo endpoint recupera un'attività di stampa 3D multicolore tramite il suo ID.

Parametri

  • Name
    id
    Type
    path
    Description

    L'ID dell'attività di stampa 3D da recuperare.

Restituisce

L'oggetto dell'attività di stampa 3D.

Request

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

Response

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-multi-color",
  "model_urls": {
      "3mf": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.3mf?Expires=***"
},
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
"consumed_credits": 10
}

DELETE/openapi/v1/print/multi-color/:id

Elimina un'attività di stampa 3D multicolore

Questo endpoint elimina definitivamente un'attività di stampa 3D multicolore, inclusi tutti i modelli e i dati associati. Questa azione è irreversibile.

Parametri del percorso

  • Name
    id
    Type
    path
    Description

    L'ID dell'attività di stampa 3D multicolore 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 eseguire non sono rimborsabili, quindi eliminarla a metà esecuzione ti costerebbe sia i crediti sia il risultato. Attendi che raggiunga lo stato SUCCEEDED, FAILED o CANCELED, poi 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/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/print/multi-color/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/multi-color

Elenca attività di stampa 3D multicolore

Questo endpoint consente di recuperare un elenco di attività di stampa 3D multicolore.

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.

  • Name
    sort_by
    Type
    string
    Description

    Campo su cui 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 Oggetti Attività di Stampa 3D.

Request

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

Response

[
  {
    "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
    "type": "print-multi-color",
    "model_urls": {
      "3mf": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.3mf?Expires=***"
    },
    "progress": 100,
    "status": "SUCCEEDED",
    "preceding_tasks": 0,
    "created_at": 1699999999000,
    "started_at": 1700000000000,
    "finished_at": 1700000001000,
    "task_error": null,
  "consumed_credits": 10
  }
]

GET/openapi/v1/print/multi-color/:id/stream

Esegui lo streaming di un'attività di stampa 3D multicolore

Questo endpoint trasmette in streaming gli aggiornamenti in tempo reale di un'attività di stampa 3D multicolore tramite Server-Sent Events (SSE).

Parametri

  • Name
    id
    Type
    path
    Description

    Identificatore univoco dell'attività di stampa 3D multicolore da trasmettere in streaming.

Risultati restituiti

Restituisce un flusso di Oggetti Attività di Stampa 3D come Server-Sent Events.

Per le attività PENDING o IN_PROGRESS, il flusso di risposta includerà solo i campi necessari progress e status.

Request

GET
/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
curl -N https://api.meshy.ai/openapi/v1/print/multi-color/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.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
event: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "type": "print-multi-color",
  "model_urls": {
    "3mf": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/model.3mf?Expires=***"
  },
  "progress": 100,
  "status": "SUCCEEDED",
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
"consumed_credits": 10
}

The 3D Print Task Object

  • Name
    id
    Type
    string
    Description

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

  • Name
    type
    Type
    string
    Description

    Tipo del task di stampa 3D. Il valore è print-multi-color.

  • Name
    model_urls
    Type
    object
    Description

    URL scaricabile del file del modello 3D generato da Meshy. La proprietà per un formato verrà omessa se il formato non viene generato, invece di restituire una stringa vuota.

    • Name
      3mf
      Type
      string
      Description

      URL scaricabile del file 3MF multicolore.

  • Name
    progress
    Type
    integer
    Description

    Avanzamento del task. Se il task non è ancora iniziato, questa proprietà sarà 0. Una volta che il task è andato a buon fine, diventerà 100.

  • Name
    status
    Type
    string
    Description

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

  • 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 stato avviato, questa proprietà sarà 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Timestamp di quando il task è terminato, 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 all'oggetto task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Il numero di crediti consumati da questo task. Presente quando lo stato del task è PENDING, IN_PROGRESS o SUCCEEDED. Restituisce 0 per i task FAILED (i crediti vengono rimborsati in caso di fallimento).

The 3D Print Task Object

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-multi-color",
  "model_urls": {
      "3mf": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.3mf?Expires=***"
},
  "progress": 100,
  "status": "SUCCEEDED",
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
"consumed_credits": 10
}