lowpoly será descontinuado em 30 de out. de 2026. Troque de modelo antes dessas datas para evitar erros nas solicitações.

API do Auto Split

Divida um modelo 3D em partes que podem ser impressas separadamente — automaticamente, pelas partes que você nomear ou por região de cor — com conectores opcionais; regiões finas deixadas por um corte são sempre reforçadas para que cada parte 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 retorna o modelo segmentado, com cada parte como seu próprio objeto no arquivo.

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

Parâmetros

  • Name
    input_task_id
    Type
    string
    Obrigatório
    Description

    O ID de uma tarefa bem-sucedida cujo modelo deve ser dividido. Tipos de tarefa suportados: Imagem para 3D, Multi-imagem para 3D, Texto para 3D (preview), Remesh, Converter e Redimensionar. A tarefa deve ter o status SUCCEEDED, e seu modelo deve ter sido gerado com o 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 é aceito, e sua textura não é carregada para o resultado.

  • Name
    mode
    Type
    string
    padrão auto
    Description

    Como o modelo é dividido em partes.

    Valores disponíveis:

    • auto: O Meshy escolhe os cortes. prompt é ignorado.
    • by_parts: Corta ao longo das partes estruturais que você nomear em prompt, como cabeça, braços e tronco.
    • by_color: Corta ao longo das regiões de cor que você nomear em prompt. Requer uma entrada gerada a partir de uma imagem enviada (Imagem para 3D ou Multi-imagem para 3D); outras entradas são rejeitadas com 400. Os limites das regiões de cor vê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 somente quando mode = by_parts or by_color
  • Name
    prompt
    Type
    string
    Obrigatório
    Description

    Descreve as partes nas quais dividir, em qualquer idioma. O Meshy lê de 1 a 10 nomes de partes a partir disso, então nomeie as peças em vez de descrever o modelo, por exemplo dividir em figura e base, ou cabeça, tronco, braço esquerdo, braço direito, pernas. Nomear uma única parte é aceitável: tudo o que você não nomear se torna uma parte remanescente, então a cabeça divide o modelo em cabeça e o resto, assim como no aplicativo web. Até 600 caracteres. Uma descrição que pede para não dividir nada, ou que nomeia mais de 10 partes, é rejeitada com 400 e nada é cobrado. Se o Meshy não conseguir ler nenhum nome de parte a partir da descrição, ele divide ao longo das partes que identifica na imagem de referência do modelo, no modo escolhido: a tarefa ainda é executada e cobrada, e carrega prompt_ignored: true. Se o modelo não tiver imagem de referência, ou se o Meshy encontrar menos de duas partes nela, essa solicitação é rejeitada com 400 e nada é cobrado.

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

    Formatos nos quais exportar o modelo dividido. Formatos que suportam objetos de cena (glb, obj, fbx, usdz, blend, 3mf) carregam cada parte como um objeto separado; stl não tem noção de objetos separados, então funde cada parte em um único sólido organizado por layout (solicite 3mf para partes selecionáveis separadamente em um fatiador). glb é sempre produzido e retornado em model_urls; liste quaisquer outros formatos que você deseje adicionalmente.

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

  • Name
    layout
    Type
    string
    padrã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 dispostas planas e espalhadas na mesa de impressão, prontas para fatiar — o mesmo arranjo da visualização On Plate do aplicativo web.

    Em ambos os layouts, uma lasca colapsada ou peça semelhante a um ponto resultante de um corte é removida antes da exportação, então cada parte que você obtém é imprimível. Formatos que suportam objetos de cena mantêm um objeto por parte; stl os funde em um único sólido.

  • Name
    connectors
    Type
    boolean
    padrão false
    Description

    Adiciona conectores de encaixe (espiga e mortalha) em cada corte para que as partes impressas se encaixem.

Aplica-se somente quando connectors = true
  • Name
    connector_type
    Type
    string
    padrão cube
    Description

    O formato do conector em cada superfície de corte.

    Valores disponíveis: cube, cylinder.

  • Name
    connector_size
    Type
    number
    padrão 0.5
    Description

    Tamanho do conector em relação à superfície de corte.

    Intervalo válido: 0.1 a 0.8.

  • Name
    connector_height
    Type
    number
    padrão 0.1
    Description

    O quanto o conector se estende a partir da superfície de corte, em relação à superfície de corte.

    Intervalo válido: 0.1 a 0.8.

Retornos

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

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

    • Prompt ausente: prompt é obrigatório quando mode é by_parts ou by_color.
    • O prompt não descreve nenhuma divisão, ou descreve partes demais: by_parts / by_color aceita de 1 a 10 peças nomeadas. Uma descrição que pede para manter o modelo em uma única peça, ou que nomeia mais de 10 partes, é rejeitada. Nada é cobrado.
    • Tarefa de entrada não suportada: input_task_id deve se referir 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 enviada.
    • Conector fora do intervalo: connector_size ou connector_height está fora do intervalo de 0.1 a 0.8.
  • Name
    401 - Unauthorized
    Description

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

  • Name
    402 - Payment Required
    Description

    Créditos insuficientes para executar 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

    Você excedeu seu limite de taxa. As solicitações by_parts e by_color também compartilham um limite de análise de prompt de 12 solicitações 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 use 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

