---
title: Media - Storefront API
description: >
  A common set of fields for media content associated with
  [products](/docs/api/storefront/2026-01/objects/Product). Implementations
  include [`MediaImage`](/docs/api/storefront/2026-01/objects/MediaImage) for
  Shopify-hosted images, [`Video`](/docs/api/storefront/2026-01/objects/Video)
  for Shopify-hosted videos,
  [`ExternalVideo`](/docs/api/storefront/2026-01/objects/ExternalVideo) for
  videos hosted on platforms like YouTube or Vimeo, and
  [`Model3d`](/docs/api/storefront/2026-01/objects/Model3d) for 3D models.


  Each implementation shares fields for alt text, content type, and preview
  images, while adding type-specific fields like embed URLs for external videos
  or source files for 3D models.
api_version: 2026-01
api_name: storefront
type: interface
api_type: graphql
source_url:
  html: 'https://shopify.dev/docs/api/storefront/latest/interfaces/Media'
  md: 'https://shopify.dev/docs/api/storefront/latest/interfaces/Media.md'
---

# Media

interface

Requires `unauthenticated_read_product_listings` access scope.

A common set of fields for media content associated with [products](https://shopify.dev/docs/api/storefront/2026-01/objects/Product). Implementations include [`MediaImage`](https://shopify.dev/docs/api/storefront/2026-01/objects/MediaImage) for Shopify-hosted images, [`Video`](https://shopify.dev/docs/api/storefront/2026-01/objects/Video) for Shopify-hosted videos, [`ExternalVideo`](https://shopify.dev/docs/api/storefront/2026-01/objects/ExternalVideo) for videos hosted on platforms like YouTube or Vimeo, and [`Model3d`](https://shopify.dev/docs/api/storefront/2026-01/objects/Model3d) for 3D models.

Each implementation shares fields for alt text, content type, and preview images, while adding type-specific fields like embed URLs for external videos or source files for 3D models.

## Fields

* alt

  [String](https://shopify.dev/docs/api/storefront/latest/scalars/String)

  A word or phrase to share the nature or contents of a media.

* id

  [ID!](https://shopify.dev/docs/api/storefront/latest/scalars/ID)

  non-null

  A globally-unique ID.

* media​Content​Type

  [Media​Content​Type!](https://shopify.dev/docs/api/storefront/latest/enums/MediaContentType)

  non-null

  The media content type.

* presentation

  [Media​Presentation](https://shopify.dev/docs/api/storefront/latest/objects/MediaPresentation)

  The presentation for a media.

* preview​Image

  [Image](https://shopify.dev/docs/api/storefront/latest/objects/Image)

  The preview image for the media.

***

## Types implemented in

* [External​Video](https://shopify.dev/docs/api/storefront/latest/objects/ExternalVideo)

  OBJECT

  Represents a video hosted outside of Shopify.

  * alt

    [String](https://shopify.dev/docs/api/storefront/latest/scalars/String)

    A word or phrase to share the nature or contents of a media.

  * embed​Url

    [URL!](https://shopify.dev/docs/api/storefront/latest/scalars/URL)

    non-null

    The embed URL of the video for the respective host.

  * host

    [Media​Host!](https://shopify.dev/docs/api/storefront/latest/enums/MediaHost)

    non-null

    The host of the external video.

  * id

    [ID!](https://shopify.dev/docs/api/storefront/latest/scalars/ID)

    non-null

    A globally-unique ID.

  * media​Content​Type

    [Media​Content​Type!](https://shopify.dev/docs/api/storefront/latest/enums/MediaContentType)

    non-null

    The media content type.

  * origin​Url

    [URL!](https://shopify.dev/docs/api/storefront/latest/scalars/URL)

    non-null

    The origin URL of the video on the respective host.

  * presentation

    [Media​Presentation](https://shopify.dev/docs/api/storefront/latest/objects/MediaPresentation)

    The presentation for a media.

  * preview​Image

    [Image](https://shopify.dev/docs/api/storefront/latest/objects/Image)

    The preview image for the media.

  * embedded​Url

    [URL!](https://shopify.dev/docs/api/storefront/latest/scalars/URL)

    non-nullDeprecated

* [Media​Image](https://shopify.dev/docs/api/storefront/latest/objects/MediaImage)

  OBJECT

  An image hosted on Shopify's content delivery network (CDN). Used for product images, brand logos, and other visual content across the storefront.

  The [`image`](https://shopify.dev/docs/api/storefront/2026-01/objects/MediaImage#field-MediaImage.fields.image) field provides the actual image data with transformation options. Implements the [`Media`](https://shopify.dev/docs/api/storefront/2026-01/interfaces/Media) interface alongside other media types like [`Video`](https://shopify.dev/docs/api/storefront/2026-01/objects/Video) and [`Model3d`](https://shopify.dev/docs/api/storefront/2026-01/objects/Model3d).

  * alt

    [String](https://shopify.dev/docs/api/storefront/latest/scalars/String)

    A word or phrase to share the nature or contents of a media.

  * id

    [ID!](https://shopify.dev/docs/api/storefront/latest/scalars/ID)

    non-null

    A globally-unique ID.

  * image

    [Image](https://shopify.dev/docs/api/storefront/latest/objects/Image)

    The image for the media.

  * media​Content​Type

    [Media​Content​Type!](https://shopify.dev/docs/api/storefront/latest/enums/MediaContentType)

    non-null

    The media content type.

  * presentation

    [Media​Presentation](https://shopify.dev/docs/api/storefront/latest/objects/MediaPresentation)

    The presentation for a media.

  * preview​Image

    [Image](https://shopify.dev/docs/api/storefront/latest/objects/Image)

    The preview image for the media.

* [Model3d](https://shopify.dev/docs/api/storefront/latest/objects/Model3d)

  OBJECT

  Represents a Shopify hosted 3D model.

  * alt

    [String](https://shopify.dev/docs/api/storefront/latest/scalars/String)

    A word or phrase to share the nature or contents of a media.

  * id

    [ID!](https://shopify.dev/docs/api/storefront/latest/scalars/ID)

    non-null

    A globally-unique ID.

  * media​Content​Type

    [Media​Content​Type!](https://shopify.dev/docs/api/storefront/latest/enums/MediaContentType)

    non-null

    The media content type.

  * presentation

    [Media​Presentation](https://shopify.dev/docs/api/storefront/latest/objects/MediaPresentation)

    The presentation for a media.

  * preview​Image

    [Image](https://shopify.dev/docs/api/storefront/latest/objects/Image)

    The preview image for the media.

  * sources

    [\[Model3d​Source!\]!](https://shopify.dev/docs/api/storefront/latest/objects/Model3dSource)

    non-null

    The sources for a 3d model.

* [Video](https://shopify.dev/docs/api/storefront/latest/objects/Video)

  OBJECT

  A video hosted on Shopify's servers. Implements the [`Media`](https://shopify.dev/docs/api/storefront/2026-01/interfaces/Media) interface and provides multiple video sources through the [`sources`](https://shopify.dev/docs/api/storefront/2026-01/objects/Video#field-Video.fields.sources) field, each with [format](https://shopify.dev/docs/api/storefront/2026-01/objects/Video#field-Video.fields.sources.format), dimensions, and [URL information](https://shopify.dev/docs/api/storefront/2026-01/objects/Video#field-Video.fields.sources.url) for adaptive playback.

  For videos hosted on external platforms like YouTube or Vimeo, use [`ExternalVideo`](https://shopify.dev/docs/api/storefront/2026-01/objects/ExternalVideo) instead.

  * alt

    [String](https://shopify.dev/docs/api/storefront/latest/scalars/String)

    A word or phrase to share the nature or contents of a media.

  * id

    [ID!](https://shopify.dev/docs/api/storefront/latest/scalars/ID)

    non-null

    A globally-unique ID.

  * media​Content​Type

    [Media​Content​Type!](https://shopify.dev/docs/api/storefront/latest/enums/MediaContentType)

    non-null

    The media content type.

  * presentation

    [Media​Presentation](https://shopify.dev/docs/api/storefront/latest/objects/MediaPresentation)

    The presentation for a media.

  * preview​Image

    [Image](https://shopify.dev/docs/api/storefront/latest/objects/Image)

    The preview image for the media.

  * sources

    [\[Video​Source!\]!](https://shopify.dev/docs/api/storefront/latest/objects/VideoSource)

    non-null

    The sources for a video.

***

##### Variables

```json
{
	"alt": "",
	"id": "",
	"mediaContentType": "",
	"presentation": "",
	"previewImage": ""
}
```

##### Schema

```graphql
interface Media {
  alt: String
  id: ID!
  mediaContentType: MediaContentType!
  presentation: MediaPresentation
  previewImage: Image
}
```
