Avvio rapido
Inizia creando la tua chiave API
Ogni richiesta in questa guida ne richiede una. Creare una chiave richiede pochi secondi.
Crea la tua chiave APIQuattro passaggi per ottenere il tuo primo modello 3D, usando la REST API di Meshy.
Usi un assistente di codifica AI? Consulta la nostra pagina Integrazione AI: installa il Meshy MCP server per l'accesso tramite tool-calling da Claude Code, Cursor, Windsurf e altri strumenti compatibili con MCP, oppure indirizza un semplice agente di chat verso llms.txt.
1Ottieni la tua chiave API
Crea una chiave API dalla pagina API Keys nella Developer Platform — non potrai più visualizzarla dopo questa schermata, quindi conservala in un luogo sicuro. Ogni richiesta si autentica con un token Bearer nell'header Authorization — vedi Autenticazione.
Creare e gestire le chiavi API richiede un piano a pagamento. Gli account gratuiti ottengono una chiave dedicata e integrata per i test nel Playground, ma non possono creare o gestire chiavi proprie.

Consiglio di sicurezza: evita di incollare la tua chiave direttamente negli script — memorizzala invece come variabile d'ambiente: export MESHY_API_KEY="msy_...".
2Effettua la tua prima richiesta Immagine in 3D
Esporta la tua chiave, quindi crea il tuo primo task con Immagine in 3D. Preferisci lavorare a partire da un prompt testuale o da più foto? Consulta Testo in 3D o Multi-immagine in 3D.
Export your key
export MESHY_API_KEY="<your-api-key>"
Esegui questo comando nel tuo terminale (Terminal su macOS, Prompt dei comandi o PowerShell su Windows) — non in un browser.
Ogni esempio qui sotto usa questa foto — sostituisci il tuo image_url per provare qualcos'altro.

Request
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"
}'
3Controlla lo stato del task
Le richieste restituiscono immediatamente un ID di task. Interroga lo stesso endpoint finché status non è SUCCEEDED — sostituisci <task_id> qui sotto con l'ID restituito nel passaggio 2.
Request
curl https://api.meshy.ai/openapi/v1/image-to-3d/<task_id> \
-H "Authorization: Bearer ${MESHY_API_KEY}"
Response — 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": ""
}
}
Il polling non fa per te? Usa lo streaming SSE oppure un webhook per ricevere una notifica non appena un task viene completato.
4Scarica il tuo modello
Recupera il modello da model_urls nella risposta sopra. Ogni formato (GLB, FBX, OBJ, USDZ, STL) è un URL firmato e a tempo limitato — oppure, senza usare la riga di comando, incolla direttamente l'URL nella barra degli indirizzi del tuo browser per scaricarlo.
Download
curl -L "<model_urls.glb from the response above>" -o model.glb

I file vengono conservati per 3 giorni sui piani non Enterprise — vedi Conservazione degli asset.
Mettere tutto insieme
Preferisci un unico script che faccia tutto: crea, interroga, scarica?
Full script
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');
Esplora i flussi di lavoro più comuni
Personaggio pronto per il gioco
Applica il rig a una mesh umanoide con uno scheletro in modo che sia pronta per l'animazione in Unity o Unreal.
Learn more →Asset lowpoly
Imposta model_type su lowpoly in Immagine in 3D per ottenere una mesh pulita e pronta per il gioco.
Modello per stampa 3D
Converti un modello finito in un file 3MF multicolore, pronto per essere affettato e stampato.
Learn more →Prossimi passi
- Preferisci un'interfaccia grafica? Apri la Developer Platform — esegui richieste nel Playground, monitora l'utilizzo e i log delle richieste, e gestisci i webhook.
- Esplora la documentazione di riferimento API completa per ogni endpoint.
- Controlla Prezzi, Limiti di frequenza ed Errori prima di passare alla produzione.
- Consulta il changelog per aggiornamenti e correzioni di bug.
- Hai feedback o riscontri problemi? Unisciti alla nostra community su Discord — ci farebbe piacere sentirti!