> ## Documentation Index
> Fetch the complete documentation index at: https://www.seam.co/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# The Media Object

> Learn how the media object represents a video clip or thumbnail image captured for a camera event, including its status and short-lived download URL.

## The media Object

Represents a piece of media, such as a video clip or a thumbnail image, that a device captured for an event. Media is in beta.

<ResponseExample>
  ```json Media theme={"dark"}
  {
    "media_id": "01a0d985-621c-7b3e-9f2d-4a5b6c7d8e9f",
    "workspace_id": "398d80b7-3f96-47c2-b85a-6f8ba21d07be",
    "device_id": "a83690b2-2b70-409a-9a94-426699b84c97",
    "event_id": "0b7f0d6a-5b1e-4d0c-9d5c-2d8f6a3e1c44",
    "media_type": "video",
    "content_type": "video/mp4",
    "status": "available",
    "url": "https://media.getseam.com/camera-event-media/...&X-Amz-Signature=...",
    "expires_at": "2025-06-16T17:04:40.000Z",
    "created_at": "2025-06-16T16:54:17.946606Z"
  }
  ```
</ResponseExample>

***

## Properties

<ResponseField name="content_type" type="String">
  MIME type of the media, such as `video/mp4` or `image/jpeg`.
</ResponseField>

<ResponseField name="created_at" type="String (ISO 8601)">
  Date and time at which the media was created.
</ResponseField>

<ResponseField name="device_id" type="String (UUID)">
  ID of the device that captured the media.
</ResponseField>

<ResponseField name="event_id" type="String (UUID)">
  ID of the event that the media belongs to.
</ResponseField>

<ResponseField name="expires_at" type="String (ISO 8601)">
  Date and time at which the media stops being available. Null when Seam does not know when the media expires.
</ResponseField>

<ResponseField name="media_id" type="String (UUID)">
  ID of the media.
</ResponseField>

<ResponseField name="media_type" type="Enum (String)">
  Type of the media: a video clip or a still image.
</ResponseField>

<ResponseField name="status" type="Enum (String)">
  Status of the media. `pending` means that Seam is still retrieving the media. `available` means that `url` can be used to download it. `unavailable` means that no media exists for the event, and `failed` means that Seam could not retrieve it.
</ResponseField>

<ResponseField name="url" type="String">
  Short-lived URL from which you can download the media. Null unless `status` is `available`. The URL expires after about five minutes. Call `/media/get` again for a new URL.
</ResponseField>

<ResponseField name="workspace_id" type="String (UUID)">
  ID of the workspace that contains the media.
</ResponseField>
