Open Inventory / Docs
EndpointsSpatial roomsRoom scansScanidAssetsKind

Attach or replace a photorealistic room derivative

The API runs on your application instance. Schemas and field names come directly from the OpenAPI specification. Session-authenticated requests require a session on that instance.

PUT
/room-scans/{scanId}/assets/{kind}

Accepts raw GLB bytes for textured_mesh or raw bounded PLY bytes for gaussian_splat. Vertices must already use the scan's shared ARKit world frame (metres, right-handed, Y-up); no alignment transform is inferred. The web client renders PLY as a bounded point-splat preview; textured GLB is the full photorealistic path. This mutable enrichment does not change the idempotent identity of the original room capture. Content-Length is required before the server buffers the body.

Authorization

bearerAuth
headerAuthorizationBearer <inv_ token>

Path Parameters

scanId*string
Formatuuid
kind*string
Value in"world_map""model_usdz""structure_model""guide_image""textured_mesh""gaussian_splat"

Header Parameters

X-Organization-ID?string

Organization membership selected for this request. User-bound credentials may select any active membership; standalone tokens may only repeat their pinned organization ID.

Formatuuid

Request Body

body*file
Formatbinary
Lengthlength <= 80000000

Response Body

Existing derivative replaced

Example Request
curl -X PUT 'https://inventory.example.com/api/v1/room-scans/497f6eca-6276-4993-bfeb-53cbbbba6f08/assets/world_map'
Example Response
Empty