Skip to main content


Any offered product or service. For example, a pair of shoes; a haircut; or an episode of a TV show streamed online.

The Product type allows you to provide details about a product such as the product brand, logo and ID. This type can be used as any kind of product that is not CreativeWork item. Product is analogous, and structurally similar to, the JATS XML <product> element which contains the metadata concerning one product (for example, a book, software package, website, or hardware component) discussed in an article. To meet Google's guidelines for Product instances are required to have image and name properties.


Name@idTypeDescriptionInherited from
alternateNamesschema:alternateNameArray of stringAlternate names (aliases) for the item.Thing
brandsschema:brandArray of BrandBrands that the product is labelled with.Product
descriptionschema:descriptionArray of BlockContent or Array of InlineContent or stringA description of the item. See note 1.Thing
idschema:idstringThe identifier for this item.Entity
identifiersschema:identifierArray of (PropertyValue or string)Any kind of identifier for any kind of Thing. See note 2.Thing
imagesschema:imageArray of (ImageObject or Format 'uri')Images of the item.Thing
logoschema:logoImageObject or Format 'uri'The logo of the product.Product
metastencila:metaobjectMetadata associated with this item.Entity
nameschema:namestringThe name of the item.Thing
productIDschema:productIDstringProduct identification code.Product
urlschema:urlFormat 'uri'The URL of the item.Thing


  1. description : Allows for the description to be an array of nodes (e.g. an array of inline content, or a couple of paragraphs), or a string. The minItems restriction avoids a string being coerced into an array with a single string item.
  2. identifiers : Some identifiers have specific properties e.g the issn property for the Periodical type. These should be used in preference to this property which is intended for identifiers that do not yet have a specific property. Identifiers can be represented as strings, but using a PropertyValue will usually be better because it allows for propertyID (i.e. the type of identifier).


"type": "Product",
"brand": {
"type": "Brand",
"name": "Astro"
"name": "Astrolabe",
"logo": {
"type": "ImageObject",
"contentUrl": "",
"caption": "Astrolabe Logo"
"productID": "AA55"
  • Parent: Thing
  • Descendants: None

Available as


This documentation was generated from Product.schema.yaml.