API Changelog

Track all API changes, new endpoints, deprecations, and improvements across versions.

API Changelog

Track all changes, updates, and improvements

v3.16

minorLatest
October 6, 2026

🔒 Security Updates

  • •Every /external-assets/* and /external-providers/* endpoint takes a session token only; X-API-Key does not reach them. Imports into a team workspace need a seat that can write assets (Viewers can search, not import).

✨ New Features

  • •New: Online 3D Libraries (the API behind Assets → 3D Models → Browse Online). GET /external-assets/search?q=… searches Poly Haven, Sketchfab and Smithsonian Open Access at once and returns { items, nextCursor, providers } — normalized models with license fields (licenseId, licenseTier "allowed" | "conditions" | "blocked", commercialUseAllowed, attributionRequired), and one status per library ("ok" | "error" | "skipped" | "exhausted") so a failing library never hides the others' results. Filters: providers, category, license, commercial (default 1 hides models without a clear commercial right), format (glb | gltf), maxPolygons, pageSize (max 48); pass nextCursor back as cursor with the same filters. Results never contain a download URL.
  • •GET /external-assets/items/:provider/:id returns one model plus alreadyImported ({ assetId } when this workspace imported it before). GET /external-assets/providers lists the libraries, which filters each applies, and whether importing is available for the signed-in person.
  • •POST /external-assets/imports { provider, providerAssetId, acknowledgeLicense?, category? } imports a model as a normal 3D asset: the server re-reads the model from the library, checks its license, downloads it (50 MB model / 80 MB download limits), converts glTF to GLB, runs the same file checks as POST /assets and stores it. Returns 202 { job } — poll GET /external-assets/imports/:jobId (status queued → downloading → processing → saving → completed | failed, progress 0–100, assetId and a Configurator Readiness report when completed) — or 200 { reused: true, assetId, asset } when the workspace already has that model. GET /external-assets/imports lists the 20 most recent jobs.
  • •License gate on import: CC0, public domain and CC BY import directly; CC BY-SA and CC BY-ND need acknowledgeLicense: true (else 409 license_ack_required); NonCommercial, Editorial, store and unknown licenses are refused (403 license_blocked). Imports count toward the plan's 3D model limit (403 quota_exceeded); at most 3 run at once per workspace (429 too_many_imports).
  • •Sketchfab downloads use the signed-in person's own Sketchfab account: POST /external-providers/sketchfab/connect returns an authorize URL; GET and DELETE /external-providers/sketchfab/connection read or remove the connection (tokens are never returned). Until the connection exists, importing a Sketchfab model returns 409 auth_required — these endpoints never answer 401 for a library's own authentication failure.
  • •GET /assets list items gain externalSource (provenance of an imported model: library, model id, source URL, author, license, license URL, rights flags, a ready-made attribution line and the library's credit), readinessScore (0–100) and readinessLevel ("ready" | "needs-work" | "not-ready"). All three are null for uploaded models and absent on older deployments — treat missing as null.

v3.15

minor
October 5, 2026

v3.14

minor
October 2, 2026

v3.13

minor
October 2, 2026

v3.12

minor
October 1, 2026

v3.11

minor
September 22, 2026

v3.10

minor
September 15, 2026

v3.9

minor
September 11, 2026

v3.8

minor
August 28, 2026

v3.7

minor
August 19, 2026

v3.6

minor
August 11, 2026

v3.5

minor
August 10, 2026

v3.4

patch
April 8, 2026

v3.3

minor
April 2, 2026

v3.2

minor
March 11, 2026

v3.1.0

minor
February 27, 2026

v3.0.0

major
January 15, 2026

Continue reading