Démarrage rapide
Commencez par créer votre clé API
Chaque requête dans ce guide en nécessite une. La création d'une clé prend moins d'une minute.
Créez votre clé APIQuatre étapes pour votre premier modèle 3D, en utilisant l'API REST de Meshy.
Utilisez-vous un assistant de codage IA ? Consultez notre page Intégration IA — installez le serveur MCP de Meshy pour un accès aux outils depuis Claude Code, Cursor, Windsurf, et d'autres outils compatibles MCP, ou pointez un agent de chat simple vers llms.txt.
1Obtenez votre clé API
Créez une clé API à partir des paramètres de votre compte — vous ne pourrez plus la visualiser après cet écran, alors stockez-la en lieu sûr. Chaque requête s'authentifie avec un jeton Bearer dans l'en-tête Authorization — voir Authentification.

Conseil de sécurité : évitez de coller votre clé directement dans les scripts — stockez-la plutôt comme une variable d'environnement : export MESHY_API_KEY="msy_...".
2Effectuez votre première requête Image-en-3D
Exportez votre clé, puis créez votre première tâche avec Image en 3D. Vous travaillez plutôt à partir d'un prompt textuel ou de plusieurs photos ? Consultez Texte en 3D ou Multi-image en 3D.
Exportez votre clé
export MESHY_API_KEY="<your-api-key>"
Exécutez ceci dans votre terminal (Terminal sur macOS, Invite de commandes ou PowerShell sur Windows) — pas dans un navigateur.
Chaque exemple ci-dessous utilise cette photo — remplacez-la par votre propre image_url pour essayer autre chose.

Requête
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"
}'
3Vérifiez le statut de la tâche
Les requêtes renvoient immédiatement un ID de tâche. Interrogez le même point de terminaison jusqu'à ce que status soit SUCCEEDED — remplacez <task_id> ci-dessous par l'ID retourné à l'étape 2.
Requête
curl https://api.meshy.ai/openapi/v1/image-to-3d/<task_id> \
-H "Authorization: Bearer ${MESHY_API_KEY}"
Réponse — 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": ""
}
}
Le polling n'est pas votre style ? Utilisez le streaming SSE ou un webhook pour être notifié dès qu'une tâche se termine.
4Téléchargez votre modèle
Récupérez le modèle depuis model_urls dans la réponse ci-dessus. Chaque format (GLB, FBX, OBJ, USDZ, STL) est une URL signée et limitée dans le temps — ou évitez la ligne de commande et collez l'URL directement dans la barre d'adresse de votre navigateur pour le télécharger.
Télécharger
curl -L "<model_urls.glb from the response above>" -o model.glb

Les fichiers sont conservés pendant 3 jours sur les plans non-Enterprise — voir Conservation des ressources.
Mettez tout ensemble
Vous préférez un script qui fait tout — créer, interroger, télécharger ?
Script complet
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');
Explorez les flux de travail courants
Personnage prêt pour le jeu
Riggez un maillage humanoïde avec un squelette pour qu'il soit prêt à être animé dans Unity ou Unreal.
Learn more →Ressource lowpoly
Définissez model_type sur lowpoly sur Image en 3D pour un maillage propre, prêt pour le jeu.
Modèle d'impression 3D
Convertissez un modèle fini en un fichier 3MF multicolore, prêt à être découpé et imprimé.
Learn more →Prochaines étapes
- Vous préférez une interface utilisateur ? Essayez le API Playground — configurez une requête, exécutez-la et copiez le code généré.
- Parcourez la référence API complète pour chaque point de terminaison.
- Consultez Tarification, Limites de taux, et Erreurs avant de passer en production.
- Suivez le journal des modifications pour les mises à jour et les corrections de bugs.
- Vous avez des retours ou rencontrez des problèmes ? Rejoignez notre communauté Discord — nous serions ravis de vous entendre !