---
title: "Get a Macy's product's customer reviews"
method: GET
path: "/macys/product/reviews"
tags: ["Macy's"]
---

# Get a Macy's product's customer reviews

`GET /macys/product/reviews`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/macys/product/reviews`
- Auth: API key in header `x-api-key`

Returns one page of a Macy's product's customer reviews, plus a site-wide rating summary (rating count, average rating, recommended ratio, rating histogram) for the product. product_id is a numeric id, the same one used by GET /macys/product/{productId}. A product with zero reviews, or a well-formed but unrecognized product_id, returns a normal, empty result rather than an error.

## Query parameters

- `product_id` string, required
- `page` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- MacysProductReviewsResponseDoc
  - `code` integer
  - `data` MacysProductReviewsResponse
    - `average_rating` number
    - `count` integer
    - `fetched_at` string
    - `page` integer
    - `page_size` integer
    - `product_id` string
    - `rating_count` integer: RatingCount, AverageRating, RecommendedRatio, and RatingHistogram are the product's site-wide aggregate rating summary, not just this page -- absent (zero-valued) for a product with no reviews yet.
    - `rating_histogram` integer[]: RatingHistogram is the count of ratings per star, ascending: index 0 is 1-star, index 4 is 5-star.
    - `recommended_ratio` number
    - `reviews` MacysReview[]
      - `author` string
      - `body` string
      - `id` string
      - `location` string
      - `rating` integer
      - `ratings_only` boolean: RatingsOnly marks a review that carries only a star rating with no written title/body -- confirmed live 2026-08-11 that Macy's review platform allows these and this endpoint still surfaces them.
      - `recommended` boolean
      - `submitted_at` string
      - `title` string
    - `source_url` string
    - `total_pages` integer
    - `total_reviews` integer
  - `msg` string

## Other responses

- `400`: Bad Request
- `429`: Too Many Requests
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/afac9b012a27?raw)
