lowpoly se retira el 30 oct 2026. Cambia de modelo antes de estas fechas para evitar errores en las solicitudes.

API de Auto Split

Divide un modelo 3D en partes que se pueden imprimir por separado, de forma automática, según las partes que indiques o por región de color, con conectores opcionales; las regiones delgadas que deja un corte siempre se refuerzan para que cada parte se imprima sólida.


POST/openapi/v1/print/split

Create an Auto Split Task

Este endpoint crea una nueva tarea de Auto Split. La tarea corta el modelo de una tarea anterior en partes imprimibles por separado y devuelve el modelo segmentado, con cada parte como su propio objeto en el archivo.

La tarea se ejecuta en segundo plano. Para saber cuánto suele tardar, consulta Tiempos de procesamiento.

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"
}

Parámetros

  • Name
    input_task_id
    Type
    string
    Requerido
    Description

    El ID de una tarea con estado SUCCEEDED cuyo modelo se va a dividir. Tipos de tarea admitidos: Imagen a 3D, Multi-imagen a 3D, Texto a 3D (vista previa), Remallado, Convertir y Redimensionar. La tarea debe tener un estado SUCCEEDED, y su modelo debe haberse generado con Meshy 6 o Meshy 7 (ai_model meshy-6, meshy-7, meshy-7.1, o latest). No se admiten modelos low-poly ni de Smart Topology (meshy-t2, meshy-t2.5). Se acepta un modelo con textura, pero su textura no se traslada al resultado.

  • Name
    mode
    Type
    string
    predeterminado auto
    Description

    Cómo se divide el modelo en partes.

    Valores disponibles:

    • auto: Meshy elige los cortes. Se ignora prompt.
    • by_parts: Corta según las partes estructurales que nombres en prompt, como cabeza, brazos y torso.
    • by_color: Corta según las regiones de color que nombres en prompt. Requiere una entrada generada a partir de una imagen subida (Imagen a 3D o Multi-imagen a 3D); otras entradas se rechazan con 400. Los límites de las regiones de color provienen de la imagen de origen, no de la textura del modelo de entrada. Para Multi-imagen a 3D, Auto Split usa la primera imagen de origen.
Solo aplica cuando mode = by_parts or by_color
  • Name
    prompt
    Type
    string
    Requerido
    Description

    Describe las partes en las que dividir, en cualquier idioma. Meshy lee de 1 a 10 nombres de partes a partir de ella, así que nombra las piezas en lugar de describir el modelo, por ejemplo split into the figure and the base, o head, torso, left arm, right arm, legs. Nombrar una sola parte es válido: todo lo que no nombres se convierte en una parte restante única, así que the head divide el modelo en la cabeza y el resto, igual que en la aplicación web. Hasta 600 caracteres. Una descripción que pida no dividir en absoluto, o que nombre más de 10 partes, se rechaza con 400 y no se cobra nada. Si Meshy no puede leer ningún nombre de parte a partir de la descripción, divide según las partes que identifique en la imagen de referencia del modelo, en el mode que hayas elegido: la tarea se ejecuta y se cobra igualmente, y lleva prompt_ignored: true. Si el modelo no tiene imagen de referencia, o Meshy encuentra menos de dos partes en ella, esa solicitud se rechaza con 400 en su lugar y no se cobra nada.

  • Name
    target_formats
    Type
    array
    predeterminado ["glb"]
    Description

    Formatos en los que exportar el modelo dividido. Los formatos que admiten objetos de escena (glb, obj, fbx, usdz, blend, 3mf) llevan cada parte como un objeto independiente; stl no tiene noción de objetos separados, así que fusiona todas las partes en un único sólido dispuesto según layout (solicita 3mf para obtener partes seleccionables por separado en un laminador). glb siempre se produce y se devuelve en model_urls; indica cualquier otro formato adicional que desees.

    Valores disponibles: glb, obj, fbx, stl, usdz, blend, 3mf.

  • Name
    layout
    Type
    string
    predeterminado assembled
    Description

    Cómo se disponen las partes en cada formato de salida, y en la miniatura.

    Valores disponibles:

    • assembled: Las partes permanecen donde las tenía el modelo de origen.
    • on_plate: Las partes se colocan planas y distribuidas sobre la plataforma de impresión, listas para laminar — la misma disposición que la vista On Plate de la aplicación web.

    En ambas disposiciones, cualquier fragmento colapsado o pieza parecida a un punto que quede de un corte se elimina antes de exportar, de modo que cada parte que obtienes es imprimible. Los formatos que admiten objetos de escena contienen un objeto por parte; stl los fusiona en un único sólido.

  • Name
    connectors
    Type
    boolean
    predeterminado false
    Description

    Añade conectores de espiga y mortaja en cada corte para que las partes impresas encajen entre sí.

