Get a product's reviews
Read one product's customer reviews from the store's review service: the average rating, review count and star distribution, then each review with its rating, title, text, author, verified-buyer flag, country, date, photos and videos, the merchant's reply and helpful votes. Filter to one star rating, sort, and page with a cursor. The services publish different fields, and anything a service leaves out comes back null: Loox has no titles, votes, countries or reply dates, Judge.me has no reply dates, and Okendo has no reviewer country. A missing product is a 404, and so is a product no supported service has reviews for.
/product-reviews Reviews https://api.fetchlayer.dev/shopify-stores/product-reviews Headers
Authorization string required Bearer token — your FetchLayer API key.
Parameters
store string required Store domain, or any URL on the store — for example example.com, https://example.com/products/foo, or a myshopify.com domain.
product string required The product's handle, its URL, or its numeric id.
provider string optional judgeme, yotpo, loox, okendo, stamped or reviewsio. Omit to use whichever service the store has. Naming one the store does not use is a 404; naming one it uses that has no reviews is a 200 with an empty list and a note.
limit number optional Maximum reviews returned (max 500). (default: 20)
cursor string optional Resume from a previous response's nextCursor. Send the same other parameters with it: a cursor replayed with different ones is a 400.
sort string optional newest, highest, lowest or helpful. (default: newest)
rating number optional Only reviews with this star rating, 1 to 5.
format string optional json or markdown. Markdown returns the same result rendered for a model to read. (default: json)
timeoutMs number optional Per-request time limit in milliseconds (max 120000).
Response Fields
product-reviews
Get a product's reviews
product object The product the reviews belong to: id, handle, title and url.
store string The store domain the reviews were read for.
provider string The review service that answered: judgeme, yotpo, loox, okendo, stamped or reviewsio.
summary.averageRating number Average star rating, or null when the service does not publish one.
summary.reviewCount number Total reviews the service reports, not just the ones in this response.
summary.ratingDistribution object Review count per star, keyed "1" to "5", or null when the service does not publish it.
reviews object[] The reviews, in the requested sort order.
reviews[].id string The review's id on its service.
reviews[].rating number Star rating, 1 to 5.
reviews[].title string Review headline, or null. Loox reviews have none.
reviews[].body string Review text.
reviews[].author object name, verified (a confirmed buyer) and country, each null when the service does not say. Loox and Okendo publish no country.
reviews[].createdAt string When the review was written, as an ISO timestamp, or null.
reviews[].product object The product the review was left on (id, handle, title), or null when unknown.
reviews[].media object[] Customer photos and videos, each with type and url.
reviews[].reply object The merchant's public reply (body, createdAt), or null. Loox and Judge.me publish no reply date.
reviews[].helpful object Helpful votes as up and down, or null when the service has no votes (Loox).
reviews[].sourceUrl string The page the review appears on, or null.
nextCursor string Pass back as cursor to continue, or null when there are no more reviews.
pagesScraped number Pages of reviews returned: the review count divided by the page size the service uses, rounded up, minimum 1. Rating-breakdown lookups, detection probes and retries are not counted. Each page counts as one request against your plan.
notes string[] Caveats about this result, such as a named service that has no reviews. Read it before treating a result as complete.
Request
curl -X POST "https://api.fetchlayer.dev/shopify-stores/product-reviews" \
-H "Authorization: Bearer ss-your-key" \
-H "Content-Type: application/json" \
-d '{"store":"beardbrand.com","product":"fox-hunt-mens-cologne","limit":20}'Response
{
"store": "www.beardbrand.com",
"product": {
"id": "15133252583794",
"handle": "fox-hunt-mens-cologne",
"title": "Fox Hunt Men's Cologne",
"url": "https://www.beardbrand.com/products/fox-hunt-mens-cologne"
},
"provider": "judgeme",
"summary": {
"averageRating": 4.9,
"reviewCount": 20,
"ratingDistribution": {
"1": 0,
"2": 0,
"3": 1,
"4": 0,
"5": 19
}
},
"reviews": [
{
"id": "f4335734-1c15-4ba4-b3d7-b5edf6ca2a5a",
"provider": "judgeme",
"rating": 5,
"title": "The thrill of the hunt",
"body": "Fox Hunt is my new favorite from BeardBrand, hands down.",
"author": {
"name": "Jon B.",
"verified": true,
"country": "US"
},
"createdAt": "2026-09-11T16:19:08.000Z",
"product": {
"id": "15133252583794",
"handle": "fox-hunt-mens-cologne",
"title": "Fox Hunt Men's Cologne"
},
"media": [],
"reply": null,
"helpful": {
"up": 0,
"down": 0
},
"sourceUrl": "https://www.beardbrand.com/products/fox-hunt-mens-cologne"
}
],
"nextCursor": null,
"pagesScraped": 1,
"notes": []
}