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.

!array('The ')Product!array(' 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!array(' item.')

Product!array(' is analogous, and structurally similar to, the \nJATS XML ')<product>!array(' element which contains the metadata concerning one product (for example, a book, software package, website, or hardware component) discussed in an article.')

!array("To meet Google's guidelines for ")Product!array(' instances are required to have ')image!array(' and ')name!array(' 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 : !array('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!array(' restriction avoids a string being coerced into an array with a single string item.')
  2. identifiers : !array('Some identifiers have specific properties e.g the ')issn!array(' property for the ')Periodical!array(' 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!array(' will usually be better because it allows for ')propertyID!array(' (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.