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

API de Remallado

Reconstruye la malla de un modelo 3D con una nueva topology y un nuevo número de caras, y expórtala en los formatos que elijas. El modelo puede provenir de otra tarea de Meshy, como Imagen a 3D o Texto a 3D, o de un archivo de modelo.


POST/openapi/v1/remesh

Crear una tarea de Remallado

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

Request

POST
/openapi/v1/remesh
# Basic remesh with custom formats and resize
curl https://api.meshy.ai/openapi/v1/remesh \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "target_formats": ["glb", "fbx"],
    "topology": "quad",
    "target_polycount": 50000,
    "resize_height": 1.0,
    "origin_at": "bottom"
  }'

# Quad remesh with auto-size
curl https://api.meshy.ai/openapi/v1/remesh \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "target_formats": ["glb", "fbx"],
    "topology": "quad",
    "target_polycount": 50000,
    "auto_size": true
  }'

Response

{
  "result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}

Parámetros

  • Name
    input_task_id
    Type
    string
    Requerido
    Description

    Obligatorio a menos que envíes model_url. El ID de la tarea cuyo modelo quieres remallar, por ejemplo una tarea de Texto a 3D, Imagen a 3D, Retexturizar o Remallado. La tarea debe ser una que hayas creado con la API y tener el estado SUCCEEDED.

  • Name
    model_url
    Type
    string
    Requerido
    Description

    Obligatorio a menos que envíes input_task_id. El modelo a remallar, como una URL pública o un data URI. Si envías ambos, Meshy usa input_task_id.

    El modelo debe ser un archivo GLB, glTF, OBJ, FBX o STL de como máximo 400 MB desde una URL http o https, o de 100 MB como data URI. Para un data URI, usa el MIME type application/octet-stream.

    Un archivo de más de 100 MB también debe cumplir estas reglas:

    • Un archivo GLB, glTF, FBX u OBJ puede tener como máximo 10,000,000 de caras. Meshy cuenta las caras como triángulos, así que un cuadrilátero cuenta como 2, y una malla dibujada más de una vez cuenta una vez por copia.
    • Un archivo FBX debe ser FBX binario 7.1 o posterior.
    • Un archivo GLB o glTF no debe usar compresión Draco.
  • Name
    target_formats
    Type
    string[]
    predeterminado ["glb"]
    Description

    Los formatos de archivo a generar.

    Valores disponibles:

    • glb
    • fbx
    • obj
    • usdz
    • blend
    • stl
    • 3mf
  • Name
    topology
    Type
    string
    predeterminado triangle
    Description

    El tipo de cara del modelo remallado.

    Valores disponibles:

    • quad: una malla predominantemente de cuadriláteros
    • triangle: una malla de triángulos diezmada
  • Name
    target_polycount
    Type
    integer
    predeterminado 30000
    Description

    El número de caras a alcanzar, de 100 a 300000. El resultado puede diferir del objetivo, según la geometría del modelo. Un valor fuera del rango devuelve 400.

  • Name
    decimation_mode
    Type
    integer
    Description

    Número de caras adaptativo, por nivel. Cuando lo configuras, Meshy ignora target_polycount.

    Valores disponibles:

    • 1: ultra
    • 2: alto
    • 3: medio
    • 4: bajo
  • Name
    resize_height
    Type
    number
    ⚠ obsoleto
    predeterminado 0
    Description

    Usa la API de Redimensionar en su lugar. La altura a la que redimensionar el modelo, en metros. Envía como máximo uno de resize_height, resize_longest_side y auto_size.

  • Name
    resize_longest_side
    Type
    number
    ⚠ obsoleto
    predeterminado 0
    Description

    Usa la API de Redimensionar en su lugar. La longitud a la que redimensionar el lado más largo de la caja delimitadora del modelo, en metros. Envía como máximo uno de resize_height, resize_longest_side y auto_size.

  • Name
    auto_size
    Type
    boolean
    ⚠ obsoleto
    predeterminado false
    Description

    Usa la API de Redimensionar en su lugar. Si se debe estimar la altura real del objeto con visión de IA y redimensionar el modelo a ella. Envía como máximo uno de resize_height, resize_longest_side y auto_size.

  • Name
    origin_at
    Type
    string
    ⚠ obsoleto
    predeterminado bottom
    Description

    Usa la API de Redimensionar en su lugar. Dónde colocar el origen del modelo, bottom o center. El valor predeterminado se aplica cuando envías resize_height, resize_longest_side o auto_size. Sin ninguno de ellos, Meshy mueve el origen solo si envías origin_at.

  • Name
    convert_format_only
    Type
    boolean
    ⚠ obsoleto
    Description

    Usa la API de Convertir en su lugar. Si se debe solo convertir el modelo a target_formats. Cuando es true, Meshy ignora topology, target_polycount, decimation_mode, resize_height, resize_longest_side y auto_size, pero aún verifica sus valores, por lo que un valor inválido devuelve 400. Con convert_format_only: true, un target_formats vacío o null devuelve 400.

  • Name
    alpha_thumbnail
    Type
    boolean
    predeterminado false
    Description

    Si se debe renderizar también una vista previa con fondo transparente (RGBA), devuelta en alpha_thumbnail_url cuando obtienes la tarea. thumbnail_url no cambia.

Devuelve

El campo result de la respuesta contiene el ID de la nueva tarea de Remallado.

Modos de fallo

  • Name
    400 - Bad Request
    Description

    La solicitud no puede ejecutarse. El mensaje de error indica qué problema encontró. Por ejemplo:

    • Falta un parámetro: No se envió ni model_url ni input_task_id.
    • Tarea de entrada inválida: input_task_id no es una tarea de API exitosa, o su modelo de IA no admite remallado.
    • Formato de modelo inválido: El archivo de model_url tiene una extensión no compatible.
    • URL inaccesible: Meshy no puede descargar el archivo de model_url.
    • Archivo de modelo demasiado grande: El archivo de model_url supera los 400 MB desde una URL http o https, o los 100 MB como data URI.
    • Demasiadas caras: El archivo de model_url supera los 100 MB y tiene más de 10,000,000 de caras. Reduce el número de caras y vuelve a enviar el archivo.
    • FBX ASCII de más de 100 MB: El archivo de model_url es un FBX ASCII de más de 100 MB. Envíalo como FBX binario o GLB.
    • Archivo de modelo ilegible: El archivo de model_url supera los 100 MB, y Meshy no puede leer su encabezado. Por ejemplo, es un GLB o glTF comprimido con Draco, o un FBX binario anterior a 7.1.
    • Encabezado del modelo demasiado complejo: El archivo de model_url supera los 100 MB, y su encabezado tiene demasiadas mallas, nodos o registros para verificar. Reduce el número de objetos en el archivo y vuelve a enviarlo.
    • Topología inválida: topology no es quad ni triangle.
    • Parámetros mutuamente excluyentes: La solicitud tiene más de uno de auto_size, resize_height y resize_longest_side. Envía solo uno.

    Corrige la solicitud y vuelve a enviarla. Consulta Errores.

  • Name
    401 - Unauthorized
    Description

    Falta la clave de API o es inválida. Revisa el encabezado Authorization.

  • Name
    402 - Payment Required
    Description

    Por ejemplo:

    • Créditos insuficientes: La cuenta no tiene suficientes créditos para esta tarea, o la cuenta alcanzó un límite de créditos. Revisa tu saldo de créditos y vuelve a intentarlo.
    • Plan gratuito: Crear una tarea requiere un plan de pago. Mejora tu plan en la configuración de tu suscripción y vuelve a intentarlo.
  • Name
    403 - Forbidden
    Description

    input_task_id es un modelo de bajorrelieve, que este endpoint no puede remallar. El mensaje es This model type does not support this operation. Envía un modelo diferente.

  • Name
    404 - Not Found
    Description

    input_task_id no coincide con ninguna de tus tareas. Revisa el ID de la tarea y vuelve a enviar la solicitud.

  • Name
    429 - Too Many Requests
    Description

    Superaste tu límite de tasa. Espera y vuelve a intentarlo. Consulta Límites de tasa.


GET/openapi/v1/remesh/:id

Obtener una tarea de Remallado

Devuelve una tarea de Remallado por su ID.

Request

GET
/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "remesh",
  "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
      "fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
      "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
      "usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
      "blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
      "stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
}