Solo aplica cuando connectors = true
  • Name
    connector_type
    Type
    string
    predeterminado cube
    Description

    La forma del conector en cada superficie de corte.

    Valores disponibles: cube, cylinder.

  • Name
    connector_size
    Type
    number
    predeterminado 0.5
    Description

    Tamaño del conector en relación con la superficie de corte.

    Rango válido: de 0.1 a 0.8.

  • Name
    connector_height
    Type
    number
    predeterminado 0.1
    Description

    Cuánto sobresale el conector de la superficie de corte, en relación con la superficie de corte.

    Rango válido: de 0.1 a 0.8.

Resultados

La propiedad result de la respuesta contiene el id de la tarea de Auto Split recién creada.

Modos de fallo

  • Name
    400 - Bad Request
    Description

    La solicitud no era aceptable. Causas comunes:

    • Falta el prompt: prompt es obligatorio cuando mode es by_parts o by_color.
    • El prompt no describe ninguna división, o nombra demasiadas partes: by_parts / by_color acepta de 1 a 10 piezas nombradas. Se rechaza una descripción que pida mantener el modelo en una sola pieza, o que nombre más de 10 partes. No se cobra nada.
    • Tarea de entrada no admitida: input_task_id debe referirse a una tarea con estado SUCCEEDED de un tipo admitido, generada con Meshy 6 o Meshy 7.
    • Sin imagen de referencia: by_color requiere una entrada generada a partir de una imagen subida.
    • Conector fuera de rango: connector_size o connector_height está fuera de 0.1 a 0.8.
  • Name
    401 - Unauthorized
    Description

    Falló la autenticación. Por favor, comprueba tu clave de API.

  • Name
    402 - Payment Required
    Description

    Créditos insuficientes para realizar esta tarea.

  • Name
    404 - Not Found
    Description

    input_task_id no existe o no pertenece a tu cuenta.

  • Name
    429 - Too Many Requests
    Description

    Has superado tu límite de tasa. Las solicitudes by_parts y by_color también comparten un límite de análisis de prompt de 12 solicitudes por minuto por cuenta.

  • Name
    503 - Service Unavailable
    Description

    La división basada en prompt (by_parts y by_color) no está disponible temporalmente. Vuelve a intentarlo más tarde, o usa mode: "auto", que no se ve afectado. No se cobra nada.


GET/openapi/v1/print/split/:id

Recuperar una tarea de Auto Split

Este endpoint recupera una tarea de Auto Split mediante su ID.

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
}

Parámetros

  • Name
    id
    Type
    path
    Description

    El ID de la tarea de Auto Split que se desea recuperar.

Devuelve

El objeto de la tarea de Auto Split.


DELETE/openapi/v1/print/split/:id

Eliminar una tarea de Auto Split

Este endpoint elimina permanentemente una tarea de Auto Split, incluyendo todos los modelos y datos asociados. Esta acción es irreversible.

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."
}

Parámetros de ruta

  • Name
    id
    Type
    path
    Description

    El ID de la tarea de Auto Split a eliminar.

Estado de la tarea

Una tarea que aún está en PENDING se elimina y los créditos consumidos en el momento de la creación se reembolsan.

Una tarea que ya está IN_PROGRESS no se puede eliminar: la solicitud se rechaza con 409 Conflict y la tarea sigue ejecutándose. Los créditos de una tarea que el worker ya ha comenzado no son reembolsables, por lo que eliminarla a mitad de ejecución te haría perder tanto los créditos como el resultado. Espera a que alcance el estado SUCCEEDED, FAILED o CANCELED, y entonces elimínala.

Una tarea en un estado terminal (SUCCEEDED, FAILED o CANCELED) se elimina sin reembolso.

Devuelve

Devuelve 200 OK en caso de éxito, o 409 Conflict cuando la tarea está IN_PROGRESS.


GET/openapi/v1/print/split

List Auto Split Tasks

Este endpoint le permite recuperar una lista de tareas 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
  }
]

Parámetros

Atributos opcionales

  • Name
    page_num
    Type
    integer
    Description

    Número de página para la paginación. Comienza y toma como valor predeterminado 1.

  • Name
    page_size
    Type
    integer
    Description

    Límite del tamaño de página. El valor predeterminado es 10 elementos. El máximo permitido es 100 elementos; los valores mayores se limitan a 100.

  • Name
    sort_by
    Type
    string
    Description

    Campo por el cual ordenar. Valores disponibles:

    • +created_at: Ordenar por hora de creación en orden ascendente.
    • -created_at: Ordenar por hora de creación en orden descendente.

Devuelve

Devuelve una lista paginada de Objetos de Tarea de Auto Split.


GET/openapi/v1/print/split/:id/stream

Transmitir una tarea de Auto Split

Este endpoint transmite actualizaciones en tiempo real para una tarea de Auto Split utilizando Server-Sent Events (SSE).

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
}

Parámetros

  • Name
    id
    Type
    path
    Description

    Identificador único de la tarea de Auto Split que se desea transmitir.

Devuelve

Devuelve un flujo de Los objetos de tarea de Auto Split como Server-Sent Events.

