Inicio rápido
Comienza creando tu clave de API
Cada solicitud en esta guía necesita una. Crear una clave toma menos de un minuto.
Crea tu clave de APICuatro pasos para tu primer modelo 3D, usando la API REST de Meshy.
¿Usando un asistente de codificación con IA? Consulta nuestra página de Integración con IA — instala el servidor MCP de Meshy para acceso de llamadas de herramientas desde Claude Code, Cursor, Windsurf y otras herramientas compatibles con MCP, o apunta un agente de chat simple a llms.txt.
1Obtén tu clave de API
Crea una clave de API desde la configuración de tu cuenta — no podrás verla de nuevo después de esta pantalla, así que guárdala en un lugar seguro. Cada solicitud se autentica con un token Bearer en el encabezado Authorization — consulta Autenticación.

Consejo de seguridad: evita pegar tu clave directamente en los scripts — guárdala como una variable de entorno en su lugar: export MESHY_API_KEY="msy_...".
2Haz tu primera solicitud de Imagen a 3D
Exporta tu clave, luego crea tu primera tarea con Imagen a 3D. ¿Trabajando desde un prompt de texto o múltiples fotos? Consulta Texto a 3D o Multi-imagen a 3D.
Exporta tu clave
export MESHY_API_KEY="<your-api-key>"
Ejecuta esto en tu terminal (Terminal en macOS, Símbolo del sistema o PowerShell en Windows) — no en un navegador.
Cada ejemplo a continuación usa esta foto — cambia tu propio image_url para probar algo diferente.

Solicitud
curl https://api.meshy.ai/openapi/v1/image-to-3d \
-X POST \
-H "Authorization: Bearer ${MESHY_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"image_url": "https://docs.meshy.ai/images/api/quick-start/source-photo.webp"
}'
3Verifica el estado de la tarea
Las solicitudes devuelven un ID de tarea inmediatamente. Consulta el mismo endpoint hasta que el status sea SUCCEEDED — reemplaza <task_id> a continuación con el ID devuelto en el paso 2.
Solicitud
curl https://api.meshy.ai/openapi/v1/image-to-3d/<task_id> \
-H "Authorization: Bearer ${MESHY_API_KEY}"
Respuesta — SUCCEEDED
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"status": "SUCCEEDED",
"progress": 100,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
"fbx": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
"task_error": {
"message": ""
}
}
¿No te gusta hacer polling? Usa transmisión SSE o un webhook para recibir notificaciones en el momento en que una tarea termine.
4Descarga tu modelo
Obtén el modelo de model_urls en la respuesta anterior. Cada formato (GLB, FBX, OBJ, USDZ, STL) es una URL firmada y con tiempo limitado — o salta la línea de comandos y pega la URL directamente en la barra de direcciones de tu navegador para descargarlo.
Descargar
curl -L "<model_urls.glb from the response above>" -o model.glb

Los archivos se retienen durante 3 días en planes que no son Enterprise — consulta Retención de recursos.
Ponlo todo junto
¿Prefieres un script que haga todo — crear, consultar, descargar?
Script completo
import axios from 'axios';
import fs from 'fs';
const headers = { Authorization: `Bearer ${process.env.MESHY_API_KEY}` };
const imageUrl = 'https://docs.meshy.ai/images/api/quick-start/source-photo.webp';
// 1. Create the task
const { data: created } = await axios.post(
'https://api.meshy.ai/openapi/v1/image-to-3d',
{ image_url: imageUrl },
{ headers },
);
const taskId = created.result;
// 2. Poll until it finishes
let task;
while (true) {
const { data } = await axios.get(`https://api.meshy.ai/openapi/v1/image-to-3d/${taskId}`, { headers });
task = data;
if (task.status === 'SUCCEEDED' || task.status === 'FAILED') break;
await new Promise((resolve) => setTimeout(resolve, 5000));
}
// 3. Download the result (only if the task succeeded)
if (task.status !== 'SUCCEEDED') {
throw new Error(`Task ${task.status}: ${task.task_error?.message || 'unknown error'}`);
}
const { data: model } = await axios.get(task.model_urls.glb, { responseType: 'arraybuffer' });
fs.writeFileSync('model.glb', model);
console.log('Saved model.glb');
Explora flujos de trabajo comunes
Personaje listo para el juego
Añade un esqueleto a una malla humanoide para que esté lista para animar en Unity o Unreal.
Learn more →Recurso lowpoly
Establece model_type a lowpoly en Imagen a 3D para una malla limpia y lista para el juego.
Modelo para impresión 3D
Convierte un modelo terminado en un archivo 3MF multicolor, listo para cortar e imprimir.
Learn more →Próximos pasos
- ¿Prefieres una interfaz de usuario? Prueba el API Playground — configura una solicitud, ejecútala y copia el código generado.
- Navega la referencia completa de la API para cada endpoint.
- Consulta Precios, Límites de tasa y Errores antes de ir a producción.
- Observa el registro de cambios para actualizaciones y correcciones de errores.
- ¿Tienes comentarios o enfrentas problemas? Únete a nuestra comunidad de Discord — ¡nos encantaría saber de ti!