lowpoly será descontinuado a 30/10/2026. Mude de modelo antes destas datas para evitar erros nos pedidos.

API de Auto Split

Divida um modelo 3D em peças imprimíveis separadamente — automaticamente, pelas peças que indicar, ou por região de cor — com conectores opcionais; as regiões finas deixadas por um corte são sempre reforçadas para que cada peça seja impressa de forma sólida.


POST/openapi/v1/print/split

Create an Auto Split Task

Este endpoint cria uma nova tarefa de Auto Split. A tarefa corta o modelo de uma tarefa anterior em partes imprimíveis separadamente e devolve o modelo segmentado, com cada parte como o seu próprio objeto no ficheiro.

A tarefa é executada em segundo plano. Para saber quanto tempo demora habitualmente, consulte Tempos de Processamento.

Parâmetros

  • Name
    input_task_id
    Type
    string
    Obrigatório
    Description

    O ID de uma tarefa bem-sucedida cujo modelo se pretende dividir. Tipos de tarefa suportados: Imagem para 3D, Multi-imagem para 3D, Texto para 3D (pré-visualização), Remesh, Converter e Redimensionar. A tarefa deve ter o estado SUCCEEDED, e o seu modelo deve ter sido gerado com Meshy 6 ou Meshy 7 (ai_model meshy-6, meshy-7, meshy-7.1, ou latest). Modelos low-poly e Smart Topology (meshy-t2, meshy-t2.5) não são suportados. Um modelo com textura é aceite, mas a sua textura não é transportada para o resultado.

  • Name
    mode
    Type
    string
    predefinição auto
    Description

    Como o modelo é dividido em partes.

    Valores disponíveis:

    • auto: a Meshy escolhe os cortes. prompt é ignorado.
    • by_parts: corta ao longo das partes estruturais que nomear em prompt, como cabeça, braços e tronco.
    • by_color: corta ao longo das regiões de cor que nomear em prompt. Requer uma entrada gerada a partir de uma imagem carregada (Imagem para 3D ou Multi-imagem para 3D); outras entradas são rejeitadas com 400. Os limites das regiões de cor provêm da imagem de origem, não da textura do modelo de entrada. Para Multi-imagem para 3D, o Auto Split usa a primeira imagem de origem.
Aplica-se apenas quando mode = by_parts or by_color
  • Name
    prompt
    Type
    string
    Obrigatório
    Description

    Descreve as partes a dividir, em qualquer idioma. A Meshy lê entre 1 e 10 nomes de partes a partir do texto, por isso nomeie as peças em vez de descrever o modelo, por exemplo split into the figure and the base, ou head, torso, left arm, right arm, legs. Nomear uma única parte é aceitável: tudo o que não nomear torna-se uma parte restante, pelo que the head divide o modelo em cabeça e resto, tal como na aplicação web. Até 600 caracteres. Uma descrição que peça para não haver qualquer divisão, ou que nomeie mais de 10 partes, é rejeitada com 400 e nada é cobrado. Se a Meshy não conseguir ler nenhum nome de parte a partir da descrição, divide o modelo ao longo das partes que identifica na imagem de referência do modelo, no mode escolhido: a tarefa é mesmo assim executada e cobrada, e inclui prompt_ignored: true. Se o modelo não tiver imagem de referência, ou se a Meshy encontrar menos de duas partes na mesma, esse pedido é rejeitado com 400 e nada é cobrado.

  • Name
    target_formats
    Type
    array
    predefinição ["glb"]
    Description

    Formatos em que o modelo dividido é exportado. Os formatos que suportam objetos de cena (glb, obj, fbx, usdz, blend, 3mf) transportam cada parte como um objeto separado; stl não tem noção de objetos separados, pelo que funde todas as partes num único sólido organizado por layout (peça 3mf para partes selecionáveis separadamente num software de corte). glb é sempre produzido e devolvido em model_urls; indique quaisquer outros formatos que pretenda adicionalmente.

    Valores disponíveis: glb, obj, fbx, stl, usdz, blend, 3mf.

  • Name
    layout
    Type
    string
    predefinição assembled
    Description

    Como as partes são organizadas em cada formato de saída, e na miniatura.

    Valores disponíveis:

    • assembled: as partes permanecem onde o modelo de origem as tinha.
    • on_plate: as partes são colocadas na horizontal e espalhadas na placa de construção, prontas a cortar — a mesma organização da vista On Plate da aplicação web.

    Em ambos os layouts, um fragmento colapsado ou peça semelhante a um ponto resultante de um corte é removido antes da exportação, pelo que cada parte obtida é imprimível. Os formatos que suportam objetos de cena contêm um objeto por parte; stl funde-os num único sólido.

  • Name
    connectors
    Type
    boolean
    predefinição false
    Description

    Adiciona conectores de tipo macho-fêmea em cada corte, para que as partes impressas encaixem entre si.

