API de Impressão Multicor

Converter modelos 3D para o formato 3MF multicor para impressão 3D, com uma paleta de cores configurável de até 16 cores.


POST/openapi/v1/print/multi-color

Create a Multi-Color 3D Print Task

Este endpoint cria uma nova tarefa de impressão 3D multi-cor. A tarefa converte um modelo 3D num ficheiro 3MF multi-cor adequado para impressão 3D.

Parâmetros

  • Name
    model_url
    Type
    string
    Obrigatório
    Description

    URL publicamente acessível ou Data URI de um modelo 3D. Atualmente suportamos os formatos .glb e .fbx.

  • Name
    max_colors
    Type
    integer
    predefinição 4
    Description

    Número máximo de cores na paleta de saída.

    Intervalo válido: 1 a 16.

  • Name
    style
    Type
    string
    predefinição realistic
    Description

    Estilo visual de cor do ficheiro 3MF gerado.

    Valores disponíveis:

    • realistic: Amostra as cores diretamente da textura do modelo para um detalhe fino e foto-realista. Produz um ficheiro maior.
    • cartoon: Achata as cores em regiões uniformes e limpas para um visual estilizado. Produz um ficheiro mais pequeno.

    A entrada deve conter cor: realistic requer uma única textura de cor base com coordenadas UV em cada parte da malha; cartoon também aceita cores por vértice. Modelos sem textura (brancos) são rejeitados — consulte model_missing_texture.

Retorna

A propriedade result da resposta contém o id da tarefa de impressão 3D recém-criada.

Modos de Falha

  • Name
    400 - Bad Request
    Description

    O pedido foi inaceitável. Causas comuns:

    • Parâmetro em falta: É necessário fornecer model_url ou input_task_id.
    • Formato de modelo inválido: O model_url aponta para um ficheiro com uma extensão não suportada (apenas .glb e .fbx são suportados).
    • URL inacessível: Não foi possível transferir o model_url.
    • Tarefa de entrada inválida: O input_task_id deve referir-se a uma tarefa bem-sucedida.
    • max_colors inválido: O valor deve estar entre 1 e 16.
    • style inválido: O valor deve ser realistic ou cartoon.
    • Sem fonte de cor: O modelo de entrada não tem uma textura de cor base (realistic precisa de uma, com UVs, em cada parte da malha) nem cores de vértice (cartoon aceita qualquer uma delas). Aplique textura ao modelo primeiro, ou use cartoon para modelos com cor de vértice. Os carregamentos .fbx são verificados após a tarefa os normalizar e falham com model_missing_texture em vez disso.
  • Name
    401 - Unauthorized
    Description

    A autenticação falhou. Por favor, verifique a sua chave de API.

  • Name
    402 - Payment Required
    Description

    Créditos insuficientes para realizar esta tarefa.

  • Name
    429 - Too Many Requests
    Description

    Excedeu o seu limite de taxa.

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

Obter uma Tarefa de Impressão 3D Multicolor

Este endpoint obtém uma tarefa de impressão 3D multicolor através do seu ID.

Parâmetros

  • Name
    id
    Type
    path
    Description

    O ID da tarefa de impressão 3D a obter.

Retorna

O objeto da Tarefa de Impressão 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

Eliminar uma Tarefa de Impressão 3D Multicolor

Este endpoint elimina permanentemente uma tarefa de impressão 3D multicolor, incluindo todos os modelos e dados associados. Esta ação é irreversível.

Parâmetros de Caminho

  • Name
    id
    Type
    path
    Description

    O ID da tarefa de impressão 3D multicolor a eliminar.

Estado da Tarefa

Uma tarefa que ainda está PENDING é eliminada e os créditos consumidos no momento da criação são reembolsados.