Parámetros

  • Name
    id
    Type
    path
    Description

    El ID de la tarea proveniente de la respuesta de creación.

Devuelve

El objeto de tarea de Remallado.


DELETE/openapi/v1/remesh/:id

Eliminar una tarea de Remallado

Elimina permanentemente una tarea de Remallado, incluidos sus modelos y datos. No puedes deshacer una eliminación.

Request

DELETE
/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/remesh/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 keeps 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 a eliminar.

Estado de la tarea

Eliminar una tarea PENDING reembolsa los créditos que usó cuando la creaste.

Una tarea IN_PROGRESS no se puede eliminar. La solicitud devuelve 409 Conflict, y la tarea sigue ejecutándose. Meshy no reembolsa una tarea que ya ha comenzado, así que eliminarla te costaría tanto los créditos como el resultado. Espera a que alcance SUCCEEDED, FAILED o CANCELED, y luego elimínala.

Eliminar una tarea en un estado final (SUCCEEDED, FAILED o CANCELED) no reembolsa sus créditos.

Devuelve

200 OK cuando la tarea se elimina, o 409 Conflict cuando la tarea está IN_PROGRESS.


GET/openapi/v1/remesh

Listar tareas de Remallado

Devuelve una lista de tus tareas de Remallado.

Request

GET
/openapi/v1/remesh
curl https://api.meshy.ai/openapi/v1/remesh?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
    "type": "remesh",
    "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
      "fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
      "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
      "usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
      "blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
      "stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
    },
    "progress": 100,
    "status": "SUCCEEDED",
    "created_at": 1699999999000,
    "started_at": 1700000000000,
    "finished_at": 1700000001000,
    "task_error": null
  }
]

