Creative Lab — API de Brick Figure

Convierte una foto de origen en una minifigura 3D coleccionable de estilo brick en dos etapas: prototipo genera una imagen conceptual estilizada a partir de tu foto de entrada, y luego construcción convierte esa imagen conceptual en un modelo 3D texturizado. Las dos etapas están vinculadas a través de input_task_id.

  • POST /openapi/creative-lab/brick-figure/v1/prototype
  • POST /openapi/creative-lab/brick-figure/v1/build

POST/openapi/creative-lab/brick-figure/v1/prototype

Crear una tarea de prototipo de figura de bloques

Genera una única imagen de concepto en estilo de bloques a partir de la foto de origen. El ID de tarea devuelto es lo que se pasa como input_task_id al endpoint de construcción. Consulte El objeto de tarea de prototipo de figura de bloques para conocer la forma de la respuesta.

Parámetros

  • Name
    image_url
    Type
    string
    Requerido
    Description

    Foto de origen para que Meshy la estilice como una minifigura de bloques. Actualmente admitimos los formatos .jpg, .jpeg, .png y .webp.

    Hay dos formas de proporcionar la imagen:

    • URL de acceso público: una URL que sea accesible desde internet públicamente.
    • Data URI: un Data URI en base64 de la imagen. Ejemplo de un data URI: data:image/jpeg;base64,<your base64-encoded image data>.
  • Name
    name
    Type
    string
    Description

    Nombre de tarea opcional para fines de visualización. Máximo 100 caracteres.

  • Name
    remove_background
    Type
    boolean
    predeterminado false
    Description

    Cuando se establece en true, la imagen de prototipo se devuelve como un PNG RGBA transparente con el fondo eliminado, de modo que pueda componer el sujeto sobre cualquier fondo.

Devuelve

La propiedad result de la respuesta contiene el id de tarea de la tarea de prototipo de figura de bloques recién creada. Consulte periódicamente el endpoint Obtener una tarea o suscríbase al stream hasta que la tarea alcance el estado SUCCEEDED, y luego pase ese ID al endpoint de construcción como input_task_id.

Modos de fallo

  • Name
    400 - Bad Request
    Description

    La solicitud fue inaceptable. Causas comunes:

    • Falta un parámetro: image_url es obligatorio.
    • Formato de imagen no válido: el image_url proporcionado no tiene un formato admitido (.jpg, .jpeg, .png, .webp).
    • Dimensiones de imagen fuera de rango: la imagen es demasiado pequeña, excede el tamaño máximo de archivo o excede el número máximo de píxeles.
    • URL inalcanzable: no se pudo descargar el image_url (404 o timeout).
    • Data URI no válido: la cadena en base64 está mal formada.
    • Contenido marcado: la imagen de entrada fue marcada por la moderation de NSFW.
  • Name
    401 - Unauthorized
    Description

    Fallo de autenticación. Por favor, verifique su clave de API.

  • Name
    402 - Payment Required
    Description

    Créditos insuficientes para realizar esta tarea.

  • Name
    403 - Forbidden
    Description

    La imagen de entrada fue marcada por infracción de propiedad intelectual.

  • Name
    429 - Too Many Requests
    Description

    Ha excedido su límite de tasa.

Request

POST
/openapi/creative-lab/brick-figure/v1/prototype
# Stage 1: generate a brick-style concept image
curl https://api.meshy.ai/openapi/creative-lab/brick-figure/v1/prototype \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "image_url": "<your publicly accessible image url or base64-encoded data URI>"
  }'

Response

