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é API

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


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.

Ouvrez les paramètres de l'API depuis le menu API, 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 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>"

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

Illustration de personnage fantastique utilisée comme entrée Image en 3D dans ce guide
Exemple d'entrée

Requête

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 retourné à l'étape 2.

Requête

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}"

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": ""
  }
}

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

model_urls.glb
curl -L "<model_urls.glb from the response above>" -o model.glb
Le modèle 3D résultant généré à partir de la photo de personnage fantastique d'exemple
Votre résultat

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


Prochaines étapes