Parámetros

  • Name
    page_num
    Type
    integer
    predeterminado 1
    Description

    El número de página a devolver.

  • Name
    page_size
    Type
    integer
    predeterminado 10
    Description

    El número de tareas por página, hasta 100.

  • Name
    sort_by
    Type
    string
    Description

    El orden de clasificación.

    Valores disponibles:

    • +created_at: el más antiguo primero
    • -created_at: el más reciente primero

Devuelve

Una lista paginada de objetos de tarea de Remallado.


GET/openapi/v1/remesh/:id/stream

Transmitir una tarea de Remallado en streaming

Transmite las actualizaciones de una tarea de Remallado como Server-Sent Events (SSE).

Request

GET
/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
curl -N https://api.meshy.ai/openapi/v1/remesh/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.
// These examples are shortened. Each event holds the full task object.
event: message
data: {
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "remesh",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
    "fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
    "usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
    "blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
    "stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
  },
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
}

Parámetros

  • Name
    id
    Type
    path
    Description

    El ID de la tarea proporcionado en la respuesta de creación.

Devuelve

Un flujo de objetos de tarea de Remallado como Server-Sent Events.

Cada evento contiene el objeto de tarea completo, con la misma forma que devuelve el endpoint Get. Mientras la tarea esté en PENDING o IN_PROGRESS, sus campos de resultado aún no tienen valores.


El objeto de tarea de Remallado

Un objeto de tarea de Remallado describe un remallado de un modelo 3D. Contiene el estado, el progress y los archivos del modelo cuando la tarea tiene éxito.

Propiedades

Example Remesh Task Object

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "remesh",
  "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
      "fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
      "obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
      "usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
      "blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
      "stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
  },
  "progress": 100,
  "status": "SUCCEEDED",
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": {

    "message": ""

  },

  "consumed_credits": 5
}
  • Name
    id
    Type
    string
    Description

    El ID de la tarea. Trátelo como una cadena opaca y no dependa de su formato.

  • Name
    type
    Type
    string
    Description

    El tipo de tarea, siempre remesh.

  • Name
    model_urls
    Type
    object
    Description

    URLs de descarga para el modelo remallado, una por cada formato de archivo. Un formato que la tarea no generó no tiene clave, en lugar de una cadena vacía.

    • Name
      glb
      Type
      string
      Description

      El archivo GLB.

    • Name
      fbx
      Type
      string
      Description

      El archivo FBX.

    • Name
      obj
      Type
      string
      Description

      El archivo OBJ.

    • Name
      usdz
      Type
      string
      Description

      El archivo USDZ.

    • Name
      blend
      Type
      string
      Description

      El archivo de Blender.

    • Name
      stl
      Type
      string
      Description

      El archivo STL.

    • Name
      3mf
      Type
      string
      Description

      El archivo 3MF. Presente solo cuando target_formats incluye 3mf.

  • Name
    thumbnail_url
    Type
    string
    Description

    URL de descarga para una imagen de vista previa del modelo remallado.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    URL de descarga para una versión de thumbnail_url con fondo transparente (RGBA). Presente solo cuando creó la tarea con alpha_thumbnail: true y Meshy renderizó la vista previa transparente.

  • Name
    progress
    Type
    integer
    Description

    Cuánto de la tarea está completado, como un porcentaje. Es 0 hasta que la tarea comienza y 100 cuando tiene éxito.

  • Name
    status
    Type
    string
    Description

    El estado de la tarea, uno de PENDING, IN_PROGRESS, SUCCEEDED o FAILED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    El número de tareas por delante de esta en la cola. El valor solo es significativo mientras la tarea está en PENDING.

  • Name
    created_at
    Type
    timestamp
    Description

    Hora en que se creó la tarea, en milisegundos Unix.

  • Name
    started_at
    Type
    timestamp
    Description

    Hora en que comenzó la tarea, en milisegundos Unix. Es 0 hasta que la tarea comienza.

  • Name
    finished_at
    Type
    timestamp
    Description

    Hora en que finalizó la tarea, en milisegundos Unix. Es 0 hasta que la tarea finaliza.

  • Name
    task_error
    Type
    object
    Description

    Los detalles del error cuando la tarea falla. Consulte Errores.

  • Name
    consumed_credits
    Type
    integer
    Description

    El número de créditos que usó la tarea. Presente cuando el estado es PENDING, IN_PROGRESS o SUCCEEDED. Es 0 para una tarea FAILED, porque Meshy reembolsa los créditos cuando una tarea falla.