Szybki start

Zacznij od utworzenia swojego klucza API

Każde żądanie w tym przewodniku go potrzebuje. Utworzenie klucza zajmuje mniej niż minutę.

Utwórz swój klucz API

Cztery kroki do twojego pierwszego modelu 3D, używając Meshy REST API.


1Uzyskaj swój klucz API

Utwórz klucz API z ustawień konta — nie będziesz mógł go ponownie zobaczyć po tym ekranie, więc przechowaj go w bezpiecznym miejscu. Każde żądanie uwierzytelnia się za pomocą tokena Bearer w nagłówku Authorization — zobacz Uwierzytelnianie.

Otwórz ustawienia API z menu API, a następnie utwórz swój klucz


2Wykonaj swoje pierwsze żądanie Obraz na 3D

Eksportuj swój klucz, a następnie utwórz swoje pierwsze zadanie z Obraz na 3D. Pracujesz z tekstowym promptem lub wieloma zdjęciami? Zobacz Tekst na 3D lub Wiele obrazów na 3D.

Eksportuj swój klucz

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

Każdy przykład poniżej używa tego zdjęcia — zamień na swój własny image_url, aby spróbować czegoś innego.

Przykładowa ilustracja postaci fantasy używana jako wejście Obraz na 3D w tym przewodniku
Przykładowe wejście

Żądanie

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

3Sprawdź status zadania

Żądania zwracają natychmiast identyfikator zadania. Odpytywanie tego samego punktu końcowego, aż status będzie SUCCEEDED — zamień <task_id> poniżej na identyfikator zwrócony w kroku 2.

Żądanie

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

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

4Pobierz swój model

Pobierz model z model_urls w odpowiedzi powyżej. Każdy format (GLB, FBX, OBJ, USDZ, STL) to podpisany, czasowo ograniczony URL — lub pomiń linię poleceń i wklej URL bezpośrednio do paska adresu przeglądarki, aby go pobrać.

Pobierz

model_urls.glb
curl -L "<model_urls.glb from the response above>" -o model.glb
Wynikowy model 3D wygenerowany z przykładowego zdjęcia postaci fantasy
Twój wynik

Połącz wszystko razem

Wolisz jeden skrypt, który robi wszystko — tworzy, odpytywa, pobiera?

Pełny skrypt

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

Poznaj typowe przepływy pracy


Następne kroki