> Documentation index: [Saleor](/llms.txt) · [This section](/api-reference/products/llms.txt)
> Source: https://docs.saleor.io/api-reference/products/objects/product-media

# ProductMedia Object

Represents a product media.

```graphql
type ProductMedia implements Node, ObjectWithMetadata {
  id: ID!
  privateMetadata: [MetadataItem!]!
  privateMetafield(
    key: String!
  ): String
  privateMetafields(
    keys: [String!]
  ): Metadata
  metadata: [MetadataItem!]!
  metafield(
    key: String!
  ): String
  metafields(
    keys: [String!]
  ): Metadata
  sortOrder: Int
  alt: String!
  type: ProductMediaType!
  oembedData: JSONString!
  url(
    size: Int
    format: ThumbnailFormatEnum = ORIGINAL
  ): String!
  productId: ID
}
```

<a id="fields"></a>

### Fields

<a id="id"></a>

#### [`id`](#id) ● [`ID!`](/api-reference/miscellaneous/scalars/id.md)

The unique ID of the product media.

<a id="private-metadata"></a>

#### [`privateMetadata`](#private-metadata) ● [`[MetadataItem!]!`](/api-reference/miscellaneous/objects/metadata-item.md)

List of private metadata items. Requires staff permissions to access.

<a id="private-metafield"></a>

#### [`privateMetafield`](#private-metafield) ● [`String`](/api-reference/miscellaneous/scalars/string.md)

A single key from private metadata. Requires staff permissions to access.

Tip: Use GraphQL aliases to fetch multiple keys.

<a id="product-media-private-metafield-key"></a>

##### [`key`](#product-media-private-metafield-key) ● [`String!`](/api-reference/miscellaneous/scalars/string.md)

<a id="private-metafields"></a>

#### [`privateMetafields`](#private-metafields) ● [`Metadata`](/api-reference/miscellaneous/scalars/metadata.md)

Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything.

<a id="product-media-private-metafields-keys"></a>

##### [`keys`](#product-media-private-metafields-keys) ● [`[String!]`](/api-reference/miscellaneous/scalars/string.md)

<a id="metadata"></a>

#### [`metadata`](#metadata) ● [`[MetadataItem!]!`](/api-reference/miscellaneous/objects/metadata-item.md)

List of public metadata items. Can be accessed without permissions.

<a id="metafield"></a>

#### [`metafield`](#metafield) ● [`String`](/api-reference/miscellaneous/scalars/string.md)

A single key from public metadata.

Tip: Use GraphQL aliases to fetch multiple keys.

<a id="product-media-metafield-key"></a>

##### [`key`](#product-media-metafield-key) ● [`String!`](/api-reference/miscellaneous/scalars/string.md)

<a id="metafields"></a>

#### [`metafields`](#metafields) ● [`Metadata`](/api-reference/miscellaneous/scalars/metadata.md)

Public metadata. Use `keys` to control which fields you want to include. The default is to include everything.

<a id="product-media-metafields-keys"></a>

##### [`keys`](#product-media-metafields-keys) ● [`[String!]`](/api-reference/miscellaneous/scalars/string.md)

<a id="sort-order"></a>

#### [`sortOrder`](#sort-order) ● [`Int`](/api-reference/miscellaneous/scalars/int.md)

The sort order of the media.

<a id="alt"></a>

#### [`alt`](#alt) ● [`String!`](/api-reference/miscellaneous/scalars/string.md)

The alt text of the media.

<a id="type"></a>

#### [`type`](#type) ● [`ProductMediaType!`](/api-reference/products/enums/product-media-type.md)

The type of the media.

<a id="oembed-data"></a>

#### [`oembedData`](#oembed-data) ● [`JSONString!`](/api-reference/miscellaneous/scalars/jsonstring.md)

The oEmbed data of the media.

<a id="url"></a>

#### [`url`](#url) ● [`String!`](/api-reference/miscellaneous/scalars/string.md)

The URL of the media.

<a id="product-media-url-size"></a>

##### [`size`](#product-media-url-size) ● [`Int`](/api-reference/miscellaneous/scalars/int.md)

Desired longest side the image in pixels. Defaults to 4096. Images are never cropped. Pass 0 to retrieve the original size (not recommended).

<a id="product-media-url-format"></a>

##### [`format`](#product-media-url-format) ● [`ThumbnailFormatEnum`](/api-reference/miscellaneous/enums/thumbnail-format-enum.md)

The format of the image. When not provided, format of the original image will be used.

<a id="product-id"></a>

#### [`productId`](#product-id) ● [`ID`](/api-reference/miscellaneous/scalars/id.md)

Product id the media refers to.

<a id="interfaces"></a>

### Interfaces

<a id="node"></a>

#### [`Node`](/api-reference/miscellaneous/interfaces/node.md)

An object with an ID

<a id="objectwithmetadata"></a>

#### [`ObjectWithMetadata`](/api-reference/miscellaneous/interfaces/object-with-metadata.md)

<a id="member-of"></a>

### Member Of

[`Product`](/api-reference/products/objects/product.md) object  ● [`ProductMediaCreate`](/api-reference/products/objects/product-media-create.md) object  ● [`ProductMediaCreated`](/api-reference/products/objects/product-media-created.md) object  ● [`ProductMediaDelete`](/api-reference/products/objects/product-media-delete.md) object  ● [`ProductMediaDeleted`](/api-reference/products/objects/product-media-deleted.md) object  ● [`ProductMediaReorder`](/api-reference/products/objects/product-media-reorder.md) object  ● [`ProductMediaUpdate`](/api-reference/products/objects/product-media-update.md) object  ● [`ProductMediaUpdated`](/api-reference/products/objects/product-media-updated.md) object  ● [`ProductVariant`](/api-reference/products/objects/product-variant.md) object  ● [`VariantMediaAssign`](/api-reference/products/objects/variant-media-assign.md) object  ● [`VariantMediaUnassign`](/api-reference/products/objects/variant-media-unassign.md) object

<a id="implemented-by"></a>

### Implemented By

[`_Entity`](/api-reference/miscellaneous/unions/entity.md) union