Retrieve an Auto Split Task

Este endpoint recupera uma tarefa de Auto Split pelo seu ID.

Parâmetros

  • Name
    id
    Type
    path
    Description

    O ID da tarefa de Auto Split a ser recuperada.

Retornos

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

Excluir uma tarefa de Auto Split

Este endpoint exclui permanentemente uma tarefa de Auto Split, incluindo todos os modelos e dados associados. Essa ação é irreversível.

Parâmetros de Caminho

  • Name
    id
    Type
    path
    Description

    O ID da tarefa de Auto Split 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. Os créditos de uma tarefa que o worker já começou a processar não são reembolsáveis, portanto excluí-la no meio da execução custaria tanto os créditos quanto o resultado. Aguarde até que ela alcance 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/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

List Auto Split Tasks

Este endpoint permite recuperar 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 padrão é 10 itens. O máximo permitido é 100 itens; valores maiores são limitados a 100.

  • Name
    sort_by
    Type
    string
    Description

    Campo para ordenação. Valores disponíveis:

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

Retornos

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 usando Server-Sent Events (SSE).

Parâmetros

  • Name
    id
    Type
    path
    Description

    Identificador único da tarefa de Auto Split a ser transmitida.

Retornos

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

Todo evento message carrega o objeto de tarefa completo, conforme retornado por Retrieve an Auto Split Task, incluindo consumed_credits, os timestamps e prompt_ignored; enquanto a tarefa está PENDING ou IN_PROGRESS, os campos que mudam entre os quadros são progress, status, started_at e preceding_tasks, e model_urls, thumbnail_url e part_count aparecem quando ela chega a SUCCEEDED. Um evento error carrega apenas status_code e message, então verifique o 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
}

O Objeto de Tarefa Auto Split

Uma tarefa Auto Split carrega apenas as propriedades abaixo. Os campos de prompt de geração que outros objetos de tarefa incluem (name, object_prompt, texture_prompt e assim por diante), o model_url único, e texture_urls nunca são preenchidos para uma divisão (split) e não são retornados. Propriedades que são preenchidas à medida que a tarefa é executada (thumbnail_url, model_urls, os carimbos de data/hora) estão sempre presentes, vazias até que tenham um valor, de modo que o conjunto de chaves não muda entre PENDING e SUCCEEDED.

  • Name
    id
    Type
    string
    Description

    Identificador único para a tarefa. Embora usemos um UUID k-sortable para ids de tarefas como detalhe de implementação, você não deve fazer 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 para download do modelo dividido, uma por formato solicitado. Formatos que suportam objetos de cena mantêm cada parte como um objeto separado; stl as funde em um único sólido. A propriedade de um formato será omitida se o formato não tiver sido solicitado.

    • Name
      glb
      Type
      string
      Description

      URL para download do modelo dividido no formato GLB.

    • Name
      obj
      Type
      string
      Description

      URL para download do modelo dividido no formato OBJ.

    • Name
      fbx
      Type
      string
      Description

      URL para download do modelo dividido no formato FBX.

    • Name
      stl
      Type
      string
      Description

      URL para download do modelo dividido no formato STL. Todas as partes são fundidas em um único sólido; solicite 3mf para partes selecionáveis separadamente.

    • Name
      usdz
      Type
      string
      Description

      URL para download do modelo dividido no formato USDZ.

    • Name
      blend
      Type
      string
      Description

      URL para download do modelo dividido no formato Blender.

    • Name
      3mf
      Type
      string
      Description

      URL para download do modelo dividido no formato 3MF.

  • Name
    thumbnail_url
    Type
    string
    Description

    URL para download de uma pré-visualização renderizada do modelo dividido, com cada parte em uma cor distinta, no layout solicitado.

  • Name
    prompt_ignored
    Type
    boolean
    Description

    true quando o prompt de uma solicitação by_parts ou by_color não nomeou nenhuma parte, então o Meshy dividiu o modelo automaticamente — os nomes das partes no resultado são do Meshy, não os seus. Presente a partir de PENDING. Omitido para tarefas auto e sempre que o prompt foi seguido.

  • Name
    part_count
    Type
    integer
    Description

    Número de partes imprimíveis que a divisão produziu. Formatos que suportam objetos de cena carregam um objeto por parte; stl as funde em um único sólido, e a contagem ainda reporta as partes. Fragmentos colapsados que a segmentação não conseguiu transformar em uma peça imprimível são removidos dos arquivos antes da exportação e não são contados.

  • Name
    progress
    Type
    integer
    Description

    Progresso da tarefa. Se a tarefa ainda não foi iniciada, essa propriedade será 0. Uma vez que a tarefa tenha sido bem-sucedida, 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, 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 foi iniciada, essa 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, essa propriedade será 0.

  • Name
    task_error
    Type
    object
    Description

    Detalhes do erro para tarefas com falha. Consulte Erros para a referência completa do objeto task_error. Se a verificação de segurança do provedor 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 aceita, e 0 para tarefas FAILED porque a cobrança é reembolsada em caso de falha. Excluir uma tarefa enquanto ela ainda está PENDING também a reembolsa.

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
}