Beta APIs

[beta] Create a fleet installer photo upload.

Creates a fleet installer photo upload session and returns a presigned S3 PUT URL. Upload the file bytes directly to the presigned URL using the headers in uploadContext, then call POST /fleet/installer/photo-uploads/complete to finalize.

<b>Rate limit:</b> 100 requests/min (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).

To use this endpoint, select Write Devices under the Devices category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>

Submit Feedback: Likes, dislikes, and API feature requests should be filed as feedback in our <a href="https://forms.gle/zkD4NCH7HjKb7mm69" target="_blank">API feedback form</a>. If you encountered an issue or noticed inaccuracies in the API documentation, please <a href="https://www.samsara.com/help" target="_blank">submit a case</a> to our support team.

post/fleet/installer/photo-uploads

Request

  • Base URL
    https://api.samsara.com
  • Auth
    HTTP bearer

Request body

contentMd5string required

Base64-encoded MD5 of the file bytes. Signed into the presigned URL as Content-MD5; object storage verifies upload integrity on PUT. Must be exactly 24 characters (base64-encoded 16-byte MD5 digest).

deviceIdstring required

Samsara device ID. The device must belong to the caller's organization.

fileFormatType'imageJpeg' | 'imagePng' required

File format. Samsara maps this to the corresponding MIME type for the presigned URL. Valid values: imageJpeg, imagePng

fileNamestring required

Original file name. Max 255 characters; printable characters only; no null bytes or path separators (/ or ).

hardwareType'vehicleGateway' | 'assetGateway' | 'camera' | 'cameraConnector' | 'environmentalMonitor' | 'assetTag' | 'trackingLabel' required

Hardware category of the device being installed. Valid values: vehicleGateway, assetGateway, camera, cameraConnector, environmentalMonitor, assetTag, trackingLabel

photoType'installPhoto' | 'assetPhoto' required

Purpose of the photo. Valid values: installPhoto, assetPhoto

sizeBytesinteger required

File size in bytes. Validated against the maximum allowed size (10 MB) and signed into the presigned URL as Content-Length.

Example request

{
  "contentMd5": "rL0Y20zC+Fzt72VPzMSk2A==",
  "deviceId": "281474977961335",
  "fileFormatType": "imageJpeg",
  "fileName": "front_camera_install.jpg",
  "hardwareType": "vehicleGateway",
  "photoType": "installPhoto",
  "sizeBytes": 482193
}

Response

OK response.

Example response

{
  "data": {
    "contentMd5": "rL0Y20zC+Fzt72VPzMSk2A==",
    "createdAtTime": "2026-06-01T18:15:00Z",
    "deviceId": "281474977961335",
    "fileFormatType": "imageJpeg",
    "fileName": "front_camera_install.jpg",
    "hardwareType": "vehicleGateway",
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "photoType": "installPhoto",
    "processingStatus": "awaitingUpload",
    "sizeBytes": 482193,
    "updatedAtTime": "2026-06-01T18:15:00Z",
    "uploadContext": {
      "expiresAtTime": "2026-06-01T18:30:00Z",
      "headers": {
        "Content-Length": "482193",
        "Content-MD5": "rL0Y20zC+Fzt72VPzMSk2A==",
        "Content-Type": "image/jpeg"
      },
      "uploadUrl": "https://samsara-media.s3.amazonaws.com/fleet-installer/550e8400-e29b-41d4-a716-446655440000"
    }
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.