--- title: Media - Storefront API description: > A common set of fields for media content associated with [products](/docs/api/storefront/2025-07/objects/Product). Implementations include [`MediaImage`](/docs/api/storefront/2025-07/objects/MediaImage) for Shopify-hosted images, [`Video`](/docs/api/storefront/2025-07/objects/Video) for Shopify-hosted videos, [`ExternalVideo`](/docs/api/storefront/2025-07/objects/ExternalVideo) for videos hosted on platforms like YouTube or Vimeo, and [`Model3d`](/docs/api/storefront/2025-07/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: 2025-07 api_name: storefront type: interface api_type: graphql source_url: html: 'https://shopify.dev/docs/api/storefront/2025-07/interfaces/Media' md: 'https://shopify.dev/docs/api/storefront/2025-07/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/2025-07/objects/Product). Implementations include [`MediaImage`](https://shopify.dev/docs/api/storefront/2025-07/objects/MediaImage) for Shopify-hosted images, [`Video`](https://shopify.dev/docs/api/storefront/2025-07/objects/Video) for Shopify-hosted videos, [`ExternalVideo`](https://shopify.dev/docs/api/storefront/2025-07/objects/ExternalVideo) for videos hosted on platforms like YouTube or Vimeo, and [`Model3d`](https://shopify.dev/docs/api/storefront/2025-07/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/2025-07/scalars/String) A word or phrase to share the nature or contents of a media. * id [ID!](https://shopify.dev/docs/api/storefront/2025-07/scalars/ID) non-null A globally-unique ID. * media​Content​Type [Media​Content​Type!](https://shopify.dev/docs/api/storefront/2025-07/enums/MediaContentType) non-null The media content type. * presentation [Media​Presentation](https://shopify.dev/docs/api/storefront/2025-07/objects/MediaPresentation) The presentation for a media. * preview​Image [Image](https://shopify.dev/docs/api/storefront/2025-07/objects/Image) The preview image for the media. *** ## Types implemented in * [External​Video](https://shopify.dev/docs/api/storefront/2025-07/objects/ExternalVideo) OBJECT Represents a video hosted outside of Shopify. * alt [String](https://shopify.dev/docs/api/storefront/2025-07/scalars/String) A word or phrase to share the nature or contents of a media. * embed​Url [URL!](https://shopify.dev/docs/api/storefront/2025-07/scalars/URL) non-null The embed URL of the video for the respective host. * host [Media​Host!](https://shopify.dev/docs/api/storefront/2025-07/enums/MediaHost) non-null The host of the external video. * id [ID!](https://shopify.dev/docs/api/storefront/2025-07/scalars/ID) non-null A globally-unique ID. * media​Content​Type [Media​Content​Type!](https://shopify.dev/docs/api/storefront/2025-07/enums/MediaContentType) non-null The media content type. * origin​Url [URL!](https://shopify.dev/docs/api/storefront/2025-07/scalars/URL) non-null The origin URL of the video on the respective host. * presentation [Media​Presentation](https://shopify.dev/docs/api/storefront/2025-07/objects/MediaPresentation) The presentation for a media. * preview​Image [Image](https://shopify.dev/docs/api/storefront/2025-07/objects/Image) The preview image for the media. * embedded​Url [URL!](https://shopify.dev/docs/api/storefront/2025-07/scalars/URL) non-nullDeprecated * [Media​Image](https://shopify.dev/docs/api/storefront/2025-07/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/2025-07/objects/MediaImage#field-MediaImage.fields.image) field provides the actual image data with transformation options. Implements the [`Media`](https://shopify.dev/docs/api/storefront/2025-07/interfaces/Media) interface alongside other media types like [`Video`](https://shopify.dev/docs/api/storefront/2025-07/objects/Video) and [`Model3d`](https://shopify.dev/docs/api/storefront/2025-07/objects/Model3d). * alt [String](https://shopify.dev/docs/api/storefront/2025-07/scalars/String) A word or phrase to share the nature or contents of a media. * id [ID!](https://shopify.dev/docs/api/storefront/2025-07/scalars/ID) non-null A globally-unique ID. * image [Image](https://shopify.dev/docs/api/storefront/2025-07/objects/Image) The image for the media. * media​Content​Type [Media​Content​Type!](https://shopify.dev/docs/api/storefront/2025-07/enums/MediaContentType) non-null The media content type. * presentation [Media​Presentation](https://shopify.dev/docs/api/storefront/2025-07/objects/MediaPresentation) The presentation for a media. * preview​Image [Image](https://shopify.dev/docs/api/storefront/2025-07/objects/Image) The preview image for the media. * [Model3d](https://shopify.dev/docs/api/storefront/2025-07/objects/Model3d) OBJECT Represents a Shopify hosted 3D model. * alt [String](https://shopify.dev/docs/api/storefront/2025-07/scalars/String) A word or phrase to share the nature or contents of a media. * id [ID!](https://shopify.dev/docs/api/storefront/2025-07/scalars/ID) non-null A globally-unique ID. * media​Content​Type [Media​Content​Type!](https://shopify.dev/docs/api/storefront/2025-07/enums/MediaContentType) non-null The media content type. * presentation [Media​Presentation](https://shopify.dev/docs/api/storefront/2025-07/objects/MediaPresentation) The presentation for a media. * preview​Image [Image](https://shopify.dev/docs/api/storefront/2025-07/objects/Image) The preview image for the media. * sources [\[Model3d​Source!\]!](https://shopify.dev/docs/api/storefront/2025-07/objects/Model3dSource) non-null The sources for a 3d model. * [Video](https://shopify.dev/docs/api/storefront/2025-07/objects/Video) OBJECT A video hosted on Shopify's servers. Implements the [`Media`](https://shopify.dev/docs/api/storefront/2025-07/interfaces/Media) interface and provides multiple video sources through the [`sources`](https://shopify.dev/docs/api/storefront/2025-07/objects/Video#field-Video.fields.sources) field, each with [format](https://shopify.dev/docs/api/storefront/2025-07/objects/Video#field-Video.fields.sources.format), dimensions, and [URL information](https://shopify.dev/docs/api/storefront/2025-07/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/2025-07/objects/ExternalVideo) instead. * alt [String](https://shopify.dev/docs/api/storefront/2025-07/scalars/String) A word or phrase to share the nature or contents of a media. * id [ID!](https://shopify.dev/docs/api/storefront/2025-07/scalars/ID) non-null A globally-unique ID. * media​Content​Type [Media​Content​Type!](https://shopify.dev/docs/api/storefront/2025-07/enums/MediaContentType) non-null The media content type. * presentation [Media​Presentation](https://shopify.dev/docs/api/storefront/2025-07/objects/MediaPresentation) The presentation for a media. * preview​Image [Image](https://shopify.dev/docs/api/storefront/2025-07/objects/Image) The preview image for the media. * sources [\[Video​Source!\]!](https://shopify.dev/docs/api/storefront/2025-07/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 } ```