Skip to content

Product Review Feed Schema

Updated: Mar 21, 2023

Use this product review feed schema to onboard on to our ratings and review system for Shops. The feed should be sent over as a JSON, and contain the fields described below.

Root Elements

The top-level elements of the JSON response.

ElementDescription
aggregator Type: stringOptional. The reviews aggregator used by the store to manage their review feeds. This field stores the name of the aggregator.
store Type: StoreRequired. Information about the store for which the product reviews are for.
reviews Type: Array<Review>Required. Contains the product reviews.

Types

Store

ElementDescription
name Type: stringRequired. Name of the store the review feed is for.
id Type: stringOptional. Unique identifier of the store on the aggregator's platform.
storeUrls Type: Array<string>Optional. Domains owned by the store where they sell their products. Do not include any third-party seller websites, such as "amazon.com". Example: ["www.sephora.com", "www.sephora.de"]

Review

ElementDescription
reviewID Type: stringRequired. Unique identifier for the review.
rating Type: integerRequired. Rating, from 1–5.
title Type: stringRequired. Review title.
content Type: stringRequired. Review text. Should be a non-empty string. Emojis should be UTF-8⁠-encoded.
createdAt Type: stringRequired. Review creation date in ISO 8601⁠ format. Examples: Complete date: YYYY-MM-DD (eg 1997-07-16) Complete date plus hours and minutes: YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00) Complete date plus hours, minutes and seconds: YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00) Complete date plus hours, minutes, seconds and a decimal fraction of a second: YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)
updatedAt Type: stringOptional. When the review was last updated.
reviewImageUrls Type: Array<string>Optional. List of URLs for published images as uploaded by shoppers with the review.
incentivized Type:booleanRequired. Represents whether the review was obtained via an incentivized promotion run by the merchant.
hasVerifiedPurchase Type:booleanOptional. Represents whether the review was left after a verified purchase of the product.
reviewer Type: ReviewerRequired. Review author's information.
product Type: ProductRequired. Information about the product the review is associated with.
language Type: stringOptional. The language used for the written review. The string should be in ISO 639-1⁠ code format. Example: en
country Type: stringOptional. Country from where the review was written. The string should be in ISO 3166 Alpha-2⁠ format. See also glossary for ISO 3166⁠. Example: US
merchantResponse Type: ReviewResponseOptional. A reply to the given review from the merchant.
secondaryRatings Type: Map<string, int>Optional. JSON key-value pairs representing secondary review ratings. These can be any other ratings that were collected as part of the review. The value should be an integer between 1 and 5 with 5 being the best and 1 being the worst. Example: {"quality": 5, "shipping speed": 3, "value for price": 1}
secondaryAttributes Type: Map<string, string>Optional. JSON key-value pairs representing secondary review attributes. This can be any other free-form information that was collected as part of the review. Example: {"size": "true to size"}

Reviewer

ElementDescription
name Type: stringRequired. Full name of the reviewer. Example: John Doe
reviewerID Type: stringOptional. Unique identifier for the reviewer.
isAnonymous Type: booleanOptional. Represents whether the reviewer is anonymous.

ReviewResponse

ElementDescription
name Type: stringRequired. Full name of the person or merchant replying to the review. Example: Sephora
id Type: stringRequired. A unique identifier for the reply.
content Type: stringRequired. Reply Text. Should be a non-empty string. Emojis should be UTF-8 encoded.
createdAt Type: stringRequired. Reply Creation Date in ISO8601. Examples: Complete date: YYYY-MM-DD (eg 1997-07-16) Complete date plus hours and minutes: YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00) Complete date plus hours, minutes and seconds: YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00) Complete date plus hours, minutes, seconds and a decimal fraction of a second: YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00) .
updatedAt Type: stringOptional. When the reply was updated last.
language Type: stringOptional. The language reply was written in. The string should be in ISO 639-1 code format. Example: en
country Type: stringOptional. Country the reply was written from. The string should be in ISO 3166 Alpha-2 format. Example: US

Product

ElementDescription
name Type: stringRequired. Name of the product.
url Type: stringRequired. Link to the product detail page on the store's website.
imageUrls Type: Array<string>Optional. List of image urls associated with the product.
groupID Type: stringOptional. ID for a group of products that share reviews. You can choose to share the groupID or all of the variants directly using the variants field.
productIdentifiers Type: ProductIdentifiersOptional. List of all the different identifiers that can be used to match the reviews to a product in the Meta commerce catalog.
variants Type: Array<ProductVariant>Optional. Different variants of this product that can share the same reviews.
productStatus Type: Enum {"active", "inactive"}Optional. Status of the product. "active" if the product is still active and "inactive" if the product is no longer being sold.

ProductIdentifiers

ElementDescription
gtins Type: Array<string>Optional. Global trade item numbers (GTINs) associated with the product.
mpn Type: stringOptional. Manufacturer part number (MPN) associated with the product.
brand Type: stringOptional. Brand name associated with the product.
shopifyProductID Type: stringOptional. Shopify Product ID associated with the product.
skus Type: Array<string>Optional. Stock keeping units (SKUs) associated with the product.

ProductVariant

ElementDescription
name Type: stringRequired. Name of the product variant.
url Type: stringRequired. Link to the product detail page for the variant on the store's website.
variantIdentifiers Type: ProductIdentifiersOptional. List of all the different identifiers for the variant.

Sample Feed

{
  "aggregator": "Meta Reviews",
  "store": {
    "name": "Facebook Reality Labs",
    "id": "4d34ferw3sedfs",
    "storeUrls": ["https://portal.facebook.com/", "www.oculus.com"]
  },
  "reviews": [{
    "reviewID": "876324222345",
    "rating": 5,
    "title": "Amazing Experience!",
    "content": "The kids love it. So realistic and I can't wait for more games. Beat Saber is our favorite so far. Definitely worth the price.",
    "createdAt": "2020-11-03T10:04:37.000Z",
    "updatedAt": "2020-11-03T10:04:37.000Z",
    "reviewImageUrls": ["www.oculus.com/reviews/img1.png", "www.oculus.com/reviews/img2.png"],
    "incentivized": false,
    "hasVerifiedPurchase": true,
    "reviewer": {
      "name": "John D.",
      "reviewerID": "1233413412421",
      "isAnonymous": false
    },
    "secondaryRatings": {
       "quality": 5,
       "shipping speed": 3,
       "value for price": 1
    },
    "product": {
      "name": "Quest 2",
      "groupID": "43251",
      "url": "https://www.oculus.com/quest-2-128gb/",
      "productIdentifiers": {
        "gtins": ["20884389103321", "48384389103228"],
        "mpn": "AQP10012OZ",
        "skus": ["AD-0221-48"],
        "brand": "Oculus",
        "shopifyProductID": "2345234235423"
      },
      "variants": [{
        "name": "Quest 2 - 256 GB",
        "url": "https://www.oculus.com/quest-2-256gb/",
        "variantIdentifiers": {
          "gtins": ["30884389103328"]
        }
      }]
    }
  }]
}

Unofficial mirror for reference/search purposes. All content originates from developers.facebook.com — see the source link at the top of each page. Machine-readable indexes: llms.txt · llms-full.txt · About