Aplica-se apenas quando connectors = true
  • Name
    connector_type
    Type
    string
    predefinição cube
    Description

    A forma do conector em cada superfície de corte.

    Valores disponíveis: cube, cylinder.

  • Name
    connector_size
    Type
    number
    predefinição 0.5
    Description

    Tamanho do conector relativo à superfície de corte.

    Intervalo válido: 0.1 a 0.8.

  • Name
    connector_height
    Type
    number
    predefinição 0.1
    Description

    A distância a que o conector se estende da superfície de corte, relativamente à superfície de corte.

    Intervalo válido: 0.1 a 0.8.

Devolve

A propriedade result da resposta contém o id da tarefa de Auto Split recém-criada.

Modos de Falha

  • Name
    400 - Bad Request
    Description

    O pedido foi considerado inaceitável. Causas comuns:

    • Prompt em falta: prompt é obrigatório quando mode é by_parts ou by_color.
    • O prompt não descreve nenhuma divisão, ou descreve demasiadas partes: by_parts / by_color aceita entre 1 e 10 peças nomeadas. Uma descrição que peça para manter o modelo numa só peça, ou que nomeie mais de 10 partes, é rejeitada. Nada é cobrado.
    • Tarefa de entrada não suportada: input_task_id deve referir-se a uma tarefa bem-sucedida de um tipo suportado, gerada com Meshy 6 ou Meshy 7.
    • Sem imagem de referência: by_color requer uma entrada gerada a partir de uma imagem carregada.
    • Conector fora do intervalo: connector_size ou connector_height está fora do intervalo 0.1 a 0.8.
  • 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
    404 - Not Found
    Description

    O input_task_id não existe ou não pertence à sua conta.

  • Name
    429 - Too Many Requests
    Description

    Excedeu o seu limite de taxa. Os pedidos by_parts e by_color partilham também um limite de análise de prompt de 12 pedidos por minuto por conta.

  • Name
    503 - Service Unavailable
    Description

    A divisão baseada em prompt (by_parts e by_color) está temporariamente indisponível. Tente novamente mais tarde, ou utilize mode: "auto", que não é afetado. Nada é cobrado.

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

Obter uma tarefa de Auto Split

Este endpoint obtém uma tarefa de Auto Split através do seu ID.

Parâmetros

  • Name
    id
    Type
    path
    Description

    O ID da tarefa de Auto Split a obter.

Retorno

O objeto da tarefa de 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

Eliminar uma Tarefa de Auto Split

Este endpoint elimina permanentemente uma tarefa de Auto Split, 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 Auto Split 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 em execução. Os créditos de uma tarefa que o worker já começou a processar 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.

Retorna

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

Listar Tarefas de Auto Split

Este endpoint permite obter uma lista de tarefas de Auto Split.

Parâmetros

Atributos opcionais

  • Name
    page_num
    Type
    integer
    Description

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

  • Name
    page_size
    Type
    integer
    Description

    Limite do tamanho da página. O valor predefinido é 10 itens. O máximo permitido é 100 itens; valores superiores são ajustados para 100.

  • Name
    sort_by
    Type
    string
    Description

    Campo pelo qual ordenar. Valores disponíveis:

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

Retorna

Retorna uma lista paginada de Objetos de Tarefa de Auto Split.

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

Transmitir uma Tarefa de Auto Split

Este endpoint transmite atualizações em tempo real para uma tarefa de Auto Split através de Server-Sent Events (SSE).

Parâmetros

  • Name
    id
    Type
    path
    Description

    Identificador único da tarefa de Auto Split a transmitir.

Retorna

Retorna um fluxo de The Auto Split Task Objects como Server-Sent Events.

