Snelstart
Begin met het aanmaken van je API-sleutel
Elk verzoek in deze gids heeft er een nodig. Het aanmaken van een sleutel duurt slechts een paar seconden.
Maak je API-sleutel aanMaak je eerste 3D-model met de Meshy REST API in vier stappen, van het aanmaken van een API-sleutel tot het downloaden van het model.
Gebruik je een AI-codeerassistent? Om Claude Code, Cursor, Windsurf of een andere MCP-client met Meshy te verbinden, zie AI-integratie. Voor een chatagent zonder MCP-ondersteuning gebruik je llms.txt.
1Verkrijg je API-sleutel
Maak een API-sleutel aan op de pagina API Keys van het Developer Platform. Je kunt de sleutel niet opnieuw bekijken nadat je dat scherm hebt verlaten, dus bewaar hem op een veilige plek. Stuur hem bij elk verzoek mee als een Bearer-token in de Authorization-header. Zie Authenticatie.
Je hebt een betaald abonnement nodig om API-sleutels aan te maken en te beheren. Met het gratis abonnement kun je geen eigen sleutels aanmaken, en gebruikt de Playground een ingebouwde sleutel om te testen.

Houd de sleutel buiten je scripts. Bewaar hem in plaats daarvan in een omgevingsvariabele, zoals de volgende stap laat zien.
2Maak een Afbeelding naar 3D-taak aan
Stuur een afbeelding naar Afbeelding naar 3D. Om in plaats daarvan te starten vanaf een tekstprompt of meerdere foto's, gebruik je Tekst naar 3D of Multi-afbeelding naar 3D.
Bewaar eerst je sleutel in een omgevingsvariabele:
Export your key
export MESHY_API_KEY="<your-api-key>"
Voer dit uit in je terminal (Terminal op macOS, Command Prompt of PowerShell op Windows), niet in een browser.
De volgende voorbeelden gebruiken allemaal deze foto. Om een andere afbeelding te proberen, wijzig je image_url.

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"
}'
3Controleer de taakstatus
De taak draait op de achtergrond en duurt meestal een paar minuten. Haal de taak op bij hetzelfde endpoint totdat status gelijk is aan SUCCEEDED, FAILED of CANCELED. Vervang in het volgende verzoek <task_id> door de ID die stap 2 heeft teruggegeven. Wacht tussen verzoeken het aantal seconden dat in de Retry-After-header staat.
Zie Taaklevenscyclus voor typische verwerkingstijden en hoe lang je moet wachten voordat je het opgeeft.
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": null
}
Als de taak mislukt, is status gelijk aan FAILED en geeft task_error aan waarom. Corrigeer de invoer of maak een andere taak aan. Zie Fouten.
Om een melding te krijgen zodra de taak klaar is in plaats van te pollen, stream je de taak of gebruik je een webhook.
4Download je model
De bestanden staan in model_urls van het voorgaande antwoord. Elk formaat (GLB, FBX, OBJ, USDZ en STL) heeft een ondertekende URL die een beperkte tijd geldig is. Je kunt de URL ook in je browser plakken om het bestand te downloaden.
Download
curl -L "<model_urls.glb from the response above>" -o model.glb

Op elk abonnement behalve Enterprise bewaart Meshy de bestanden 3 dagen. Download de bestanden die je nodig hebt voor die tijd. Zie Asset-retentie.
Alles samenvoegen
Dit script maakt de taak aan, wacht tot deze klaar is en downloadt het model.
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, timeout: 60_000 },
);
const taskId = created.result;
// 2. Poll until it finishes, for up to 60 minutes
const deadline = Date.now() + 60 * 60 * 1000;
let task;
while (true) {
const { data, headers: resHeaders } = await axios.get(
`https://api.meshy.ai/openapi/v1/image-to-3d/${taskId}`,
{ headers, timeout: 30_000 },
);
task = data;
if (['SUCCEEDED', 'FAILED', 'CANCELED'].includes(task.status)) break;
if (Date.now() > deadline) {
// The task is still running. Check it again later with the same task ID instead of creating a new one.
throw new Error(`Task ${taskId} is still ${task.status}; check it again later`);
}
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');
Ontdek veelvoorkomende workflows
Speelklaar personage
Voorzie een humanoïde mesh van een skelet zodat deze klaar is om te animeren in Unity of Unreal.
Learn more →Smart Topology-mesh
Stel model_type in op smart-topology bij Afbeelding naar 3D voor een schone, speelklare driehoeksmesh.
3D-printmodel
Converteer een afgewerkt model naar een multicolor 3MF-bestand, klaar om te slicen en te printen.
Learn more →Volgende stappen
- Bekijk elk endpoint in de API-referentie.
- Voordat je naar productie gaat, controleer je Prijzen, Rate limits en Fouten.
- Volg stap-voor-stap recepten in het Cookbook.