Documents, Bundles, and File Artifacts
The stored file models used for document libraries, spatial bundles, uploads, and generated outputs.
An artifact bundle groups files at one spatial location. Upload bundles contain source data such as capture images. Model bundles contain generated or directly uploaded 3D output data. Each file inside either kind is represented by a file artifact.
Parent and child bundles
previousBundleId is the bundle's parent identifier. Despite its historical
name, it describes the current parent/child relationship rather than model
version order.
When a pipeline job publishes a model bundle, the output bundle's
previousBundleId is the job's inputBundleId. The input bundle then exposes
that output in its direct children collection. Multiple jobs can therefore
produce multiple child model bundles from the same input bundle. Directly
uploaded bundles have no parent unless a server-side workflow assigns one.
The relationship is direct, not recursive: each returned bundle contains its
immediate children. Each child includes its own previousBundleId, which points
back to the parent.
List and filter bundles
List bundles at a location:
GET /v1/spatial/locations/{locationId}/bundles
Authorization: Bearer <personal-access-token>The response is paginated. Every returned bundle includes its direct
children. Combine the existing bundleType filter with these hierarchy
filters:
parentBundleId={bundleId}returns the direct children of one bundle.hasParent=truereturns child bundles.hasParent=falsereturns root bundles.hasChildren=truereturns bundles with at least one direct child.hasChildren=falsereturns leaf bundles.
For example, list uploaded input bundles that have generated outputs:
GET /v1/spatial/locations/{locationId}/bundles?bundleType=Upload&hasChildren=true
Authorization: Bearer <personal-access-token>List one input bundle's generated outputs:
GET /v1/spatial/locations/{locationId}/bundles?bundleType=Model&parentBundleId={inputBundleId}
Authorization: Bearer <personal-access-token>parentBundleId cannot be combined with hasParent=false.
Get one bundle and its direct children:
GET /v1/spatial/bundles/{bundleId}
Authorization: Bearer <personal-access-token>List bundle files and images
Bundle metadata and bundle files are paginated separately. List the files in an input or output bundle with:
GET /v1/spatial/bundles/{bundleId}/files
Authorization: Bearer <personal-access-token>Use the file artifact's contentType and name to select images. To obtain
short-lived inline URLs for displaying them, request:
GET /v1/spatial/bundles/{bundleId}/files/download?disposition=inline
Authorization: Bearer <personal-access-token>All bundle metadata, hierarchy, file-list, and download operations require
final LocationBundles=Read for the containing location.