Cada evento message transporta o objeto de tarefa completo, conforme devolvido por Retrieve an Auto Split Task, incluindo consumed_credits, os carimbos de data/hora e prompt_ignored; enquanto a tarefa está PENDING ou IN_PROGRESS, os campos que mudam entre frames são progress, status, started_at e preceding_tasks, e model_urls, thumbnail_url e part_count aparecem assim que atinge SUCCEEDED. Um evento error transporta apenas status_code e message, por isso deve-se distinguir pelo nome do evento antes de ler 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

Uma tarefa de Auto Split contém apenas as propriedades abaixo. Os campos de prompt de geração que outros objetos de tarefa incluem (name, object_prompt, texture_prompt, etc.), o model_url único e texture_urls nunca são preenchidos numa divisão e não são devolvidos. As propriedades que são preenchidas à medida que a tarefa decorre (thumbnail_url, model_urls, os carimbos de data/hora) estão sempre presentes, vazias até terem um valor, pelo que o conjunto de chaves não muda entre PENDING e SUCCEEDED.

  • Name
    id
    Type
    string
    Description

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

  • Name
    type
    Type
    string
    Description

    Tipo da tarefa. O valor é print-split.

  • Name
    model_urls
    Type
    object
    Description

    URLs transferíveis para o modelo dividido, uma por cada formato solicitado. Os formatos que suportam objetos de cena mantêm cada parte como um objeto separado; stl funde-os num único sólido. A propriedade de um formato será omitida se o formato não tiver sido solicitado.

    • Name
      glb
      Type
      string
      Description

      URL transferível para o modelo dividido em formato GLB.

    • Name
      obj
      Type
      string
      Description

      URL transferível para o modelo dividido em formato OBJ.

    • Name
      fbx
      Type
      string
      Description

      URL transferível para o modelo dividido em formato FBX.

    • Name
      stl
      Type
      string
      Description

      URL transferível para o modelo dividido em formato STL. Todas as partes são fundidas num único sólido; solicite 3mf para obter partes selecionáveis separadamente.

    • Name
      usdz
      Type
      string
      Description

      URL transferível para o modelo dividido em formato USDZ.

    • Name
      blend
      Type
      string
      Description

      URL transferível para o modelo dividido em formato Blender.

    • Name
      3mf
      Type
      string
      Description

      URL transferível para o modelo dividido em formato 3MF.

  • Name
    thumbnail_url
    Type
    string
    Description

    URL transferível para uma pré-visualização renderizada do modelo dividido, com cada parte numa cor distinta, no layout solicitado.

  • Name
    prompt_ignored
    Type
    boolean
    Description

    true quando o prompt de um pedido by_parts ou by_color não nomeou quaisquer partes, pelo que a Meshy dividiu o modelo automaticamente — os nomes das partes no resultado são da Meshy, não os seus. Presente a partir de PENDING. Omitido para tarefas auto e sempre que o prompt tenha sido seguido.

  • Name
    part_count
    Type
    integer
    Description

    Número de partes imprimíveis que a divisão produziu. Os formatos que suportam objetos de cena contêm um objeto por parte; stl funde-os num único sólido, e a contagem continua a reportar as partes. Fragmentos reduzidos que a segmentação não conseguiu transformar numa peça imprimível são removidos dos ficheiros antes da exportação e não são contabilizados.

  • Name
    progress
    Type
    integer
    Description

    Progresso da tarefa. Se a tarefa ainda não tiver sido iniciada, esta propriedade será 0. Assim que a tarefa for bem-sucedida, passará a 100.

  • Name
    status
    Type
    string
    Description

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

  • 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 sido iniciada, esta propriedade será 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Carimbo de data/hora de quando a tarefa foi concluída, em milissegundos. Se a tarefa ainda não tiver sido concluída, 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. Se a verificação de segurança do fornecedor do modelo recusar o modelo de entrada, a tarefa falha com task_error.type invalid_input e code provider_content_refused. Consulte Erros.

  • Name
    consumed_credits
    Type
    integer
    Description

    O número de créditos consumidos por esta tarefa. Sempre presente: 10 assim que a tarefa for aceite, e 0 para tarefas FAILED, uma vez que a cobrança é reembolsada em caso de falha. Eliminar uma tarefa enquanto ainda está PENDING também resulta no seu reembolso.

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
}