Convierte una foto de origen en un medallón de llavero imprimible en 3D — un relieve de profundidad colorizado con forma de insignia — en dos etapas: prototipo genera una imagen conceptual colorizada a partir de tu foto de entrada, luego construir convierte esa imagen conceptual en un modelo 3D en relieve. Las dos etapas están vinculadas a través de input_task_id.
Genera una imagen conceptual colorizada a partir de la foto de origen. El ID de tarea devuelto es lo que pasas como input_task_id al endpoint de construcción. Consulta
El Objeto de Tarea de Prototipo de Llavero
para la forma de la respuesta.
Parámetros
Name
image_url
Type
string
Requerido
Description
Foto de origen para que Meshy la colorice en una imagen conceptual lista para llavero. Actualmente soportamos los formatos .jpg, .jpeg, .png y .webp.
Hay dos maneras de proporcionar la imagen:
URL accesible públicamente: Una URL que es accesible desde internet público.
Data URI: Un Data URI codificado en base64 de la imagen. Ejemplo de un Data URI: data:image/jpeg;base64,<tu imagen codificada en base64>.
Name
name
Type
string
Description
Nombre de tarea opcional para propósitos de visualización. Máximo 100 caracteres.
Name
remove_background
Type
boolean
predeterminado false
Description
Cuando se establece en true, la imagen del prototipo se devuelve como un PNG RGBA transparente con el fondo eliminado, para que puedas componer el sujeto sobre cualquier fondo.
Esto controla solo la imagen que este endpoint devuelve. Es independiente de la opción de construcción del mismo nombre (por defecto true), que controla la eliminación del fondo antes del relieve.
Retornos
La propiedad result de la respuesta contiene el id de la tarea recién creada de prototipo de llavero. Consulta el endpoint Obtener una Tarea o suscríbete al stream hasta que la tarea alcance SUCCEEDED, 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:
Parámetro faltante: image_url es requerido.
Formato de imagen inválido: El image_url proporcionado no es un formato soportado (.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 conteo máximo de píxeles.
URL inalcanzable: El image_url no pudo ser descargado (404 o timeout).
Data URI inválido: La cadena base64 está mal formada.
Contenido marcado: La imagen de entrada fue marcada por moderación de NSFW o propiedad intelectual.
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
429 - Too Many Requests
Description
Has excedido tu límite de tasa.
Solicitud
POST
/openapi/creative-lab/keychain/v1/prototype
# Stage 1: generate a colorized keychain concept imagecurlhttps://api.meshy.ai/openapi/creative-lab/keychain/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>" }'
Respuesta
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Ejemplo de prototipo
Comienza con una foto de origen, luego genera la imagen del prototipo utilizada por la etapa de construcción del llavero.
Genera el medallón de llavero final imprimible en 3D a partir de una tarea de prototipo exitosa. La construcción ejecuta una canalización de relieve de mapa de profundidad en la imagen conceptual colorizada del prototipo y envía un único artefacto de malla en el formato que solicites. Consulta El Objeto de Tarea de Construcción de Llavero para la forma de la respuesta.
Parámetros
Name
input_task_id
Type
string
Requerido
Description
El ID de la tarea de un prototipo creado 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 solo acepta tareas de prototipo producidas por POST /openapi/creative-lab/keychain/v1/prototype y rechaza cualquier otra fuente con 404.
Name
name
Type
string
Description
Nombre de tarea opcional para propósitos de visualización. Máximo 100 caracteres.
options
Parámetros de ajuste opcionales para la geometría de relieve. Cada campo tiene un valor predeterminado razonable — envía solo los que deseas sobrescribir.
Name
badge_shape
Type
string
predeterminado circle
Description
Silueta del contorno del medallón del llavero. Valores disponibles:
circle (predeterminado)
rounded-rect
hexagon
shield
star
Name
size_mm
Type
number
predeterminado 40
Description
Longitud del borde del cuadrado delimitador del llavero, en milímetros. Rango: (0, 400].
Name
relief_height_mm
Type
number
predeterminado 2.2
Description
Altura máxima del relieve sobre 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 0.1
Description
Espesor de la placa base plana detrás del relieve, en milímetros. Rango: [0, 20].
Name
has_closed_back
Type
boolean
predeterminado true
Description
Si la parte trasera del medallón está sellada como una superficie cerrada. Establecer en false para una carcasa abierta.
Name
relief_curve
Type
string
predeterminado linear
Description
Curva de transferencia que asigna valores de 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 significativo 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 se conviertan en un relieve más alto.
Name
smoothing
Type
number
predeterminado 0.24
Description
Fuerza 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; cualquier valor por debajo de esto se ajusta a 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 realizar el relieve.
Separado del parámetro de prototipo del mismo nombre (predeterminado false), que controla si la imagen del prototipo en sí se devuelve con transparencia.
Name
export_resolution
Type
integer
predeterminado 512
Description
Resolución de la malla utilizada para la exportación. Rango: [64, 2048].
output
Selector de formato de cable opcional. Predeterminado a 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 cada artefacto que el generador emite y devuelve el paquete bajo model_urls.bundle_zip.
Retornos
La propiedad result de la respuesta contiene el id de la tarea de construcción de llavero recién creada. Consulta el endpoint Obtener una Tarea o suscríbete al stream hasta que la tarea alcance SUCCEEDED, luego descarga el artefacto de la única entrada en model_urls.
Modos de Fallo
Name
400 - Bad Request
Description
La solicitud no fue aceptable. Causas comunes:
Parámetro faltante: input_task_id es requerido.
UUID inválido: El input_task_id no es un UUID válido.
Padre no exitoso: La tarea de prototipo referenciada no ha alcanzado SUCCEEDED aún.
Sin candidato: La tarea de prototipo tuvo éxito pero no produjo ninguna imagen candidata.
Opciones fuera de rango: Uno de los campos de options cayó fuera de su rango permitido o conjunto de enumeración.
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 en la construcción).
Recupera una tarea de prototipo o construcción dado un id de tarea válido. La ruta 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.
Cancelar una tarea de llavero. Si la tarea aún está PENDING, los créditos
consumidos al momento de la creación son reembolsados. Las tareas que ya están
IN_PROGRESS se cancelan sin reembolso (el trabajador puede ya estar
consumiendo recursos). Las tareas que ya han alcanzado un estado terminal
(SUCCEEDED, FAILED, CANCELED) no pueden ser canceladas.
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 para la tarea de llavero a cancelar.
Retornos
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 puede ser cancelada.
Name
404 - Not Found
Description
La tarea no existe, pertenece a un usuario diferente, o su etapa no coincide con la ruta de la URL.
Transmite actualizaciones en tiempo real para una tarea de llavero a través de Server-Sent Events (SSE).
La ruta de la URL debe coincidir con la etapa de la tarea: abrir un flujo en
/prototype/:buildId/stream emite un único event: error payload con
status_code: 404 y cierra el flujo.
Parámetros
Name
id
Type
path
Description
Identificador único para la tarea de llavero a transmitir.
Retornos
Devuelve un flujo de objetos de tarea Prototipo de Llavero
o Construcción de Llavero como
Server-Sent Events. Para tareas PENDING o IN_PROGRESS, el flujo 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-keychain-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 20,"model_urls": {"glb":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/model.glb?Expires=***" }}
Recupera una lista paginada de tus tareas del llavero 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 están incluidas 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 coincide con la URL — al buscar /prototype nunca se devuelven
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 de 50 elementos.
Name
sort_by
Type
string
predeterminado -created_at
Description
Campo para ordenar. Valores disponibles:
+created_at: Ordenar por tiempo de creación en orden ascendente.
-created_at: Ordenar por tiempo de creación en orden descendente.
El objeto de tarea del prototipo de llavero es una unidad de trabajo que Meshy rastrea para generar una imagen conceptual colorizada a partir de una foto fuente. La salida de esta etapa se encadena en la etapa de construcción a través de input_task_id.
Propiedades
Name
id
Type
string
Description
Identificador único para la tarea. Aunque usamos un UUID ordenable por k para los ids de tarea como detalle de implementación, no debes hacer suposiciones sobre el formato del id.
Name
type
Type
string
Description
Tipo de la tarea. El valor es creative-lab-keychain-prototype.
Name
name
Type
string
Description
El nombre de la tarea proporcionado cuando se creó la tarea. Cadena vacía si no se proporcionó un 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, esto se convertirá en 100.
Name
created_at
Type
timestamp
Description
Marca de tiempo de cuando 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 cuando 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 cuando se terminó la tarea, en milisegundos. Si la tarea aún no ha terminado, esta propiedad será 0.
Name
expires_at
Type
timestamp
Description
Marca de tiempo de cuando expira el resultado de la tarea, en milisegundos.
Name
preceding_tasks
Type
integer
Description
El conteo de tareas precedentes.
El valor de este campo es significativo solo 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 las revisiones futuras puedan mostrar múltiples candidatos sin un cambio disruptivo.
Ejemplo de Objeto de Tarea del Prototipo de Llavero
El objeto de Tarea de Construcción de Llavero es una unidad de trabajo que Meshy sigue para generar la malla final del llavero 3D a partir de una tarea de prototipo exitosa. La construcción ejecuta una canalización de relieve de mapa de profundidad en la imagen conceptual del prototipo y publica un único artefacto de malla en el formato solicitado por el llamante.
Propiedades
Name
id
Type
string
Description
Identificador único para la tarea.
Name
type
Type
string
Description
Tipo de la tarea. El valor es creative-lab-keychain-build.
Name
name
Type
string
Description
El nombre de la tarea proporcionado cuando se creó la tarea. Cadena vacía si no se proporcionó un 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, esto se convertirá en 100.
Name
created_at
Type
timestamp
Description
Marca de tiempo de cuando se creó la tarea, en milisegundos.
Name
started_at
Type
timestamp
Description
Marca de tiempo de cuando se inició la tarea, en milisegundos.
Name
finished_at
Type
timestamp
Description
Marca de tiempo de cuando se terminó la tarea, en milisegundos.
Name
expires_at
Type
timestamp
Description
Marca de tiempo de cuando expira el resultado de la tarea, en milisegundos.
Name
preceding_tasks
Type
integer
Description
El conteo de tareas precedentes. Significativo solo cuando el estado es PENDING.
Name
task_error
Type
object
Description
Detalles del error para tareas fallidas. Consulte 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 el artefacto generado, indexados por el nombre del artefacto. Siempre contiene exactamente una entrada: el formato solicitado a través de la solicitud de construcción output.format. La clave coincide con el formato solicitado:
Name
glb
Type
string
Description
URL descargable para el archivo GLB. Presente cuando output.format era glb (el predeterminado).
Name
obj
Type
string
Description
URL descargable para 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 para un paquete zip de cada artefacto que el generador emite. Presente cuando output.format era zip.
Ejemplo de Objeto de Tarea de Construcción de Llavero