Quickstart

From a photo to a GLB in a few minutes.

  1. 1. Create an API key

    Keep it on your server in an environment variable.

    export WANDY3D_API_KEY="hg_live_…"
  2. 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. 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. 4. Good to know

    How billing, errors and limits behave.

    • Billing in every answer
      Paid calls answer with billing.cost_usd and billing.balance_usd, and the headers X-Wandy-Cost-USD / X-Wandy-Balance-USD.
    • Errors
      402 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 refunds
      A job that fails is refunded to your balance — you never pay for a model you did not get.
    • Limits
      60 requests per minute per key and 5 jobs at once per account. Monthly caps on the Limits page.