Quickstart
From a photo to a GLB in a few minutes.
1. Create an API key
Keep it on your server in an environment variable.
export WANDY3D_API_KEY="hg_live_…"2. Top up your balance
From $5. Check it any time with a free call.
curl https://api.wandy3d.com/api/platform/balance \ -H "Authorization: Bearer $WANDY3D_API_KEY"# → {"balance_usd": "<balance>", "month_spent_usd": "<spent>", …}3. Generate a model
Send a photo, poll the task, download the GLB. The price comes off your balance and is shown in the answer.
# 1. Start a generation from a photo (Wandy 2)curl -s -X POST "https://api.wandy3d.com/generate/cloud/ultra" \ -H "Authorization: Bearer $WANDY3D_API_KEY" \ -F "file=@photo.jpg"# → {"task_id": "<task_id>", "status": "queued", "billing": {"cost_usd": "<price>", "balance_usd": "<balance>"}, …}# 2. Poll until "status" is "done"curl -s "https://api.wandy3d.com/task/<task_id>/status" \ -H "Authorization: Bearer $WANDY3D_API_KEY"# → {"status": "done", "model_id": "<model_id>", …}# 3. Get a download link, then download the GLBcurl -s "https://api.wandy3d.com/model/<model_id>/export?format=glb" \ -H "Authorization: Bearer $WANDY3D_API_KEY"# → {"status": "ready", "url": "<download_url>", "filename": "<name>.glb", …}curl -L -o model.glb "<download_url>"4. Good to know
How billing, errors and limits behave.
- Billing in every answerPaid calls answer with billing.cost_usd and billing.balance_usd, and the headers X-Wandy-Cost-USD / X-Wandy-Balance-USD.
- Errors402 insufficient_balance / monthly_limit_reached / key_limit_reached, 429 rate_limited / too_many_jobs. Every error is JSON with a code and a message.
- Automatic refundsA job that fails is refunded to your balance — you never pay for a model you did not get.
- Limits60 requests per minute per key and 5 jobs at once per account. Monthly caps on the Limits page.
