Snelstart
Begin met het aanmaken van je API-sleutel
Elke aanvraag in deze handleiding heeft er een nodig. Het aanmaken van een sleutel duurt slechts enkele seconden.
Maak je API-sleutel aanVier stappen naar je eerste 3D-model, met behulp van de Meshy REST API.
Gebruik je een AI-codeerassistent? Bekijk onze AI-integratie-pagina — installeer de Meshy MCP server voor toegang via tool-calling vanuit Claude Code, Cursor, Windsurf en andere MCP-compatibele tools, of wijs een eenvoudige chatagent naar llms.txt.
1Verkrijg uw API-sleutel
Maak een API-sleutel aan op de pagina API Keys in het Developer Platform — u kunt deze na dit scherm niet opnieuw bekijken, bewaar hem dus ergens veilig. Elk verzoek authenticeert met een Bearer-token in de Authorization-header — zie Authentication.
Het aanmaken en beheren van API-sleutels vereist een betaald abonnement. Gratis accounts krijgen een speciale, ingebouwde sleutel om te testen in de Playground, maar kunnen geen eigen sleutels aanmaken of beheren.

Beveiligingstip: plak uw sleutel niet rechtstreeks in scripts — sla deze in plaats daarvan op als omgevingsvariabele: export MESHY_API_KEY="msy_...".
2Maak je eerste Afbeelding-naar-3D-verzoek
Exporteer je sleutel en maak vervolgens je eerste taak aan met Image to 3D. Werk je liever vanuit een tekstprompt of meerdere foto's? Bekijk dan Text to 3D of Multi-Image to 3D.
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.
Elk onderstaand voorbeeld gebruikt deze foto — vervang image_url door je eigen afbeelding om iets anders te proberen.

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 wordt op de achtergrond uitgevoerd en duurt meestal een paar minuten. Poll hetzelfde endpoint totdat status gelijk is aan SUCCEEDED, FAILED of CANCELED, waarbij je <task_id> hieronder vervangt door de ID die in stap 2 is geretourneerd. Voor typische tijden en hoe lang je moet wachten, zie Task Lifecycle.
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": ""
}
}
Polling niet jouw ding? Gebruik SSE streaming of een webhook om direct een melding te krijgen zodra een taak is voltooid.
4Download je model
Haal het model op uit model_urls in de hierboven weergegeven respons. Elk formaat (GLB, FBX, OBJ, USDZ, STL) is een ondertekende URL met een beperkte geldigheidsduur — of sla de command line over en plak de URL rechtstreeks in de adresbalk van je browser om het te downloaden.
Download
curl -L "<model_urls.glb from the response above>" -o model.glb

Bestanden worden bij niet-Enterprise abonnementen 3 dagen bewaard — zie Asset-retentie.
Alles samenvoegen
Liever één script dat alles doet — aanmaken, pollen, downloaden?
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');
Explore common workflows
Spelklare personage
Voorzie een humanoïde mesh van een skelet zodat deze klaar is om te animeren in Unity of Unreal.
Learn more →Lowpoly asset
Stel model_type in op smart-topology bij Afbeelding naar 3D voor een schone, spelklare mesh.
3D-printmodel
Converteer een voltooid model naar een multi-color 3MF-bestand, klaar om te slicen en printen.
Learn more →Volgende stappen
- Heeft u liever een UI? Open het Developer Platform — voer requests uit in de Playground, volg gebruik en requestlogs, en beheer webhooks.
- Blader door de volledige API-referentie voor elk endpoint.
- Leer van werkende voorbeelden: volg stapsgewijze recepten in het Cookbook en lees tutorials en bouwverhalen op de Developer Blog.
- Bekijk Prijzen, Rate Limits en Fouten voordat u naar productie gaat.
- Houd de changelog in de gaten voor updates en bugfixes.
- Heeft u feedback of loopt u tegen problemen aan? Word lid van onze Discord community — we horen graag van u!