{
  "result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}

POST/openapi/creative-lab/brick-figure/v1/build

Crear una tarea de construcción de figura de bloques

Genera la figura de bloques 3D final con textura a partir de una tarea de prototipo exitosa. La construcción ejecuta el mismo pipeline de imagen a 3D que Imagen a 3D, por lo que el formato del objeto de respuesta y la lista de URLs de salida coinciden exactamente. Consulta El objeto de tarea de construcción de figura de bloques para conocer la forma de la respuesta.

Parámetros

  • Name
    input_task_id
    Type
    string
    Requerido
    Description

    El ID de tarea de una tarea de prototipo creada a través de este mismo endpoint de OpenAPI. El prototipo debe haberse creado con la misma clave de API, debe haber alcanzado el estado SUCCEEDED y debe haber producido exactamente una imagen candidata.

    Las tareas de prototipo creadas a través de la webapp no se aceptan: el endpoint de construcción solo acepta tareas de prototipo producidas mediante POST /openapi/creative-lab/brick-figure/v1/prototype y rechaza cualquier otro origen con 404.

  • Name
    name
    Type
    string
    Description

    Nombre de tarea opcional para fines de visualización. Máximo 100 caracteres.

Devuelve

La propiedad result de la respuesta contiene el id de tarea de la nueva tarea de construcción de figura de bloques creada. Consulta periódicamente el endpoint Obtener una tarea o suscríbete al stream hasta que la tarea alcance el estado SUCCEEDED, y luego descarga el GLB con textura desde model_urls.glb (o el par OBJ + MTL desde model_urls.obj y model_urls.mtl si tu pipeline posterior prefiere OBJ).

Modos de fallo

  • Name
    400 - Bad Request
    Description

    La solicitud no fue aceptable. Causas comunes:

    • Parámetro faltante: input_task_id es obligatorio.
    • UUID inválido: El input_task_id no es un UUID válido.
    • El padre no tuvo éxito: La tarea de prototipo referenciada aún no ha alcanzado el estado SUCCEEDED.
    • Sin candidato: La tarea de prototipo tuvo éxito pero no produjo ninguna imagen candidata.
  • Name
    401 - Unauthorized
    Description

    La autenticación falló. Por favor, verifica tu clave de API.

  • Name
    402 - Payment Required
    Description

    Créditos insuficientes para realizar esta tarea.

  • Name
    404 - Not Found
    Description

    La tarea de prototipo referenciada no existe, pertenece a un usuario diferente o fue creada a través de la webapp (solo las tareas de prototipo en modo API pueden encadenarse a la construcción).

  • Name
    429 - Too Many Requests
    Description

    Has excedido tu límite de tasa.

Request

POST
/openapi/creative-lab/brick-figure/v1/build
# Stage 2: chain build off a succeeded prototype task
curl https://api.meshy.ai/openapi/creative-lab/brick-figure/v1/build \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
  }'

Response

{
  "result": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb"
}

GET/openapi/creative-lab/brick-figure/v1/(prototype|build)/:id

Recuperar una tarea de figura de ladrillos

Recupera una tarea de prototipo o de construcción dada un id de tarea válido. La ruta de la URL debe coincidir con la etapa de la tarea: una tarea de construcción obtenida a través de /prototype/:id devuelve 404, y viceversa.

Consulta El objeto de tarea de prototipo de figura de ladrillos y El objeto de tarea de construcción de figura de ladrillos para conocer las formas de respuesta.

Parámetros

  • Name
    id
    Type
    path
    Description

    Identificador único de la tarea de figura de ladrillos que se va a recuperar.

Devuelve

La respuesta contiene el objeto de tarea de figura de ladrillos. La forma depende de qué etapa se solicitó.

Request

GET
/openapi/creative-lab/brick-figure/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578
# Prototype
curl https://api.meshy.ai/openapi/creative-lab/brick-figure/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

# Build
curl https://api.meshy.ai/openapi/creative-lab/brick-figure/v1/build/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Prototype Response

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-brick-figure-prototype",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123486000,
  "expires_at": 1729382686000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 6,
  "image_urls": [
    "https://assets.meshy.ai/***/concept.png?Expires=***"
  ]
}

Build Response

