Mulai cepat

Mulai dengan membuat kunci API Anda

Setiap permintaan dalam panduan ini memerlukan satu. Membuat kunci memakan waktu kurang dari satu menit.

Buat kunci API Anda

Empat langkah menuju model 3D pertama Anda, menggunakan Meshy REST API.


1Dapatkan kunci API Anda

Buat kunci API dari pengaturan akun Anda — Anda tidak akan dapat melihatnya lagi setelah layar ini, jadi simpan di tempat yang aman. Setiap permintaan diautentikasi dengan token Bearer di header Authorization — lihat Autentikasi.

Buka Pengaturan API dari menu API, lalu buat kunci Anda


2Buat permintaan Gambar-ke-3D pertama Anda

Ekspor kunci Anda, lalu buat tugas pertama Anda dengan Gambar ke 3D. Bekerja dari prompt teks atau beberapa foto? Lihat Teks ke 3D atau Multi-Gambar ke 3D.

Ekspor kunci Anda

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

Setiap contoh di bawah ini menggunakan foto ini — ganti dengan image_url Anda sendiri untuk mencoba yang lain.

Ilustrasi karakter fantasi sampel yang digunakan sebagai input Gambar ke 3D dalam panduan ini
Input sampel

Permintaan

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.cn/images/api/quick-start/source-photo.webp"
  }'

3Periksa status tugas

Permintaan mengembalikan ID tugas segera. Polling endpoint yang sama sampai status adalah SUCCEEDED — ganti <task_id> di bawah ini dengan ID yang dikembalikan pada langkah 2.

Permintaan

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

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

4Unduh model Anda

Ambil model dari model_urls dalam respons di atas. Setiap format (GLB, FBX, OBJ, USDZ, STL) adalah URL yang ditandatangani dan dibatasi waktu — atau lewati baris perintah dan tempelkan URL langsung ke bilah alamat browser Anda untuk mengunduhnya.

Unduh

model_urls.glb
curl -L "<model_urls.glb from the response above>" -o model.glb
Model 3D yang dihasilkan dari foto karakter fantasi sampel
Hasil Anda

Gabungkan semuanya

Lebih suka satu skrip yang melakukan semuanya — membuat, polling, mengunduh?

Skrip lengkap

import axios from 'axios';
import fs from 'fs';

const headers = { Authorization: `Bearer ${process.env.MESHY_API_KEY}` };
const imageUrl = 'https://docs.meshy.cn/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');

Jelajahi alur kerja umum


Langkah selanjutnya