--- title: Media - Storefront API description: > A common set of fields for media content associated with [products](/docs/api/storefront/2026-04/objects/Product). Implementations include [`MediaImage`](/docs/api/storefront/2026-04/objects/MediaImage) for Shopify-hosted images, [`Video`](/docs/api/storefront/2026-04/objects/Video) for Shopify-hosted videos, [`ExternalVideo`](/docs/api/storefront/2026-04/objects/ExternalVideo) for videos hosted on platforms like YouTube or Vimeo, and [`Model3d`](/docs/api/storefront/2026-04/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-04 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-04/objects/Product). Implementations include [`MediaImage`](https://shopify.dev/docs/api/storefront/2026-04/objects/MediaImage) for Shopify-hosted images, [`Video`](https://shopify.dev/docs/api/storefront/2026-04/objects/Video) for Shopify-hosted videos, [`ExternalVideo`](https://shopify.dev/docs/api/storefront/2026-04/objects/ExternalVideo) for videos hosted on platforms like YouTube or Vimeo, and [`Model3d`](https://shopify.dev/docs/api/storefront/2026-04/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. *** ##### Variables ```json { "alt": "", "id": "", "mediaContentType": "", "presentation": "", "previewImage": "" } ``` ##### Schema ```graphql interface Media { alt: String id: ID! mediaContentType: MediaContentType! presentation: MediaPresentation previewImage: Image } ```