Szybki start
Zacznij od utworzenia klucza API
Każde żądanie w tym przewodniku go potrzebuje. Utworzenie klucza zajmuje kilka sekund.
Utwórz swój klucz APICztery kroki dzielące Cię od pierwszego modelu 3D, przy użyciu REST API Meshy.
Korzystasz z asystenta AI do kodowania? 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 zgodnych z MCP, lub wskaż zwykłego agenta czatu na plik 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 planu płatnego. Konta darmowe otrzymują dedykowany, wbudowany klucz do testów w Playground, ale nie mogą tworzyć własnych kluczy ani nimi zarządzać.

Wskazówka dotycząca bezpieczeństwa: unikaj wklejania klucza bezpośrednio do skryptów — zamiast tego zapisz 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.
Wyeksportuj swój klucz
export MESHY_API_KEY="<your-api-key>"
Uruchom to w terminalu (Terminal na macOS, Command Prompt lub PowerShell na Windows) — nie w przeglądarce.
Każdy poniższy przykład wykorzystuje to zdjęcie — podmień image_url na własne, aby wypróbować coś innego.

Żądanie
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 przyjmie wartość SUCCEEDED — zastąp poniżej <task_id> identyfikatorem zwróconym w kroku 2.
Żądanie
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 — możesz też pominąć wiersz poleceń i wkleić URL bezpośrednio w pasku adresu przeglądarki, aby go pobrać.
Pobieranie
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.
Połącz to wszystko w jedną całość
Wolisz jeden skrypt, który wykonuje wszystko naraz — tworzy, odpytuje, 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.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');
Poznaj typowe scenariusze pracy
Postać gotowa do gry
Dodaj szkielet do siatki humanoidalnej, aby była gotowa do animacji w Unity lub Unreal.
Learn more →Zasób lowpoly
Ustaw model_type na lowpoly w Obraz na 3D, aby uzyskać czystą, gotową do gry siatkę.
Model do druku 3D
Konwertuj gotowy model do wielokolorowego pliku 3MF, gotowego do cięcia na warstwy i druku.
Learn more →Kolejne kroki
- Wolisz interfejs użytkownika? Otwórz Developer Platform — uruchamiaj żądania w Playground, śledź użycie i logi żądań oraz zarządzaj webhookami.
- Przeglądaj pełne dokumentacja API dla każdego punktu końcowego.
- Sprawdź Cennik, Limity zapytań oraz Błędy, zanim przejdziesz do środowiska produkcyjnego.
- Śledź dziennik zmian, aby być na bieżąco z aktualizacjami i poprawkami błędów.
- Masz uwagi lub napotkałeś problemy? Dołącz do naszej społeczności na Discordzie — chętnie Cię wysłuchamy!