meshy-5 será descontinuado em 10 de out. de 2026. 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 imprimíveis 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

Criar uma tarefa de Auto Split

Este endpoint cria uma nova tarefa de Auto Split. A tarefa corta o modelo de uma tarefa anterior em partes que podem ser impressas separadamente e retorna o modelo segmentado, com cada parte como seu próprio objeto no arquivo.

Parâmetros

  • Name
    input_task_id
    Type
    string
    Obrigatório
    Description

    O ID de uma tarefa bem-sucedida cujo modelo 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 Meshy 6 ou Meshy 7 (ai_model meshy-6, meshy-7, meshy-7.1, ou latest). Modelos low-poly e Smart Topology (meshy-t2) não são suportados. Um modelo texturizado é 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: A 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. A 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 split into the figure and the base, ou head, torso, left arm, right arm, legs. Nomear uma única parte é aceitável: tudo o que você não nomeou se torna uma parte restante, então the head divide o modelo entre a cabeça e o restante, como no aplicativo web. Até 600 caracteres. Dois modos de falha: uma descrição que pede para não haver divisão alguma, ou que nomeia mais de 10 partes, é rejeitada com 400 e nada é cobrado; uma descrição que a Meshy não consegue interpretar de forma alguma volta para auto, a tarefa ainda é executada e cobrada, e sua resposta traz prompt_ignored: true.

  • 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 desejar além dele.

    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 estavam no modelo de origem.
    • on_plate: As partes são dispostas planas e espalhadas na mesa de impressão, prontas para fatiar — o mesmo arranjo da visão On Plate do aplicativo web.

    Em ambos os layouts, uma lasca colapsada ou pedaço semelhante a um ponto remanescente de um corte é removido antes da exportação, de modo que toda parte que você recebe seja 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 do tipo espiga e encaixe 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

    A distância que 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.
    • Prompt não descreve nenhuma divisão, ou nomeia 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 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 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

    Você excedeu seu limite de taxa. 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 Rota

  • 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, 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/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 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 de itens por 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 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 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.

Cada evento message carrega o objeto completo da tarefa, 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 frames são progress, status, started_at e preceding_tasks, e model_urls, thumbnail_url e part_count aparecem assim que ela atinge SUCCEEDED. Um evento error carrega apenas status_code e message, então diferencie 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
}

O Objeto de Tarefa de Auto Split

Uma tarefa de 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 único model_url e o texture_urls nunca são preenchidos para um split e não são retornados. Propriedades que são preenchidas conforme a tarefa é executada (thumbnail_url, model_urls, os carimbos de data/hora) estão sempre presentes, vazias até terem um valor, portanto o conjunto de chaves não muda entre PENDING e SUCCEEDED.

  • 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. O valor é print-split.

  • Name
    model_urls
    Type
    object
    Description

    URLs para download do modelo dividido, uma para cada formato solicitado. Formatos que suportam objetos de cena mantêm cada parte como um objeto separado; stl funde tudo 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 em formato GLB.

    • Name
      obj
      Type
      string
      Description

      URL para download do modelo dividido em formato OBJ.

    • Name
      fbx
      Type
      string
      Description

      URL para download do modelo dividido em formato FBX.

    • Name
      stl
      Type
      string
      Description

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

    • Name
      usdz
      Type
      string
      Description

      URL para download do modelo dividido em formato USDZ.

    • Name
      blend
      Type
      string
      Description

      URL para download do modelo dividido em formato Blender.

    • Name
      3mf
      Type
      string
      Description

      URL para download do modelo dividido em 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 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 foi seguido.

  • Name
    part_count
    Type
    integer
    Description

    Número de partes imprimíveis que o split produziu. Formatos que suportam objetos de cena carregam um objeto por parte; stl funde tudo 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, esta propriedade será 0. Quando a tarefa for bem-sucedida, ela se tornará 100.

  • Name
    status
    Type
    string
    Description

    Status da tarefa. Os valores possíveis são 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, 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. Sempre presente: 10 assim que a tarefa é aceita, e 0 para tarefas FAILED, pois 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
}