{
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "type": "creative-lab-brick-figure-build",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123500000,
  "started_at": 1729123510000,
  "finished_at": 1729123535000,
  "expires_at": 1729382735000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 30,
  "prompt": "",
  "negative_prompt": "",
  "texture_prompt": "",
  "texture_image_url": "",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.obj?Expires=***",
    "mtl": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.mtl?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/preview.png?Expires=***",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/texture_0.png?Expires=***"
    }
  ]
}

DELETE/openapi/creative-lab/brick-figure/v1/(prototype|build)/:id

Eliminar una tarea de figura de bloques

Cancela una tarea de figura de bloques. Si la tarea aún está en PENDING, se reembolsan los créditos consumidos en el momento de la creación. Las tareas que ya están IN_PROGRESS se cancelan sin reembolso (es posible que el worker ya esté consumiendo recursos). Las tareas que ya han alcanzado un estado terminal (SUCCEEDED, FAILED, CANCELED) no se pueden cancelar.

La ruta de la URL debe coincidir con la etapa de la tarea — DELETE en /prototype/:buildId devuelve 404.

Parámetros de ruta

  • Name
    id
    Type
    path
    Description

    Identificador único de la tarea de figura de bloques a cancelar.

Devuelve

Devuelve 204 No Content en caso de éxito con un cuerpo vacío.

Modos de fallo

  • Name
    400 - Bad Request
    Description

    La tarea ya se encuentra en un estado terminal y no se puede cancelar.

  • Name
    404 - Not Found
    Description

    La tarea no existe, pertenece a otro usuario o su etapa no coincide con la ruta de la URL.

Request

DELETE
/openapi/creative-lab/brick-figure/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578
curl --request DELETE \
  --url https://api.meshy.ai/openapi/creative-lab/brick-figure/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

// Returns 204 No Content on success (empty body).

GET/openapi/creative-lab/brick-figure/v1/(prototype|build)/:id/stream

Transmitir una tarea de figura de bloques

Transmite actualizaciones en tiempo real para una tarea de figura de bloques mediante Server-Sent Events (SSE). La ruta de la URL debe coincidir con la etapa de la tarea — abrir una transmisión en /prototype/:buildId/stream emite un único event: error payload con status_code: 404 y cierra la transmisión.

Parámetros

  • Name
    id
    Type
    path
    Description

    Identificador único de la tarea de figura de bloques a transmitir.

Devuelve

Devuelve una transmisión de objetos de tarea Brick Figure Prototype o Brick Figure Build como Server-Sent Events. Cada fotograma transporta el objeto de tarea completo para la etapa — la misma forma que devuelve el endpoint Get — así que mientras la tarea esté en PENDING o IN_PROGRESS, los campos de salida simplemente aún no están poblados (null, [] o {}) y finished_at es null.

Request

GET
/openapi/creative-lab/brick-figure/v1/build/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/stream
curl -N https://api.meshy.ai/openapi/creative-lab/brick-figure/v1/build/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example (wrong stage or task not found)
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress.
// Every frame is the full task object; fields not yet populated are null / empty.
// The PENDING frame below is abbreviated to the fields that change.
event: message
data: {
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "type": "creative-lab-brick-figure-build",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123500000,
  "started_at": 1729123510000,
  "finished_at": 1729123535000,
  "expires_at": 1729382735000,
  "task_error": null,
  "consumed_credits": 30,
  "prompt": "",
  "negative_prompt": "",
  "texture_prompt": "",
  "texture_image_url": "",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.obj?Expires=***",
    "mtl": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.mtl?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/preview.png?Expires=***",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/texture_0.png?Expires=***"
    }
  ]
}

GET/openapi/creative-lab/brick-figure/v1/(prototype|build)

List Brick Figure Tasks

Obtén una lista paginada de tus tareas de figura de bloques para una sola etapa. La ruta URL selecciona la etapa: /prototype devuelve tareas de prototipo; /build devuelve tareas de construcción. Las tareas de la otra etapa no se incluyen en ninguna de las respuestas.

