API de Fidget Colapsable de Creative Lab
Convierte una foto en un juguete fidget colapsable imprimible de una sola pieza en una sola tarea. La silueta del sujeto se convierte en anillos concéntricos anidados que se colapsan planos y se estiran de nuevo. El juguete se imprime en una sola pieza, sin necesidad de ensamblaje.
POST /openapi/creative-lab/fidget-collapsible/v1
A diferencia de los demás endpoints de Creative Lab, este no tiene etapas separadas de prototipo y construcción. No hay imágenes candidatas entre las cuales elegir, así que una sola tarea convierte la foto en un modelo 3D.
La solicitud tampoco tiene configuraciones de geometría. La aplicación web te permite establecer el tamaño, el número de capas, el ancho del espacio, el grosor de pared, la profundidad de extrusión y el abultamiento. Cada tarea de la API usa los mismos valores predeterminados para estos parámetros.
Crear una tarea de Fidget Colapsable
Genera un modelo de fidget colapsable a partir de una foto. Para conocer los campos de la tarea, consulta El objeto de tarea de Fidget Colapsable.
Cada tarea cuesta 6 créditos y requiere un plan de pago.
Request
curl https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1 \
-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"
}
Parámetros
- Name
- image_url
- Type
- string
- Requerido
- Description
La foto que se convertirá en un fidget colapsable, como una URL pública o un data URI (
data:image/jpeg;base64,<your base64-encoded image data>).La imagen debe ser un archivo JPG, JPEG, PNG o WebP de hasta 20 MB.
La silueta del sujeto se convierte en los anillos, por lo que un sujeto con un contorno claro y cerrado funciona mejor. Un fondo recargado, varios sujetos separados o formas muy delgadas pueden dejar muy poca área para las paredes anidadas. En ese caso, la tarea falla.
- Name
- name
- Type
- string
- Description
Un nombre para la tarea, de hasta 100 caracteres. Se devuelve en el campo
namede la tarea, y Meshy no lo graba en el modelo. Un nombre más largo devuelve400.
Devuelve
El campo result contiene el ID de la nueva tarea. Obtén la tarea o transmítela hasta que status sea SUCCEEDED. Luego descarga el archivo STL imprimible desde model_urls.stl. Para previsualizar el modelo primero, descarga el archivo GLB desde model_urls.glb cuando esté presente.
Modos de falla
- Name
400 - Bad Request- Description
La solicitud no puede ejecutarse. Por ejemplo:
- Falta
image_url. - La imagen no es un archivo JPG, JPEG, PNG o WebP.
- La imagen es demasiado pequeña, supera los 20 MB o excede el número máximo de píxeles.
- Meshy no puede descargar la imagen, por ejemplo porque la URL devuelve
404o se agota el tiempo de espera. - El data URI no es un base64 válido.
- La imagen fue marcada como NSFW.
El mensaje de error indica qué problema encontró. Corrige la solicitud y vuelve a enviarla.
- Falta
- Name
401 - Unauthorized- Description
Falta la clave de API o no es válida. Verifica el encabezado
Authorization.
- Name
402 - Payment Required- Description
Se aplica una de las siguientes condiciones:
- La cuenta no tiene suficientes créditos.
- La clave de API, el espacio de trabajo o el miembro alcanzó su límite de créditos.
- La cuenta está en el plan gratuito.
Revisa tus créditos y tu plan, luego vuelve a intentarlo.
- Name
403 - Forbidden- Description
Tu equipo tiene activado IP Filtering, y Meshy marcó la imagen por propiedad intelectual de terceros. Envía una imagen sobre la que tengas derechos de uso.
- Name
429 - Too Many Requests- Description
Se alcanzó uno de estos límites:
- Enviaste más solicitudes de las que permite tu límite de tasa. Espera unos segundos y vuelve a intentarlo. Consulta Límites de tasa.
- Hay demasiadas tareas tuyas en cola o en ejecución. Espera a que terminen algunas y vuelve a intentarlo.
- En un plan ilimitado sin créditos restantes, alcanzaste el número de tareas que pueden ejecutarse sin créditos. Espera a que termine una tarea, o agrega créditos.
- Name
500 - Internal Server Error- Description
Meshy tuvo un error de servidor, por ejemplo porque no pudo ejecutar la verificación de propiedad intelectual en la imagen. Meshy no crea la tarea y reembolsa cualquier crédito que haya cobrado. Vuelve a intentar la solicitud.
Obtener una tarea de Collapsible Fidget
Devuelve una tarea de Collapsible Fidget. Solo se devuelven las tareas creadas con este endpoint. Una tarea de otro endpoint de Creative Lab, o una creada en la aplicación web, devuelve 404.
Para conocer los campos, consulta El objeto de tarea Collapsible Fidget.
Request
curl https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1/018a210d-8ba4-705c-b111-1f1776f7f578 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "creative-lab-fidget-collapsible",
"name": "",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1729123456000,
"started_at": 1729123460000,
"finished_at": 1729123512000,
"expires_at": 1729382712000,
"preceding_tasks": 0,
"task_error": null,
"consumed_credits": 6,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
}
}
Parámetros
- Name
- id
- Type
- path
- Description
El ID de la tarea proveniente de la respuesta de creación.
Devuelve
El objeto de tarea Collapsible Fidget.
Modos de fallo
- Name
400 - Bad Request- Description
idno es un ID de tarea válido. Envía el IDresultde la respuesta de creación.
- Name
403 - Forbidden- Description
Tu equipo tiene activado el Filtrado de IP, y Meshy marcó la imagen de la tarea por propiedad intelectual de terceros. Los equipos en el plan Enterprise no reciben este error. Crea una tarea a partir de una imagen sobre la que tengas los derechos de uso.
- Name
404 - Not Found- Description
Ninguna tarea de Collapsible Fidget con este ID pertenece a tu cuenta, o la tarea no se creó con este endpoint. Verifica el ID.
- Name
500 - Internal Server Error- Description
Meshy no pudo ejecutar la verificación de propiedad intelectual. Vuelve a intentar la solicitud.
Eliminar una tarea de Collapsible Fidget
Cancela una tarea de Collapsible Fidget. Cancelar una tarea PENDING reembolsa sus créditos. Una tarea IN_PROGRESS se cancela sin reembolso, porque un worker ya la ha iniciado. Una tarea con un estado final (SUCCEEDED, FAILED o CANCELED) no se puede cancelar.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1/018a210d-8ba4-705c-b111-1f1776f7f578 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// Returns 204 No Content on success (empty body).
Parámetros de ruta
- Name
- id
- Type
- path
- Description
El ID de la tarea a cancelar.
Devuelve
204 No Content con un cuerpo vacío.
Modos de fallo
- Name
400 - Bad Request- Description
Se aplica uno de los siguientes casos:
idno es un ID de tarea válido. Envía el IDresultde la respuesta de creación.- La tarea ya tiene un estado final (
SUCCEEDED,FAILEDoCANCELED), por lo que no se puede cancelar.
- Name
404 - Not Found- Description
Ninguna tarea de Collapsible Fidget con este ID pertenece a tu cuenta, o la tarea no fue creada con este endpoint. Verifica el ID.
Transmitir en streaming una tarea de Collapsible Fidget
Transmite las actualizaciones de una tarea de Collapsible Fidget como eventos enviados por el servidor (SSE). Si la tarea no existe o no se creó con este endpoint, el stream envía un evento error con status_code: 404 y se cierra.
Request
curl -N https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1/018a210d-8ba4-705c-b111-1f1776f7f578/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Error event example (task not found, or not created through this endpoint)
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 following PENDING frame is shortened to the fields that change.
event: message
data: {
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "creative-lab-fidget-collapsible",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1729123456000,
"started_at": 1729123460000,
"finished_at": 1729123512000,
"expires_at": 1729382712000,
"task_error": null,
"consumed_credits": 6,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
}
}
Parámetros
- Name
- id
- Type
- path
- Description
El ID de la tarea proveniente de la respuesta de creación.
Devuelve
Un stream de objetos de tarea de Collapsible Fidget. Cada evento contiene el objeto de tarea completo, tal como lo devuelve Obtener una tarea de Collapsible Fidget. Mientras la tarea está en PENDING o IN_PROGRESS, sus campos de salida siguen vacíos (null, [] o {}), y finished_at es null.
Si el filtrado de IP bloquea el resultado de la tarea, el stream envía un evento error en su lugar, con el status_code que devolvería una solicitud get.
Listar tareas de Fidget plegable
Devuelve tus tareas de Fidget plegable, una página a la vez. Solo se incluyen las tareas creadas con este endpoint.
Request
curl https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "creative-lab-fidget-collapsible",
"name": "",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1729123456000,
"started_at": 1729123460000,
"finished_at": 1729123512000,
"expires_at": 1729382712000,
"preceding_tasks": 0,
"task_error": null,
"consumed_credits": 6,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
}
}
]
Parámetros de consulta
- Name
- page_num
- Type
- integer
- predeterminado 1
- Description
La página que se va a devolver, de
1a255.0devuelve la primera página. Un valor fuera del rango de0a255devuelve400.
- Name
- page_size
- Type
- integer
- predeterminado 10
- Description
Número de tareas por página, hasta
100. Un valor de101a255devuelve 100 tareas, y0usa el valor predeterminado. Un valor fuera del rango de0a255devuelve400.
- Name
- sort_by
- Type
- string
- predeterminado -created_at
- Description
El orden de clasificación.
Valores disponibles:
-created_at: más recientes primero+created_at: más antiguas primero
Devuelve
Un array de objetos de tarea de Fidget plegable.
El objeto de tarea de Collapsible Fidget
Una tarea de Collapsible Fidget convierte una foto en un modelo de fidget colapsable imprimible de una pieza. Es una tarea de una sola etapa, por lo que no hay ninguna tarea de prototipo de la que encadenarla. La respuesta no incluye la silueta que Meshy genera en el proceso.
Propiedades
Example Collapsible Fidget Task Object
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "creative-lab-fidget-collapsible",
"name": "",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1729123456000,
"started_at": 1729123460000,
"finished_at": 1729123512000,
"expires_at": 1729382712000,
"preceding_tasks": 0,
"task_error": null,
"consumed_credits": 6,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
}
}
- Name
- id
- Type
- string
- Description
El ID de la tarea. No dependas de su formato.
- Name
- type
- Type
- string
- Description
El tipo de tarea, siempre
creative-lab-fidget-collapsible.
- Name
- name
- Type
- string
- Description
El
nameque enviaste al crear la tarea, o""si no enviaste ninguno.
- Name
- status
- Type
- string
- Description
El estado de la tarea.
Valores disponibles:
PENDING: esperando en la colaIN_PROGRESS: generando el resultadoSUCCEEDED: final, con el resultadoFAILED: final, con el motivo entask_errorCANCELED: final, sin resultado
- Name
- progress
- Type
- integer
- Description
Porcentaje del trabajo realizado, de
0a100. Es0hasta que la tarea comienza y100cuando tiene éxito.
- 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 un worker inició la tarea, en milisegundos Unix.
nullhasta entonces.
- Name
- finished_at
- Type
- timestamp
- Description
Hora en que la tarea alcanzó un estado final, en milisegundos Unix.
nullhasta entonces.
- Name
- expires_at
- Type
- timestamp
- Description
Hora en que expira el resultado de la tarea, en milisegundos Unix. Son 3 días después de
finished_at, o 3 días después decreated_athasta que la tarea termine. Para cuentas Enterprise, que conservan los resultados de la API indefinidamente, son unos 100 años después. Consulta Retención de recursos.
- Name
- preceding_tasks
- Type
- integer
- Description
La posición de la tarea en la cola mientras está
PENDING.1significa que empieza a continuación.0después de que la tarea sale de la cola, y siempre0en los resultados de listas.
- Name
- task_error
- Type
- object
- Description
Por qué falló la tarea.
nulla menos questatusseaFAILED. Consulta Errores.
- Name
- consumed_credits
- Type
- integer
- Description
Número de créditos cobrados por la tarea, después de cualquier reembolso. Una solicitud que devuelve un error no se cobra. Una tarea fallida es
0, porque Meshy la reembolsa. Cancelar reembolsa una tarea solo mientras estéPENDING. Si Meshy no puede leer el cobro, una respuesta de obtención o de transmisión omite el campo, y una solicitud de lista devuelve500. En ese caso, reintenta la solicitud.
- Name
- model_urls
- Type
- object
- Description
URLs de descarga para el modelo 3D, vacío hasta que la tarea tenga éxito. Una tarea exitosa siempre tiene
stl, y tieneglbsolo si Meshy renderizó la vista previa.- Name
stl- Type
- string
- Description
URL de descarga para el archivo STL, que es el archivo para imprimir. Puedes abrirlo directamente en un laminador.
- Name
glb- Type
- string
- Description
URL de descarga para un archivo GLB para previsualizar el modelo en un visor 3D. Sus colores son solo para la vista previa. El archivo STL no tiene color, por lo que el fidget impreso toma su color del filamento.
Si Meshy no puede renderizar la vista previa,
model_urlsno tiene la claveglb, así que verifica la clave antes de leerla. Una tareaSUCCEEDEDsiempre tienestl.