Cada evento message transporta el objeto de tarea completo tal como lo devuelve Recuperar una tarea de Auto Split, incluyendo consumed_credits, las marcas de tiempo y prompt_ignored; mientras la tarea está en PENDING o IN_PROGRESS, los campos que cambian entre fotogramas son progress, status, started_at y preceding_tasks, y model_urls, thumbnail_url y part_count aparecen una vez que alcanza SUCCEEDED. Un evento error transporta solo status_code y message, así que distinga según el nombre del evento antes de leer status.


El objeto de tarea de Auto Split

Una tarea de Auto Split contiene únicamente las propiedades que se indican a continuación. Los campos de prompt de generación que incluyen otros objetos de tarea (name, object_prompt, texture_prompt, etc.), el model_url individual, y texture_urls nunca se rellenan en una división y no se devuelven. Las propiedades que se completan a medida que la tarea avanza (thumbnail_url, model_urls, las marcas de tiempo) siempre están presentes, vacías hasta que tienen un valor, por lo que el conjunto de claves no cambia entre PENDING y SUCCEEDED.

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
}
  • Name
    id
    Type
    string
    Description

    Identificador único de la tarea. Aunque usamos un UUID ordenable por k como detalle de implementación para los ids de tarea, no debes hacer ninguna suposición sobre el formato del id.

  • Name
    type
    Type
    string
    Description

    Tipo de la tarea. El valor es print-split.

  • Name
    model_urls
    Type
    object
    Description

    URLs descargables al modelo dividido, una por cada formato solicitado. Los formatos que admiten objetos de escena mantienen cada parte como un objeto separado; stl las fusiona en un único sólido. La propiedad de un formato se omitirá si ese formato no fue solicitado.

    • Name
      glb
      Type
      string
      Description

      URL descargable al modelo dividido en formato GLB.

    • Name
      obj
      Type
      string
      Description

      URL descargable al modelo dividido en formato OBJ.

    • Name
      fbx
      Type
      string
      Description

      URL descargable al modelo dividido en formato FBX.

    • Name
      stl
      Type
      string
      Description

      URL descargable al modelo dividido en formato STL. Todas las partes se fusionan en un único sólido; solicita 3mf para obtener partes seleccionables por separado.

    • Name
      usdz
      Type
      string
      Description

      URL descargable al modelo dividido en formato USDZ.

    • Name
      blend
      Type
      string
      Description

      URL descargable al modelo dividido en formato Blender.

    • Name
      3mf
      Type
      string
      Description

      URL descargable al modelo dividido en formato 3MF.

  • Name
    thumbnail_url
    Type
    string
    Description

    URL descargable a una vista previa renderizada del modelo dividido, con cada parte en un color distinto, en el layout solicitado.

  • Name
    prompt_ignored
    Type
    boolean
    Description

    true cuando el prompt de una solicitud by_parts o by_color no nombró ninguna parte, por lo que Meshy dividió el modelo automáticamente en su lugar; los nombres de las partes en el resultado son de Meshy, no los tuyos. Presente desde PENDING en adelante. Se omite en las tareas auto y siempre que se haya seguido el prompt.

  • Name
    part_count
    Type
    integer
    Description

    Número de partes imprimibles que produjo la división. Los formatos que admiten objetos de escena llevan un objeto por cada parte; stl las fusiona en un único sólido, y el recuento sigue reportando las partes. Las fracciones colapsadas que la segmentación no pudo convertir en una pieza imprimible se eliminan de los archivos antes de la exportación y no se cuentan.

  • Name
    progress
    Type
    integer
    Description

    Progreso de la tarea. Si la tarea aún no ha comenzado, esta propiedad será 0. Una vez que la tarea se haya completado con éxito, se convertirá en 100.

  • Name
    status
    Type
    string
    Description

    Estado de la tarea. Los valores posibles son uno de PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    El recuento de tareas precedentes.

  • Name
    created_at
    Type
    timestamp
    Description

    Marca de tiempo de cuándo se creó la tarea, en milisegundos.

  • Name
    started_at
    Type
    timestamp
    Description

    Marca de tiempo de cuándo se inició la tarea, en milisegundos. Si la tarea aún no ha comenzado, esta propiedad será 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Marca de tiempo de cuándo finalizó la tarea, en milisegundos. Si la tarea aún no ha finalizado, esta propiedad será 0.

  • Name
    task_error
    Type
    object
    Description

    Detalles del error para tareas fallidas. Consulta Errores para la referencia completa del objeto task_error. Si la comprobación de seguridad del proveedor del modelo rechaza el modelo de entrada, la tarea falla con task_error.type invalid_input y code provider_content_refused. Consulta Errores.

  • Name
    consumed_credits
    Type
    integer
    Description

    El número de créditos consumidos por esta tarea. Siempre presente: 10 una vez que la tarea ha sido aceptada, y 0 para tareas FAILED porque el cargo se reembolsa en caso de fallo. Eliminar una tarea mientras todavía está PENDING también la reembolsa.