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.
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));
}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
Create
POST to/generationswith a mode and inputs. You get a job ID straight away. - 2
Wait
Poll the job, or pass a webhook URL and get a signed POST when it finishes. - 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.