Put 3D generation inside your product

The same tools as the studio, behind a REST API. Let your users turn a photo into a 3D product view, generate game items on demand, or batch-produce a prop library from a spreadsheet.

Node.js: image to 3D with a webhook
import crypto from "node:crypto";

const res = await fetch("https://api.threed.site/v1/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.THREED_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    mode: "image",
    image_urls: ["https://example.com/sneaker.jpg"],
    webhook_url: "https://yourapp.com/hooks/threed",
  }),
});
const job = await res.json(); // { id, status: "queued", credits: 30 }

// In your webhook handler: verify before trusting the payload
export function verify(rawBody, signature, secret) {
  const expected = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature));
}
Python: text to 3D with polling
import os, time, requests

API = "https://api.threed.site/v1"
H = {"Authorization": f"Bearer {os.environ['THREED_KEY']}"}

job = requests.post(f"{API}/generations", headers=H, json={
    "mode": "text",
    "prompt": "low-poly pine tree, stylised",
    "options": {"target_triangles": 1500},
}).json()

while job["status"] in ("queued", "running"):
    time.sleep(5)
    job = requests.get(f"{API}/generations/{job['id']}", headers=H).json()

asset = job["assets"][0]["id"]
url = requests.get(f"{API}/assets/{asset}/download", headers=H,
                   params={"format": "glb"}).json()["url"]

Every job follows the same three calls

  1. 1

    Create

    POST to /generations with a mode and inputs. You get a job ID straight away.
  2. 2

    Wait

    Poll the job, or pass a webhook URL and get a signed POST when it finishes.
  3. 3

    Download

    Request any export format and receive a short-lived signed URL to the file.

What teams build with it

  • E-commerce: sellers upload product photos and get a 3D and AR viewer on the listing.
  • Games and UGC platforms: players describe an item and it appears in their inventory.
  • Asset pipelines: a nightly job generates, remeshes and exports a list of props.
  • Print-on-demand: customers design a figurine from a description and receive an STL.

Built for production

  • Keys stored only as hashes, revocable at any time, with their last use shown.
  • HMAC-signed webhooks with automatic retries for about 21 hours.
  • Per-plan concurrency limits and clear, documented error codes.

API questions

Which plans include the API?
The Studio plan. See pricing. API calls use the same credits as the studio.
Can end users of my app own the models?
Yes. The outputs belong to you, and you can pass those rights to your users under your own terms. See licensing.
Are there official SDKs?
The API is plain REST and JSON, so any HTTP client works. The examples on this page use only standard libraries, and the documentation covers every endpoint.

Start building

Create a test key and make your first request in a few minutes.