Convierte tus fotos en imanes de nevera personalizados —un relieve de profundidad
colorizado en rectángulo redondeado con un dorso magnético plano, dimensionado
para la nevera— en dos etapas: prototype genera una imagen conceptual
colorizada a partir de tu foto de entrada, luego build convierte esa imagen
conceptual en un modelo 3D en relieve. Las dos etapas están vinculadas mediante
input_task_id.
POST /openapi/creative-lab/fridge-magnet/v1/prototype
Genera una única imagen de concepto colorizada a partir de la foto de origen. El
ID de tarea devuelto es el que se pasa como input_task_id al endpoint
de construcción. Consulta
El objeto de tarea de prototipo de imán de nevera
para conocer la forma de la respuesta.
Parámetros
Name
image_url
Type
string
Requerido
Description
Foto de origen para que Meshy la colorize en una imagen de concepto lista para imán de nevera. Actualmente admitimos los formatos .jpg, .jpeg, .png y .webp.
Hay dos formas de proporcionar la imagen:
URL de acceso público: una URL accesible desde internet públicamente.
Data URI: una data URI de la imagen codificada en base64. Ejemplo de una data URI: data:image/jpeg;base64,<tus datos de imagen codificados en base64>.
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 puedas componer el sujeto sobre cualquier fondo.
Esto controla únicamente la imagen que devuelve este endpoint. Es independiente de la opción de construcción con el mismo nombre (predeterminado true), que controla la eliminación del fondo antes del relieve.
Devuelve
La propiedad result de la respuesta contiene el id de tarea de la tarea de prototipo de imán de nevera 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 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 recuento máximo de píxeles.
URL inaccesible: no se pudo descargar el image_url (404 o timeout).
Data URI no válida: la cadena base64 tiene un formato incorrecto.
Contenido marcado: la imagen de entrada fue marcada por moderation de NSFW o de propiedad intelectual.
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
429 - Too Many Requests
Description
Has superado tu límite de tasa.
Request
POST
/openapi/creative-lab/fridge-magnet/v1/prototype
# Stage 1: generate a colorized fridge magnet concept imagecurlhttps://api.meshy.ai/openapi/creative-lab/fridge-magnet/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>" }'
Response
{"result":"01a3d8f1-8c2e-7d04-b223-3f3776a1c8c9"}
Prototype example
Start with a source photo, then generate the prototype image used by the fridge magnet build stage.
Genera el imán de nevera final apto para impresión 3D a partir de una tarea de prototipo exitosa. La construcción ejecuta un pipeline de relieve por mapa de profundidad sobre la imagen conceptual coloreada del prototipo y entrega un único artefacto de malla en el formato que solicites. Consulta
El objeto de tarea de construcción de imán de nevera 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 haber sido creado con la misma clave de API, debe haber alcanzado SUCCEEDED y debe haber producido exactamente una imagen candidata.
Las tareas de prototipo creadas a través de la aplicación web no son aceptadas: el endpoint de construcción acepta únicamente tareas de prototipo producidas por POST /openapi/creative-lab/fridge-magnet/v1/prototype y rechaza cualquier otra fuente 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 del relieve. Cada campo tiene un valor predeterminado razonable; envía solo aquellos que quieras sobrescribir.
Name
badge_shape
Type
string
predeterminado rounded-rect
Description
Silueta del contorno del imán de nevera. Valores disponibles:
circle
rounded-rect (predeterminado)
hexagon
shield
star
Name
size_mm
Type
number
predeterminado 60
Description
Longitud del lado del cuadrado delimitador del imán de nevera, en milímetros. Rango: (0, 400].
Name
relief_height_mm
Type
number
predeterminado 3.3
Description
Altura máxima del relieve por encima de la base, en milímetros. Rango: [0, 20].
Name
relief_offset_mm
Type
number
predeterminado 0
Description
Desplazamiento vertical aplicado al relieve antes de la extrusión, en milímetros. Rango: [0, 20].
Name
base_thickness_mm
Type
number
predeterminado 2.0
Description
Grosor de la placa base plana detrás del relieve, en milímetros. El valor predeterminado para el imán de nevera es una base más robusta de 2 mm, lo que le da al imán suficiente cuerpo para adherirse a la nevera sin que el relieve se sienta frágil. Rango: [0, 20].
Name
has_closed_back
Type
boolean
predeterminado true
Description
Indica si la parte trasera del imán de nevera está sellada como una superficie cerrada (el lado donde se pega el imán). Establécelo en false para obtener una carcasa abierta.
Name
relief_curve
Type
string
predeterminado linear
Description
Curva de transferencia que mapea los valores del mapa de profundidad a la altura del relieve. Valores disponibles:
linear (predeterminado)
gamma
s-curve
Name
curve_param
Type
number
predeterminado 1.0
Description
Parámetro de forma para la curva de transferencia (solo tiene relevancia cuando relief_curve es gamma). Rango: (0, 10].
Name
invert_depth
Type
boolean
predeterminado false
Description
Invierte la interpretación del mapa de profundidad para que las regiones más oscuras produzcan un relieve más alto.
Name
smoothing
Type
number
predeterminado 0.24
Description
Intensidad de suavizado aplicada al mapa de profundidad antes de la extracción del relieve. Rango: [0, 10].
Name
relief_scale
Type
number
predeterminado 1.0
Description
Multiplicador de escala vertical aplicado sobre relief_height_mm. Rango: (0, 10].
Name
depth_threshold
Type
number
predeterminado 0.1
Description
Umbral de paso bajo para los valores del mapa de profundidad; todo lo que esté por debajo de este valor se fija en cero. Rango: [0, 1].
Name
remove_background
Type
boolean
predeterminado true
Description
Elimina automáticamente el fondo de la imagen conceptual del prototipo antes de aplicar el relieve.
Es independiente del parámetro de prototipo del mismo nombre (predeterminado false), que controla si la propia imagen del prototipo se devuelve con transparencia.
Name
export_resolution
Type
integer
predeterminado 512
Description
Resolución de malla utilizada para la exportación. Rango: [64, 2048].
output
Selector opcional de formato de entrega. El valor predeterminado es glb.
Name
format
Type
string
predeterminado glb
Description
Paquete de artefactos devuelto por la construcción. Valores disponibles:
glb (predeterminado) — devuelve un único model.glb bajo model_urls.glb.
obj — comprime model.obj + model.mtl + texture.png y devuelve el paquete bajo model_urls.obj.
zip — comprime todos los artefactos que emite el generador y devuelve el paquete bajo model_urls.bundle_zip.
Devuelve
La propiedad result de la respuesta contiene el id de tarea de la tarea de construcción de imán de nevera recién creada. Consulta periódicamente el endpoint Obtener una tarea o suscríbete al stream hasta que la tarea alcance SUCCEEDED, y luego descarga el artefacto desde la única entrada en model_urls.
Modos de fallo
Name
400 - Bad Request
Description
La solicitud fue inaceptable. Causas comunes:
Parámetro faltante: input_task_id es obligatorio.
UUID inválido: El input_task_id no es un UUID válido.
Padre no exitoso: La tarea de prototipo referenciada aún no ha alcanzado SUCCEEDED.
Sin candidato: La tarea de prototipo tuvo éxito pero no produjo ninguna imagen candidata.
Opciones fuera de rango: Uno de los campos de options quedó fuera de su rango permitido o conjunto de valores enumerados.
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 aplicación web (solo las tareas de prototipo en modo API se encadenan a la construcción).
Recupera una tarea de prototipo o de construcción a partir de 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 imán de nevera. Si la tarea todavía está en estado PENDING, los
créditos consumidos en el momento de la creación se reembolsan. Las tareas que ya están
en 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 imán de nevera 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 está 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 para una tarea de imán de nevera 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 payload event: error con
status_code: 404 y cierra el stream.
Parámetros
Name
id
Type
path
Description
Identificador único de la tarea de imán de nevera a transmitir.
Devuelve
Devuelve un stream de objetos de tarea Fridge Magnet Prototype
o Fridge Magnet Build como
Server-Sent Events. Cada fotograma contiene 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.
// Error event example (wrong stage or task not found)event: errordata: {"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: messagedata: {"id": "01b4e9a2-9d3f-8e15-c334-4f4887b2d9d0","progress": 0,"status": "PENDING"}event: messagedata: {"id": "01b4e9a2-9d3f-8e15-c334-4f4887b2d9d0","type": "creative-lab-fridge-magnet-build","status": "SUCCEEDED","progress": 100,"created_at": 1729543250000,"started_at": 1729543258000,"finished_at": 1729543285000,"expires_at": 1729802485000,"task_error": null,"consumed_credits": 20,"model_urls": {"glb":"https://assets.meshy.ai/***/tasks/01b4e9a2-9d3f-8e15-c334-4f4887b2d9d0/output/model.glb?Expires=***" }}
Recupera una lista paginada de tus tareas de imán de nevera para una sola etapa. La ruta
URL selecciona la etapa: /prototype devuelve tareas de prototipo; /build
devuelve tareas de compilación. Las tareas de la otra etapa no se incluyen en ninguna
respuesta.
Parámetros de ruta
Name
stage
Type
path
Requerido
Description
Ya sea prototype o build. La colección devuelve solo tareas
cuya etapa coincide con la URL: obtener /prototype nunca devuelve
tareas de compilació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 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 imán de nevera es una unidad de trabajo que Meshy rastrea para
generar una imagen conceptual coloreada 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 tarea 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-fridge-magnet-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 tenido é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 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 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
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 es significativo 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 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 mostrar múltiples candidatos sin un cambio incompatible.
El objeto Fridge Magnet Build Task es una unidad de trabajo que Meshy supervisa
para generar la malla 3D final del imán de nevera a partir de una tarea de
prototipo exitosa. La compilación ejecuta un pipeline de relieve por mapa de
profundidad sobre la imagen conceptual del prototipo y publica un único
artefacto de malla en el formato solicitado por quien realizó la llamada.
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-fridge-magnet-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 tenido é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 tiene sentido cuando el estado es PENDING.
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. Devuelve 0 para tareas FAILED (los créditos se reembolsan en caso de fallo).
Name
model_urls
Type
object
Description
URLs descargables para el artefacto generado, indexadas por nombre de artefacto. Siempre contiene exactamente una entrada: el formato solicitado mediante el output.format de la solicitud de compilación. La clave coincide con el formato solicitado:
Name
glb
Type
string
Description
URL descargable del archivo GLB. Presente cuando output.format era glb (el valor predeterminado).
Name
obj
Type
string
Description
URL descargable de un paquete zip que contiene model.obj, model.mtl y texture.png. Presente cuando output.format era obj.
Name
bundle_zip
Type
string
Description
URL descargable de un paquete zip con todos los artefactos que emite el generador. Presente cuando output.format era zip.