Szybki start
Zacznij od utworzenia swojego klucza API
Każde żądanie w tym przewodniku go wymaga. Utworzenie klucza zajmuje kilka sekund.
Utwórz swój klucz APICztery kroki do uzyskania pierwszego modelu 3D przy użyciu Meshy REST API.
Korzystasz z asystenta kodowania AI? Zobacz naszą stronę Integracja z AI — zainstaluj Meshy MCP server, aby uzyskać dostęp do wywoływania narzędzi z Claude Code, Cursor, Windsurf i innych narzędzi kompatybilnych z MCP, lub skieruj zwykłego agenta czatu na llms.txt.
1Uzyskaj swój klucz API
Utwórz klucz API na stronie API Keys w Developer Platform — po opuszczeniu tego ekranu nie będzie można go ponownie wyświetlić, więc przechowuj go w bezpiecznym miejscu. Każde żądanie uwierzytelnia się za pomocą tokenu Bearer w nagłówku Authorization — zobacz Uwierzytelnianie.
Tworzenie i zarządzanie kluczami API wymaga płatnego planu. Konta darmowe otrzymują dedykowany, wbudowany klucz do testowania w Playground, ale nie mogą tworzyć własnych kluczy ani nimi zarządzać.

Wskazówka dotycząca bezpieczeństwa: unikaj wklejania swojego klucza bezpośrednio do skryptów — zamiast tego przechowuj go jako zmienną środowiskową: export MESHY_API_KEY="msy_...".
2Wykonaj swoje pierwsze żądanie Obraz na 3D
Wyeksportuj swój klucz, a następnie utwórz swoje pierwsze zadanie za pomocą Obraz na 3D. Pracujesz zamiast tego na podstawie promptu tekstowego lub wielu zdjęć? Zobacz Tekst na 3D lub Wiele obrazów na 3D.
Export your key
export MESHY_API_KEY="<your-api-key>"
Uruchom to w swoim terminalu (Terminal na macOS, wiersz polecenia lub PowerShell na Windows) — nie w przeglądarce.
Każdy poniższy przykład wykorzystuje to zdjęcie — podstaw własny image_url, aby wypróbować coś innego.

Request
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"
}'
3Sprawdź status zadania
Żądania natychmiast zwracają identyfikator zadania. Odpytuj ten sam punkt końcowy, aż status będzie równy SUCCEEDED — zastąp poniżej <task_id> identyfikatorem zwróconym w kroku 2.
Request
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": ""
}
}
Odpytywanie nie w Twoim stylu? Skorzystaj ze strumieniowania SSE lub webhooka, aby otrzymać powiadomienie w momencie zakończenia zadania.
4Pobierz swój model
Pobierz model z model_urls w powyższej odpowiedzi. Każdy format (GLB, FBX, OBJ, USDZ, STL) to podpisany, ograniczony czasowo URL — lub pomiń wiersz poleceń i wklej URL bezpośrednio do paska adresu przeglądarki, aby go pobrać.
Download
curl -L "<model_urls.glb from the response above>" -o model.glb

Pliki są przechowywane przez 3 dni w planach innych niż Enterprise — zobacz Przechowywanie zasobów.
Złóż to wszystko razem
Wolisz jeden skrypt, który robi wszystko naraz — tworzy, odpytuje, pobiera?
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');
Poznaj typowe przepływy pracy
Postać gotowa do gry
Dodaj szkielet do siatki humanoidalnej (rigging), aby była gotowa do animacji w Unity lub Unreal.
Learn more →Zasób lowpoly
Ustaw model_type na smart-topology w Obraz na 3D, aby uzyskać czystą siatkę gotową do użycia w grze.
Model do druku 3D
Konwertuj gotowy model do wielokolorowego pliku 3MF, gotowego do pocięcia na warstwy i wydruku.
Learn more →Następne kroki
- Wolisz interfejs użytkownika? Otwórz Developer Platform — wykonuj żądania w Playground, śledź użycie i dzienniki żądań oraz zarządzaj webhookami.
- Przeglądaj pełny dokument referencyjny API dla każdego punktu końcowego.
- Sprawdź Cennik, Limity zapytań i Błędy, zanim przejdziesz do środowiska produkcyjnego.
- Śledź dziennik zmian, aby być na bieżąco z aktualizacjami i poprawkami błędów.
- Masz opinię lub napotykasz problemy? Dołącz do naszej społeczności na Discordzie — chętnie Cię wysłuchamy!