Convierte una foto de origen en una pantalla de lámpara imprimible en 3D en dos etapas:
prototype genera una imagen conceptual blanca mate estilizada y la convierte en
un modelo 3D hueco (GLB); luego build ejecuta el procesador de lámparas sobre ese modelo
para producir las piezas STL imprimibles: una pantalla de lámpara de fondo abierto con una placa base
para el accesorio de la fuente de luz, además del propio soporte del accesorio. Las dos etapas están
vinculadas mediante input_task_id.
Genera una única imagen conceptual blanco mate a partir de una foto de referencia y
la convierte en un modelo de pantalla de lámpara 3D hueco. La respuesta incluye tanto la
imagen conceptual (image_urls) como el modelo 3D (model_urls.glb con una
thumbnail_url). El ID de tarea devuelto es lo que se pasa como input_task_id
al endpoint de build. Consulta
El objeto de tarea de prototipo de lámpara
para conocer la forma de la respuesta.
Parámetros
Name
image_url
Type
string
Requerido
Description
Foto de origen que Meshy utiliza como referencia visual para la pantalla de la lámpara. Actualmente admitimos los formatos .jpg, .jpeg, .png y .webp.
Hay dos formas de proporcionar la imagen:
URL accesible públicamente: Una URL accesible desde internet público.
Data URI: Una data URI codificada en base64 de la imagen. Ejemplo de una data URI: data:image/jpeg;base64,<your base64-encoded image data>.
Name
image_subject
Type
string
predeterminado character
Description
Sugerencia de categoría de sujeto que selecciona el prompt de estilización. Valores disponibles:
character (predeterminado) — sujeto de personaje/objeto único (figura, animal, mascota, etc.).
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, para que puedas componer el sujeto sobre cualquier fondo.
Devuelve
La propiedad result de la respuesta contiene el id de la tarea de la tarea de prototipo de lámpara recién creada. Consulta periódicamente el endpoint Obtener una tarea o suscríbete al stream hasta que la tarea alcance SUCCEEDED, y luego pasa ese ID al endpoint de build como input_task_id.
Modos de falla
Name
400 - Bad Request
Description
La solicitud fue inaceptable. Causas comunes:
Parámetro faltante: image_url es obligatorio.
Formato de imagen inválido: El image_url proporcionado no tiene un formato compatible (.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 inválida: La cadena base64 está mal formada.
Contenido marcado: La imagen de entrada fue marcada por moderation de NSFW o de propiedad intelectual.
image_subject inválido: No es uno de character / landscape.
Name
401 - Unauthorized
Description
Falló la autenticación. Por favor, verifica tu clave de API.
Name
402 - Payment Required
Description
Créditos insuficientes para realizar esta tarea.
Name
429 - Too Many Requests
Description
Has excedido tu límite de tasa.
Request
POST
/openapi/creative-lab/lamp/v1/prototype
# Stage 1: concept image + hollow 3D lampshade model from a source photocurlhttps://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "image_url": "<your publicly accessible image url or base64-encoded data URI>", "image_subject": "character" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototype example
Start with a source photo; the prototype returns the concept image and a hollow 3D model that the build stage processes.
Genera las piezas finales imprimibles en 3D a partir de una tarea de prototipo con estado SUCCEEDED.
El build ejecuta el procesador de lámparas sobre el modelo 3D del prototipo: escala
el modelo a diameter_mm, aplana la base según cut_amount_percent,
lo ahueca hasta thickness_mm, abre la base y —cuando se elige un preset
de fixture— añade una placa base con el orificio del fixture y un soporte
independiente para la fuente de luz. Consulta
El objeto de tarea de build de lámpara 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 SUCCEEDED y debe haber producido un modelo 3D.
Las tareas de prototipo creadas a través de la webapp no son aceptadas — el endpoint de build solo acepta tareas de prototipo producidas por POST /openapi/creative-lab/lamp/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.
options
Parámetros de ajuste opcionales para la geometría de la pantalla de la lámpara. Cada campo tiene un valor predeterminado razonable — envía solo los que desees anular.
Name
diameter_mm
Type
number
predeterminado 150
Description
Dimensión máxima objetivo de la caja delimitadora de la pantalla de la lámpara, en milímetros. La malla se escala de forma uniforme para ajustarse. Rango: [50, 400].
Name
thickness_mm
Type
number
predeterminado 1
Description
Grosor de pared de la pantalla de lámpara hueca, en milímetros. Rango: (0, 10].
Name
cut_amount_percent
Type
number
predeterminado 1
Description
Porcentaje de la altura del modelo que se corta de forma plana en la base, de modo que la pantalla de la lámpara se apoye en la base de impresión y tenga una abertura para el fixture. Rango: [1, 100].
Name
light_source_preset
Type
string
predeterminado bambu_mh001_60mm
Description
Preset de fixture de fuente de luz que determina cómo se construye la base. Valores disponibles:
bambu_mh001_60mm (predeterminado) — pantalla de lámpara de base abierta más una placa base con un orificio de fixture de 60 mm, ambos en model_urls.lamp_stl, y el soporte del fixture como model_urls.base_stl.
none — una única pantalla de lámpara sellada en model_urls.lamp_stl; model_urls.base_stl se omite.
Name
fixture_offset_x_mm
Type
number
predeterminado 0
Description
Desplazamiento en el eje X del orificio del fixture en la placa base, relativo al centro de la pantalla de la lámpara, en milímetros. Solo tiene sentido cuando light_source_preset ≠ none. Rango: [-80, 80].
Name
fixture_offset_z_mm
Type
number
predeterminado 0
Description
Desplazamiento en el eje Z (profundidad) del orificio del fixture en la placa base, relativo al centro de la pantalla de la lámpara, en milímetros. Solo tiene sentido cuando light_source_preset ≠ none. Rango: [-80, 80].
Name
rotate_x_deg
Type
number
predeterminado 0
Description
Rotación alrededor del eje X aplicada al modelo antes del procesamiento, en grados. Las tres rotaciones se aplican como ángulos de Euler XYZ alrededor del centro del modelo. Rango: [-360, 360].
Name
rotate_y_deg
Type
number
predeterminado 0
Description
Rotación alrededor del eje Y aplicada a la malla importada antes del procesamiento, en grados. Rango: [-360, 360].
Name
rotate_z_deg
Type
number
predeterminado 0
Description
Rotación alrededor del eje Z aplicada a la malla importada antes del procesamiento, en grados. Rango: [-360, 360].
Name
include_result_json
Type
boolean
predeterminado false
Description
Cuando es true y output.format es zip, incluye el result.json del procesador de lámparas (nombre del pipeline, advertencias y rutas de artefactos) dentro del paquete. Se ignora cuando output.format es stl.
output
Selector de formato de transferencia opcional. El valor predeterminado es stl.
Name
format
Type
string
predeterminado stl
Description
Paquete de artefactos devuelto por el build. Valores disponibles:
stl (predeterminado) — devuelve model_urls.lamp_stl (la pantalla de la lámpara, junto con la placa base cuando se establece un preset de fixture), además de model_urls.base_stl cuando light_source_preset ≠ none.
zip — empaqueta todos los artefactos que emite el procesador (lamp.stl, base.stl opcional, result.json opcional) en un único zip y lo devuelve bajo model_urls.bundle_zip.
Devuelve
La propiedad result de la respuesta contiene el id de tarea de la tarea de build de lámpara recién 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 los artefactos desde model_urls.
Modos de fallo
Name
400 - Bad Request
Description
La solicitud no fue aceptable. Causas comunes:
Falta un parámetro: input_task_id es obligatorio.
UUID inválido: input_task_id no es un UUID válido.
El padre no tiene éxito: La tarea de prototipo referenciada aún no ha alcanzado el estado SUCCEEDED.
Sin modelo: La tarea de prototipo tuvo éxito pero no produjo ningún modelo 3D.
Opciones fuera de rango: Uno de los campos de options quedó fuera de su rango permitido o de su conjunto de valores enumerados.
Name
401 - Unauthorized
Description
Error de autenticación. Comprueba 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 otro usuario, o fue creada a través de la webapp (solo las tareas de prototipo en modo API se encadenan con el build).
Recupera una tarea de prototipo o de construcción dado 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.
Cancela una tarea de lámpara. Si la tarea aún está 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 lámpara que se va 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.
Transmite actualizaciones en tiempo real de una tarea de lámpara mediante Server-Sent Events (SSE).
La ruta de la URL debe coincidir con la etapa de la tarea: abrir un stream en
/prototype/:buildId/stream emite un único event: error con
payloadstatus_code: 404 y cierra el stream.
Parámetros
Name
id
Type
path
Description
Identificador único de la tarea de lámpara que se va a transmitir.
Devuelve
Devuelve un stream de objetos de tarea Lamp Prototype
o Lamp Build como
Server-Sent Events. Para las tareas en estado PENDING o IN_PROGRESS, el stream de respuesta
solo incluirá los campos necesarios progress y status.
// Error event example (wrong stage or task not found)event: errordata: {"status_code": 404,"message": "Task not found"}// Message event examples illustrate task progress.// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","progress": 0,"status": "PENDING"}event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","type": "creative-lab-lamp-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 6,"model_urls": {"lamp_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/lamp.stl?Expires=***","base_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/base.stl?Expires=***" }}
Recupera una lista paginada de tus tareas de lámpara para una única etapa. La ruta
URL selecciona la etapa — /prototype devuelve tareas de prototipo; /build
devuelve tareas de build. Las tareas de la otra etapa no se incluyen en ninguna
de las dos respuestas.
Parámetros de ruta
Name
stage
Type
path
Requerido
Description
Puede ser prototype o build. La colección devuelve solo las tareas
cuya etapa coincide con la URL — obtener /prototype nunca devuelve
tareas de build 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 del tamaño de página. El máximo permitido es 50 elementos.
Name
sort_by
Type
string
predeterminado -created_at
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.
El objeto de tarea de prototipo de lámpara es una unidad de trabajo que Meshy rastrea para generar una imagen de concepto estilizada en blanco mate a partir de una foto de origen y convertirla en un modelo 3D hueco. 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 ordenable por k como detalle de implementación para los id de las tareas, 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-lamp-prototype.
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, esta pasará a ser 100.
Name
created_at
Type
timestamp
Description
Marca de tiempo de cuándo se creó la tarea, en milisegundos.
Una marca de tiempo representa el número de milisegundos transcurridos desde el 1 de enero de 1970 UTC, siguiendo
el estándar RFC 3339.
Por ejemplo, el viernes 1 de septiembre de 2023 a las 12:00:00 PM GMT se representa como 1693569600000. Esto se aplica
a todas las marcas de tiempo en la Meshy API.
Name
started_at
Type
timestamp
Description
Marca de tiempo de cuándo se inició la tarea, en milisegundos. Si la tarea aún no se ha iniciado, 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
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.
El valor de este campo solo tiene sentido si el estado de la tarea 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. 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
model_urls
Type
object
Description
URL descargables para el modelo 3D generado a partir de la imagen de concepto. Presente una vez que la tarea haya finalizado con éxito; {} antes de eso.
Name
glb
Type
string
Description
URL descargable al modelo hueco de pantalla de lámpara en blanco mate en formato GLB. Este es el modelo que procesa la etapa de construcción.
Name
thumbnail_url
Type
string
Description
URL descargable a una vista previa renderizada del modelo 3D. Cadena vacía hasta que la tarea haya finalizado con éxito.
Name
image_urls
Type
array of strings
Description
URL descargables para las imágenes de concepto candidatas generadas por esta tarea de prototipo. Actualmente, la API siempre devuelve exactamente un candidato; el campo es un array para que futuras revisiones puedan mostrar múltiples candidatos sin un cambio disruptivo.
El objeto Lamp Build Task es una unidad de trabajo que Meshy supervisa para
generar la pantalla de lámpara final imprimible en 3D a partir de una tarea de prototipo exitosa.
La compilación ejecuta el procesador de lámparas sobre el modelo 3D del prototipo para vaciarlo,
aplanar y abrir la parte inferior, y (con un preset de fijación) agregar la placa base
y el soporte de fijación.
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-lamp-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
Progress de la tarea. Si la tarea aún no ha comenzado, esta propiedad será 0. Una vez que la tarea haya finalizado con éxito, 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 tiene sentido 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
model_urls
Type
object
Description
URLs descargables para los artefactos generados, indexadas por nombre de artefacto. El conjunto de claves depende de output.format y options.light_source_preset:
Name
lamp_stl
Type
string
Description
URL descargable a lamp.stl: la pantalla de lámpara de fondo abierto junto con la placa base que lleva el orificio de fijación, o una única pantalla de lámpara sellada cuando options.light_source_preset era none. Presente cuando output.format era stl (el valor predeterminado).
Name
base_stl
Type
string
Description
URL descargable a base.stl, el soporte de fijación de la fuente de luz. Presente cuando output.format era stlyoptions.light_source_preset no era none. Se omite cuando el preset de fijación era none.
Name
bundle_zip
Type
string
Description
URL descargable a un paquete zip con todos los artefactos que emite el procesador (lamp.stl, opcionalmente base.stl, y —cuando options.include_result_json es true— result.json). Presente cuando output.format era zip. Cuando bundle_zip está presente, se omiten lamp_stl / base_stl.