Set Up Bundle Archive Uploads
How to upload archive files for bundle imports and track extraction through background processing.
Bundle archive uploads are intended for large photo sets and other file collections that are easier to transfer as one archive than as many individual uploads.
Flow
- Call
GET /v1/spatial/bundles/archive-upload-supportto read the supported formats and current server limits. - Call
POST /v1/spatial/locations/{locationId}/bundles/archive-upload-startto create the target bundle and receive one presigned upload destination. - Upload the archive to object storage.
- Call
POST /v1/spatial/locations/{locationId}/bundles/archive-upload-completeto enqueue extraction in the background-jobs host. - Poll
GET /v1/spatial/bundles/archive-imports/{taskId}until the task reaches a terminal state.
After extraction succeeds, the files live in the same bundle layout used by regular bundle uploads. Clients can then list bundle metadata, inspect bundle files, request a ZIP download, or start a configured pipeline job for the bundle. Bundle list and detail responses include displayName and optional capturedAt metadata; clients can supply both during archive-upload-start or regular per-file bundle upload start.
capturedAt follows the OpenAPI date-time format, which is the RFC 3339 profile of ISO 8601. Send a timezone designator with the value: prefer UTC Z, for example 2026-03-12T08:30:00Z, or send an explicit numeric offset such as 2026-03-12T09:30:00+01:00. The API stores and returns capturedAt in UTC. Offset-less timestamps are accepted for compatibility and treated as UTC. Date-only values are accepted and resolve to midnight UTC.
Supported formats
The support endpoint is the source of truth, but the current server support includes:
.zip.7z.tar.tar.gz.tgz
Encrypted archives are rejected. The importer also rejects symlinks, absolute paths, path traversal attempts, duplicate normalized targets, and archives that exceed configured limits.
Removal
Use DELETE /v1/spatial/bundles/{bundleId} to remove an imported bundle.
This endpoint currently performs an immediate hard delete:
- The bundle row is removed from the database.
- Stored bundle file records are removed from the database.
- The extracted bundle objects are removed from object storage.
- Uploaded source archive objects under the bundle prefix are removed from object storage.
- Generated bundle ZIP archives are removed from object storage.
There is no retention window or restore flow yet. Clients should present this as irreversible confirmation before calling the delete endpoint.