---
title: "List uploaded media by time range."
method: GET
path: "/cameras/media"
tags: ["Media"]
---

# List uploaded media by time range.

`GET /cameras/media`

## Request

- Base URL: `https://api.samsara.com`
- URL: `https://api.samsara.com/cameras/media`
- Auth: HTTP bearer

This endpoint returns a list of all uploaded media (video and still images) matching query parameters, with a maximum query range of one day. Additional media can be retrieved with the [Create a media retrieval request](https://developers.samsara.com/reference/postmediaretrieval) endpoint, and they will be included in the list after they are uploaded. Urls provided by this endpoint expire in 8 hours.

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

To use this endpoint, select **Read Media Retrieval** under the Safety & Cameras 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.

## Query parameters

- `vehicleIds` string, required
- `inputs` string[]
- `mediaTypes` string[]
- `triggerReasons` string[]
- `startTime` string, required
- `endTime` string, required
- `availableAfterTime` string
- `after` string

## Response `200`

OK response.

- MediaRetrievalListUploadedMediaResponseBody
  - `data` ListUploadedMediaObjectResponseBody, required
    - `media` UploadedMediaObjectResponseBody[], required: List of media retrieval objects.
      - `auxCamSerial` string: Serial number of the auxiliary camera that captured this media. Only present for analog inputs from auxiliary camera devices (e.g. Octo-1, Octo-4). Examples: ABDVJ123456789
      - `availableAtTime` string, required: Timestamp, in RFC 3339 format, at which the media item was made available. Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00
      - `cameraRole` 'leftMirrorMount' | 'leftSide' | 'rightMirrorMount' | 'rightSide' | 'rearHigh' | 'rearBumper' | 'inCab' | 'front' | 'hopper' | 'other1' | 'other2' | 'other3' | 'other4' | 'leftBev' | 'rightBev' | 'rearBev' | 'frontBev' | 'otherBev' | 'bevNotUsed': Camera role for this media. Valid values: `leftMirrorMount`, `leftSide`, `rightMirrorMount`, `rightSide`, `rearHigh`, `rearBumper`, `inCab`, `front`, `hopper`, `other1`, `other2`, `other3`, `other4`, `leftBev`, `rightBev`, `rearBev`, `frontBev`, `otherBev`, `bevNotUsed`
      - `endTime` string, required: An end time in RFC 3339 format. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00).
      - `input` 'dashcamForwardFacing' | 'dashcamInwardFacing' | 'analog1' | 'analog2' | 'analog3' | 'analog4', required: Input type for this media. Valid values: `dashcamForwardFacing`, `dashcamInwardFacing`, `analog1`, `analog2`, `analog3`, `analog4`
      - `mediaType` 'image' | 'videoHighRes' | 'videoLowRes' | 'hyperlapse', required: Type of media. Valid values: `image`, `videoHighRes`, `videoLowRes`, `hyperlapse`
      - `startTime` string, required: A start time in RFC 3339 format. Millisecond precision and timezones are supported. (Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00).
      - `triggerReason` 'api' | 'panicButton' | 'periodicStill' | 'rfidEvent' | 'safetyEvent' | 'tripEndStill' | 'tripStartStill' | 'videoRetrieval', required: Trigger reason for this media capture. Valid values: `api`, `panicButton`, `periodicStill`, `rfidEvent`, `safetyEvent`, `tripEndStill`, `tripStartStill`, `videoRetrieval`
      - `urlInfo` UrlInfoObjectResponseBody: URL info for this piece of media. This field is only populated when the 'status' response field is 'available'
        - `url` string, required: Signed URL for this piece of media. The URL expires in 8 hours (after which you must make another GET request). Examples: https://sample.s3.url.com/image.jpeg
        - `urlExpiryTime` string, required: Timestamp, in RFC 3339 format, at which the URL expires. Examples: 2019-06-13T19:08:25Z, 2019-06-13T19:08:25.455Z, OR 2015-09-15T14:00:12-04:00
      - `vehicleId` string, required: Vehicle ID for which this media was captured. Examples: 1234
  - `pagination` GoaPaginationResponseResponseBody, required: Pagination parameters.
    - `endCursor` string, required: Cursor identifier representing the last element in the response. This value should be used in conjunction with a subsequent request's 'after' query parameter. This may be an empty string if there are no more pages left to view.
    - `hasNextPage` boolean, required: True if there are more pages of results immediately available after this endCursor.

## Other responses

- `401`: Unauthorized response.
- `404`: Not Found response.
- `405`: Method Not Allowed response.
- `413`: Content Too Large response.
- `429`: Too Many Requests response.
- `500`: Internal Server Error response.
- `501`: Not Implemented response.
- `502`: Bad Gateway response.
- `503`: Service Unavailable response.
- `504`: Gateway Timeout response.
- `default`: Bad Request response.

---

[API](https://skmtc.dev/samsara/apis/samsara-api.md) - [All operations](https://skmtc.dev/samsara/apis/samsara-api/llms.txt) - [OpenAPI document](https://skmtc.dev/samsara/apis/samsara-api/revisions/a9e35d4999be?raw)
