API de Impressão Multicolorida

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


POST/openapi/v1/print/multi-color

Criar uma Tarefa de Impressão 3D Multi-Color

Este endpoint cria uma nova tarefa de impressão 3D multi-color. A tarefa converte um modelo 3D em um arquivo 3MF multi-color 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 oferecemos suporte aos formatos .glb e .fbx.

  • Name
    max_colors
    Type
    integer
    padrão 4
    Description

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

    Intervalo válido: 1 a 16.

  • Name
    style
    Type
    string
    padrão realistic
    Description

    Estilo visual de cor do arquivo 3MF gerado.

    Valores disponíveis:

    • realistic: Amostra as cores diretamente da textura do modelo para obter detalhes finos e fotorrealistas. Produz um arquivo maior.
    • cartoon: Simplifica as cores em regiões uniformes e limpas para um visual estilizado. Produz um arquivo menor.

    A entrada deve conter informações de cor: realistic exige 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 — veja model_missing_texture.

Retornos

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

    A solicitação foi inaceitável. Causas comuns:

    • Parâmetro ausente: model_url ou input_task_id devem ser fornecidos.
    • Formato de modelo inválido: O model_url aponta para um arquivo com uma extensão não suportada (apenas .glb e .fbx são suportados).
    • URL inacessível: Não foi possível baixar o model_url.
    • Tarefa de entrada inválida: O input_task_id deve se referir 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.
    • Nenhuma fonte de cor: O modelo de entrada não possui textura de cor base (realistic requer uma única, com UVs, em cada parte da malha) nem cores de vértice (cartoon aceita ambos). Aplique textura ao modelo primeiro, ou use cartoon para modelos com cores de vértice. Uploads em .fbx são verificados após a tarefa normalizá-los e falham com model_missing_texture nesse caso.
  • Name
    401 - Unauthorized
    Description

    Falha na autenticação. Verifique sua chave de API.

  • Name
    402 - Payment Required
    Description

    Créditos insuficientes para realizar esta tarefa.

  • Name
    429 - Too Many Requests
    Description

    Você excedeu 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

Recuperar uma Tarefa de Impressão 3D Multicolorida

Este endpoint recupera uma tarefa de impressão 3D multicolorida pelo seu ID.

Parâmetros

  • Name
    id
    Type
    path
    Description

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

Retornos

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

Excluir uma Tarefa de Impressão 3D Multicolorida

Este endpoint exclui permanentemente uma tarefa de impressão 3D multicolorida, 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 multicolorida a ser excluída.

Status da Tarefa

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

Uma tarefa que já está IN_PROGRESS não pode ser excluída: a solicitação é rejeitada com 409 Conflict e a tarefa continua em execução. Créditos de uma tarefa que o worker já iniciou não são reembolsáveis, então excluí-la no meio da execução custaria tanto os créditos quanto o resultado. Aguarde até que ela atinja SUCCEEDED, FAILED ou CANCELED, e então exclua-a.

Uma tarefa em um estado terminal (SUCCEEDED, FAILED ou CANCELED) é excluída sem reembolso.

Retornos

Retorna 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 Multicolorida

Este endpoint permite recuperar uma lista de tarefas de impressão 3D multicolorida.

Parâmetros

Atributos opcionais

  • Name
    page_num
    Type
    integer
    Description

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

  • Name
    page_size
    Type
    integer
    Description

    Limite de itens por página. O padrão é 10 itens. O máximo permitido é 100 itens.

  • Name
    sort_by
    Type
    string
    Description

    Campo pelo qual ordenar. Valores disponíveis:

    • +created_at: Ordena pelo horário de criação em ordem crescente.
    • -created_at: Ordena pelo horário de criação em ordem decrescente.

Retornos

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

Stream a Multi-Color 3D Print Task

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

Parâmetros

  • Name
    id
    Type
    path
    Description

    Identificador único da tarefa de impressão 3D multicolorida a ser transmitida.

Retornos

Retorna um stream de Objetos de Tarefa de Impressão 3D como Server-Sent Events.

Para tarefas PENDING ou IN_PROGRESS, o stream de resposta incluirá apenas os campos necessários 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
}

O Objeto de Tarefa de Impressão 3D

  • Name
    id
    Type
    string
    Description

    Identificador único da tarefa. Embora usemos um UUID k-sortable para os ids de tarefa como detalhe de implementação, você não deve fazer nenhuma suposição 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 arquivo de modelo 3D gerado pelo Meshy. A propriedade de um formato será omitida se o formato não for gerado, em vez de retornar uma string vazia.

    • Name
      3mf
      Type
      string
      Description

      URL para download do arquivo 3MF multicolorido.

  • Name
    progress
    Type
    integer
    Description

    Progress da tarefa. Se a tarefa ainda não foi iniciada, esta propriedade será 0. Uma vez que a tarefa tenha sido concluída com sucesso, isso se tornará 100.

  • Name
    status
    Type
    string
    Description

    Status da tarefa. Os valores possíveis são um dos seguintes: 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 foi iniciada, esta propriedade será 0.

  • Name
    finished_at
    Type
    timestamp
    Description

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

  • Name
    task_error
    Type
    object
    Description

    Detalhes de erro para tarefas com falha. 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 status da tarefa é PENDING, IN_PROGRESS ou SUCCEEDED. Retorna 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
}