meshy-5 sera retiré le 10 oct. 2026. lowpoly sera retiré le 30 oct. 2026. Changez de modèle avant ces dates pour éviter les erreurs de requête.

Démarrage rapide

Commencez par créer votre clé API

Chaque requête de ce guide en nécessite une. Créer une clé ne prend que quelques secondes.

Créer votre clé API

Quatre étapes pour obtenir votre premier modèle 3D, en utilisant l'API REST de Meshy.


1Obtenez votre clé API

Créez une clé API depuis la page API Keys dans la Developer Platform — vous ne pourrez plus la consulter après cet écran, alors conservez-la en lieu sûr. Chaque requête s'authentifie avec un jeton Bearer dans l'en-tête Authorization — voir Authentification.

Ouvrez la page API Keys dans la Developer Platform, puis créez votre clé


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 à partir d'un prompt textuel ou de plusieurs photos à la place ? Consultez Texte en 3D ou Multi-image en 3D.

Export your key

export MESHY_API_KEY="<your-api-key>"

Chaque exemple ci-dessous utilise cette photo — remplacez-la par votre propre image_url pour essayer autre chose.

Sample fantasy character illustration used as the Image to 3D input in this guide
Sample input

Request

POST
/openapi/v1/image-to-3d
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 renvoyé à l'étape 2.

Request

GET
/openapi/v1/image-to-3d/:id
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": ""
  }
}

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 à durée limitée — ou passez-vous de la ligne de commande et collez directement l'URL dans la barre d'adresse de votre navigateur pour le télécharger.

Download

model_urls.glb
curl -L "<model_urls.glb from the response above>" -o model.glb
The resulting 3D model generated from the sample fantasy character photo
Your result

Tout rassembler

Vous préférez un seul script qui fait tout : créer, interroger, télécharger ?

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, headers: resHeaders } = await axios.get(`https://api.meshy.ai/openapi/v1/image-to-3d/${taskId}`, { headers });
  task = data;
  if (task.status === 'SUCCEEDED' || task.status === 'FAILED') break;
  const waitSeconds = Number(resHeaders['retry-after']) || 5;
  await new Promise((resolve) => setTimeout(resolve, waitSeconds * 1000));
}

// 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');

Explorer les workflows courants


Étapes suivantes

  • Vous préférez une interface utilisateur ? Ouvrez la Developer Platform — exécutez des requêtes dans le Playground, suivez l'utilisation et les journaux de requêtes, et gérez vos webhooks.
  • Parcourez la référence API complète pour chaque point de terminaison.
  • Consultez Tarification, Limites de débit et Erreurs avant de passer en production.
  • Suivez le journal des modifications pour les mises à jour et corrections de bugs.
  • Vous avez des retours ou rencontrez des problèmes ? Rejoignez notre communauté Discord — nous serions ravis d'avoir de vos nouvelles !