Parámetros de ruta

  • Name
    stage
    Type
    path
    Requerido
    Description

    Ya sea prototype o build. La colección devuelve solo tareas cuya etapa coincida con la URL — solicitar /prototype nunca devuelve tareas de construcción y viceversa.

Parámetros de consulta

  • Name
    page_num
    Type
    integer
    predeterminado 1
    Description

    Número de página para la paginación.

  • Name
    page_size
    Type
    integer
    predeterminado 10
    Description

    Límite de tamaño de página. El máximo permitido es 100 elementos.

  • Name
    sort_by
    Type
    string
    predeterminado -created_at
    Description

    Campo por el que 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 del objeto de tarea por etapa — ya sea el objeto de tarea de prototipo de figura de bloques al listar /prototype o el objeto de tarea de construcción de figura de bloques al listar /build.

Request

GET
/openapi/creative-lab/brick-figure/v1/prototype
# List prototype tasks
curl https://api.meshy.ai/openapi/creative-lab/brick-figure/v1/prototype?page_size=10 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

# List build tasks
curl https://api.meshy.ai/openapi/creative-lab/brick-figure/v1/build?page_size=10 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response (List Prototype Tasks)

[
  {
    "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "type": "creative-lab-brick-figure-prototype",
    "name": "",
    "status": "SUCCEEDED",
    "progress": 100,
    "created_at": 1729123456000,
    "started_at": 1729123460000,
    "finished_at": 1729123486000,
    "expires_at": 1729382686000,
    "preceding_tasks": 0,
    "task_error": null,
    "consumed_credits": 6,
    "image_urls": [
      "https://assets.meshy.ai/***/concept.png?Expires=***"
    ]
  }
]

El objeto Task del prototipo de figura de bloques

El objeto Task del prototipo de figura de bloques es una unidad de trabajo que Meshy mantiene registrada para generar una imagen conceptual con estilo de bloques a partir de una foto de origen. La salida de esta etapa se encadena a la etapa de construcción mediante input_task_id.

Propiedades

  • Name
    id
    Type
    string
    Description

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

  • Name
    type
    Type
    string
    Description

    Tipo de la tarea. El valor es creative-lab-brick-figure-prototype.

  • Name
    name
    Type
    string
    Description

    El nombre de la tarea proporcionado al crearla. Es una cadena vacía si no se proporcionó ningún nombre.

  • Name
    status
    Type
    string
    Description

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

  • Name
    progress
    Type
    integer
    Description

    Progress 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, pasará a ser 100.

  • 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á null.

  • 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á null.

  • Name
    expires_at
    Type
    timestamp
    Description

    Marca de tiempo de cuándo expira el resultado de la tarea, en milisegundos.

  • Name
    preceding_tasks
    Type
    integer
    Description

    El recuento de tareas precedentes.

  • Name
    task_error
    Type
    object
    Description

    Detalles del error para tareas fallidas. Consulta Errores para ver la referencia completa del objeto task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    El número de créditos consumidos por esta tarea. Presente cuando el estado de la tarea es PENDING, IN_PROGRESS o SUCCEEDED. Devuelve 0 para las tareas FAILED (los créditos se reembolsan en caso de fallo).

  • Name
    image_urls
    Type
    array of strings
    Description

    URLs descargables para los candidatos de imagen conceptual generados por esta tarea de prototipo. Actualmente, la API siempre devuelve exactamente un candidato; el campo es un array para que futuras revisiones puedan ofrecer múltiples candidatos sin introducir un cambio disruptivo.

Example Brick Figure Prototype Task Object

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-brick-figure-prototype",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123486000,
  "expires_at": 1729382686000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 6,
  "image_urls": [
    "https://assets.meshy.ai/***/concept.png?Expires=***"
  ]
}

El objeto Brick Figure Build Task