Uma tarefa que já está IN_PROGRESS não pode ser eliminada: o pedido é rejeitado com 409 Conflict e a tarefa continua a ser executada. Os créditos de uma tarefa que o worker já iniciou não são reembolsáveis, pelo que eliminá-la a meio da execução faria com que perdesse tanto os créditos como o resultado. Aguarde até que atinja o estado SUCCEEDED, FAILED ou CANCELED e só depois a elimine.

Uma tarefa num estado terminal (SUCCEEDED, FAILED ou CANCELED) é eliminada sem reembolso.

Devolve

Devolve 200 OK em caso de sucesso, ou 409 Conflict quando a tarefa está 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

Listar Tarefas de Impressão 3D Multicolor

Este endpoint permite obter uma lista de tarefas de impressão 3D multicolor.

Parâmetros

Atributos opcionais

  • Name
    page_num
    Type
    integer
    Description

    Número da página para paginação. Começa e assume por predefinição 1.

  • Name
    page_size
    Type
    integer
    Description

    Limite de itens por página. O valor predefinido é 10 itens. O máximo permitido é 100 itens.

  • Name
    sort_by
    Type
    string
    Description

    Campo pelo qual ordenar. Valores disponíveis:

    • +created_at: Ordenar pela hora de criação em ordem ascendente.
    • -created_at: Ordenar pela hora de criação em ordem descendente.

Retorna

Retorna uma lista paginada de Objetos de Tarefa de Impressão 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

Transmitir uma Tarefa de Impressão 3D Multicolor

Este endpoint transmite atualizações em tempo real para uma tarefa de impressão 3D multicolor utilizando Server-Sent Events (SSE).

Parâmetros

  • Name
    id
    Type
    path
    Description

    Identificador único da tarefa de impressão 3D multicolor a transmitir.

Retorna

Retorna um stream de The 3D Print Task Objects como Server-Sent Events.

Para tarefas PENDING ou IN_PROGRESS, o stream de resposta incluirá apenas os campos progress e status necessários.

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
}

O Objeto de Tarefa de Impressão 3D

  • Name
    id
    Type
    string
    Description

    Identificador único da tarefa. Embora utilizemos um UUID k-sortable para os ids das tarefas como detalhe de implementação, não deve fazer suposições sobre o formato do id.

  • Name
    type
    Type
    string
    Description

    Tipo da tarefa de Impressão 3D. O valor é print-multi-color.

  • Name
    model_urls
    Type
    object
    Description

    URL para download do ficheiro de modelo 3D gerado pela Meshy. A propriedade de um formato será omitida se o formato não for gerado, em vez de devolver uma string vazia.

    • Name
      3mf
      Type
      string
      Description

      URL para download do ficheiro 3MF multicolor.

  • Name
    progress
    Type
    integer
    Description

    Progress da tarefa. Se a tarefa ainda não tiver começado, esta propriedade será 0. Uma vez que a tarefa tenha sido concluída com sucesso, passará a ser 100.

  • Name
    status
    Type
    string
    Description

    Estado da tarefa. Os valores possíveis são um de PENDING, IN_PROGRESS, SUCCEEDED, FAILED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    A contagem de tarefas precedentes.

  • Name
    created_at
    Type
    timestamp
    Description

    Carimbo de data/hora de quando a tarefa foi criada, em milissegundos.

  • Name
    started_at
    Type
    timestamp
    Description

    Carimbo de data/hora de quando a tarefa foi iniciada, em milissegundos. Se a tarefa ainda não tiver começado, esta propriedade será 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Carimbo de data/hora de quando a tarefa foi terminada, em milissegundos. Se a tarefa ainda não tiver terminado, esta propriedade será 0.

  • Name
    task_error
    Type
    object
    Description

    Detalhes do erro para tarefas falhadas. Consulte Erros para a referência completa do objeto task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    O número de créditos consumidos por esta tarefa. Presente quando o estado da tarefa é PENDING, IN_PROGRESS, ou SUCCEEDED. Devolve 0 para tarefas FAILED (os créditos são reembolsados em caso de falha).

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
}