WorkspacePhotosOut
Response wrapper for GET /api/v1/devices/photos.
The workspace-wide photo listing uses a soft cap of 500 newest photos:
when the database has more matching rows than limit, the response
returns exactly limit rows ordered newest-first and has_more=True.
No full COUNT(*) is run; the caller can narrow the time range to see older
rows. There is no offset/limit pagination for this endpoint.
photos object[]required
latitude object
- number
- null
longitude object
- number
- null
location_source object
- string
- null
Possible values: [capture, fix, last_fix, track_estimate]
True when the location is an estimate rather than a fix at the photo time.
taken_at when the phone sent it, else uploaded_at.
taken_at object
When the phone says the photo was taken, or when the upload began if the phone's clock was ahead; null if it did not say.
- string<date-time>
- null
When the upload finished.
Photos among the newest limit matches left out because they have no location.
{
"photos": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"file_key": "string",
"original_name": "string",
"content_type": "string",
"size_bytes": 0,
"latitude": 0,
"longitude": 0,
"location_source": "capture",
"location_approximate": true,
"download_url": "string",
"device_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"device_name": "string",
"session_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"captured_at": "2024-07-29T15:51:28.071Z",
"taken_at": "2024-07-29T15:51:28.071Z",
"uploaded_at": "2024-07-29T15:51:28.071Z"
}
],
"has_more": true,
"unplaced_count": 0
}