El objeto Brick Figure Build Task es una unidad de trabajo que Meshy monitorea para generar una figura de bloques 3D con textura a partir de una tarea de prototipo exitosa. Ejecuta el mismo pipeline de imagen a 3D utilizado por Imagen a 3D, por lo que los campos de salida reflejan el objeto de tarea de ese endpoint.

Propiedades

  • Name
    id
    Type
    string
    Description

    Identificador único de la tarea.

  • Name
    type
    Type
    string
    Description

    Tipo de la tarea. El valor es creative-lab-brick-figure-build.

  • Name
    name
    Type
    string
    Description

    El nombre de la tarea proporcionado al crearla. Cadena vacía si no se proporcionó ningún nombre.

  • Name
    status
    Type
    string
    Description

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

  • 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 haya finalizado con éxito, pasará a ser 100.

  • 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.

  • Name
    finished_at
    Type
    timestamp
    Description

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

  • Name
    expires_at
    Type
    timestamp
    Description

    Marca de tiempo de cuándo caduca el resultado de la tarea, en milisegundos.

  • Name
    preceding_tasks
    Type
    integer
    Description

    El número de tareas precedentes. Solo es relevante cuando el estado es PENDING.

  • Name
    task_error
    Type
    object
    Description

    Detalles del error para tareas fallidas. Consulta Errores para la referencia completa del objeto task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    El número de créditos consumidos por esta tarea. Devuelve 0 para tareas FAILED (los créditos se reembolsan en caso de fallo).

  • Name
    prompt
    Type
    string
    Description

    Siempre vacío para brick figure build. Presente por compatibilidad entre endpoints con la forma compartida V2ImageTo3DTaskResponse utilizada por Imagen a 3D.

  • Name
    negative_prompt
    Type
    string
    Description

    Siempre vacío para brick figure build. Presente por compatibilidad entre endpoints.

  • Name
    texture_prompt
    Type
    string
    Description

    Siempre vacío para brick figure build. Presente por compatibilidad entre endpoints.

  • Name
    texture_image_url
    Type
    string
    Description

    Siempre vacío para brick figure build. Presente por compatibilidad entre endpoints.

  • Name
    model_urls
    Type
    object
    Description

    URLs descargables del modelo 3D generado. El brick figure build produce un GLB con textura además del par OBJ + MTL para pipelines que prefieran Wavefront OBJ. La forma del campo coincide con el objeto model_urls de Imagen a 3D, de modo que futuras incorporaciones de formatos se integren sin cambios disruptivos.

    • Name
      glb
      Type
      string
      Description

      URL descargable del archivo GLB con textura.

    • Name
      obj
      Type
      string
      Description

      URL descargable del archivo Wavefront OBJ (geometría + UV).

    • Name
      mtl
      Type
      string
      Description

      URL descargable del archivo de material MTL complementario del OBJ. Combínalo con obj y la entrada de texture_urls[0].base_color.

  • Name
    thumbnail_url
    Type
    string
    Description

    URL descargable de la imagen en miniatura del archivo del modelo.

  • Name
    texture_urls
    Type
    array
    Description

    Un array de objetos de URL de textura generados por esta tarea. Actualmente contiene un único objeto con el mapa de color base.

    • Name
      base_color
      Type
      string
      Description

      URL descargable de la imagen del mapa de color base.

Example Brick Figure Build Task Object

{
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "type": "creative-lab-brick-figure-build",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123500000,
  "started_at": 1729123510000,
  "finished_at": 1729123535000,
  "expires_at": 1729382735000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 30,
  "prompt": "",
  "negative_prompt": "",
  "texture_prompt": "",
  "texture_image_url": "",
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***",
    "obj": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.obj?Expires=***",
    "mtl": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.mtl?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/preview.png?Expires=***",
  "texture_urls": [
    {
      "base_color": "https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/texture_0.png?Expires=***"
    }
  ]
}