API de Convertir
La API de Convertir te permite convertir modelos 3D existentes a diferentes formatos de archivo.
Crear una tarea de conversión
Este endpoint crea una nueva tarea de conversión de formato.
Parámetros
Solo se requiere uno de input_task_id o model_url. Si se proporcionan ambos, input_task_id tiene prioridad.
- Name
- input_task_id
- Type
- string
- Requerido
- Description
El ID de una tarea de Meshy completada cuyo modelo deseas convertir. La tarea debe tener un estado de
SUCCEEDED.
- Name
- model_url
- Type
- string
- Requerido
- Description
Una URL de acceso público o data URI que apunta a un archivo de modelo 3D. Formatos admitidos:
.glb,.gltf,.obj,.fbx,.stl. Para Data URIs, usa el MIME type:application/octet-stream.
- Name
- target_formats
- Type
- string[]
- Requerido
- Description
Una lista de formatos de salida para el modelo convertido. Valores disponibles:
glb,fbx,obj,usdz,blend,stl,3mf.
Devuelve
La propiedad result de la respuesta contiene el id de la tarea de conversión recién creada.
Modos de falla
400 - Bad Request
La solicitud fue inaceptable. Causas comunes:
- Parámetro faltante: Debe proporcionarse
model_urloinput_task_id. - target_formats faltante: Debe especificarse al menos un formato de destino.
- Tarea de entrada inválida:
input_task_iddebe hacer referencia a una tarea exitosa. - Formato de modelo inválido:
model_urlapunta a un archivo con una extensión no admitida. - URL inalcanzable: No se pudo descargar
model_url.
401 - Unauthorized
Falló la autenticación. Por favor, verifica tu clave de API.
402 - Payment Required
Créditos insuficientes para realizar esta tarea.
429 - Too Many Requests
Has excedido tu límite de tasa.
Request
curl https://api.meshy.ai/openapi/v1/convert \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"target_formats": ["fbx", "stl"]
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Recuperar una tarea de conversión
Este endpoint recupera una tarea de conversión por su ID.
Parámetros
- Name
- id
- Type
- path
- Description
El ID de la tarea de conversión que se va a recuperar.
Devuelve
El objeto de la tarea de conversión.
Request
curl https://api.meshy.ai/openapi/v1/convert/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "convert",
"model_urls": {
"glb": "",
"fbx": "https://assets.meshy.ai/.../model.fbx?Expires=...",
"obj": "",
"usdz": "",
"stl": "https://assets.meshy.ai/.../model.stl?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
Eliminar una tarea de conversión
Este endpoint elimina permanentemente una tarea de conversión, incluyendo todos los modelos y datos asociados. Esta acción es irreversible.
Parámetros de ruta
- Name
- id
- Type
- path
- Description
El ID de la tarea de conversión que se desea eliminar.
Estado de la tarea
Una tarea que aún está en PENDING se elimina y se reembolsan los
créditos consumidos en el momento de su creación.
Una tarea que ya está IN_PROGRESS no se puede eliminar: la solicitud se
rechaza con 409 Conflict y la tarea sigue ejecutándose. Los créditos de una
tarea que el worker ya ha comenzado a procesar no son reembolsables, por lo
que eliminarla a mitad de ejecución te haría perder tanto los créditos como
el resultado. Espera a que alcance el estado SUCCEEDED, FAILED o
CANCELED, y luego elimínala.
Una tarea en un estado terminal (SUCCEEDED, FAILED o CANCELED) se
elimina sin reembolso.
Devuelve
Devuelve 200 OK en caso de éxito, o 409 Conflict cuando la tarea está
IN_PROGRESS.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/convert/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS — the task is left running:
{
"message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}
Listar tareas de conversión
Este endpoint le permite recuperar una lista de tareas de conversión.
Parámetros
- 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
100elementos.
- Name
- sort_by
- Type
- string
- Description
Campo por el cual ordenar. Valores disponibles:
+created_at: Ordenar por fecha de creación en orden ascendente.-created_at: Ordenar por fecha de creación en orden descendente.
Devuelve
Devuelve una lista paginada de Los Objetos de Tarea de Conversión.
Request
curl https://api.meshy.ai/openapi/v1/convert?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "convert",
"model_urls": {
"fbx": "https://assets.meshy.ai/.../model.fbx?Expires=...",
"stl": "https://assets.meshy.ai/.../model.stl?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
]
Transmitir una Tarea de Conversión
Este endpoint transmite actualizaciones en tiempo real de una tarea de conversión mediante Server-Sent Events (SSE).
Parámetros
- Name
- id
- Type
- path
- Description
Identificador único de la tarea de conversión a transmitir.
Devuelve
Devuelve un flujo de Los Objetos de Tarea de Conversión como Server-Sent Events.
Para tareas PENDING o IN_PROGRESS, el flujo de respuesta solo incluirá los campos necesarios progress y status.
Request
curl -N https://api.meshy.ai/openapi/v1/convert/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Message event examples illustrate task progress.
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "convert",
"model_urls": {
"fbx": "https://assets.meshy.ai/.../model.fbx?Expires=...",
"stl": "https://assets.meshy.ai/.../model.stl?Expires=..."
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
"consumed_credits": 1
}
El objeto Convert Task
El objeto Convert Task representa un trabajo de conversión de formato.
Propiedades
id· string
Identificador único de la tarea.
type· string
Tipo de la tarea. El valor es convert.
model_urls· object
URLs descargables para los archivos del modelo convertido. Solo los formatos especificados en target_formats tendrán URLs. Las demás propiedades de formato estarán vacías.
progress· integer
Progreso de la tarea (0-100).
status· string
Estado de la tarea. Valores posibles: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
preceding_tasks· integer
El número de tareas precedentes. Solo tiene sentido cuando el estado es PENDING.
created_at· timestamp
Marca de tiempo de cuándo se creó la tarea, en milisegundos.
started_at· timestamp
Marca de tiempo de cuándo se inició la tarea, en milisegundos. 0 si no se ha iniciado.
finished_at· timestamp
Marca de tiempo de cuándo finalizó la tarea, en milisegundos. 0 si no ha finalizado.
task_error· object
Objeto de error si la tarea falló. Consulta Errores para más detalles.
consumed_credits· integer
El número de créditos consumidos por esta tarea (1 crédito por tarea de conversión). Devuelve 0 para las tareas FAILED.