Retail pricing and sale monitoring
Use Macy's endpoints to turn retail pricing and sale monitoring into repeatable API requests with documented inputs and JSON responses.
Turn a Macy's product page into structured retail data — name, brand, department/division, category breadcrumb, sale-aware pricing, availability, images, and every purchasable color variant with its own price — then page its customer reviews with a site-wide rating histogram. All normalized JSON, credential-free.
Get full Macy's product detail, paginated customer reviews with a rating histogram, and search-box suggestions — as structured JSON.
Endpoint families
2
Documented params
7
Examples
3
Live catalog snapshot
Active endpoints
3
Methods
GET
Required params
6
Schema refs
3
{
"platform": "Macy's",
"endpoint": "macys-product",
"method": "GET",
"path": "/macys/product/{productId}",
"auth": "apiKey"
}Use cases
Get full Macy's product detail, paginated customer reviews with a rating histogram, and search-box suggestions — as structured JSON.
Use Macy's endpoints to turn retail pricing and sale monitoring into repeatable API requests with documented inputs and JSON responses.
Use Macy's endpoints to turn product catalog research into repeatable API requests with documented inputs and JSON responses.
Use Macy's endpoints to turn color-variant price tracking into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Macy's endpoint catalog — 3 endpoints, 7 documented request parameters, and 3 published response schemas — the same catalog Docs and Playground run against.
3 documented Macy's endpoints, grouped into 2 request families — Product and Suggest.
7 request parameters are documented across those Macy's endpoints, 6 of them required — the full input contract is public before you write any integration code.
3 of the 3 Macy's endpoints ship a recorded example response, and 3 carry a documented response schema — you can code against the real JSON before the first request.
Macy's endpoints document their error responses (400, 404, 429 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
3 hosted MCP tools back the Macy's endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/macys/product/{productId}
/macys/suggest
Endpoint catalog
/macys/product/{productId}Returns one Macy's product's full detail: name, brand, description, department/division, category breadcrumb, pricing (with sale detection), availability, images, aggregate rating, and every purchasable color variant with its own price. productId is a numeric id, taken from a Macy's product page's ?ID= query parameter.
Response notes
- `regular_price` and `current_price` are both the full price when the product is not on sale, and diverge when `on_sale` is `true` (`current_price` is what a shopper actually pays). - `colors` lists every purchasable color of the base product, each with its own `regular_price`/`current_price`/`on_sale` -- colors can be priced or on sale independently of each other and of the product-level price. A product with no color axis (single-SKU) returns an empty `colors` array. - `rating` and `review_count` are the product's aggregate review statistics; both are `0` when the product has no reviews yet. - `images` is the product's full image gallery as absolute URLs. - An unrecognized `productId` returns `404`. A non-numeric or missing `productId` returns `400` before any upstream request is made. Example response: ```json {"code":200,"msg":"OK","data":{"product_id":"20518101","name":"Onyx Collection Toiletry Bag","brand":"CHAMPS","description":"Introducing the Toiletry Bag from the Onyx Collection...","bullet_points":["Approximate dimensions: 11\" L x 4.25\" W x 6.25\" H","3-way zip closure for easy, versatile access and added security."],"department_name":"TRADITIONAL LUGGAGE","division_name":"LUGGAGE","categories":["Upright Luggage"],"available":true,"low_availability":false,"currency_code":"USD","regular_price":99.99,"current_price":39.99,"on_sale":true,"rating":4,"review_count":4,"images":["https://slimages.macysassets.com/is/image/MCY/products/2/optimized/31299222_fpx.tif"],"colors":[{"id":"9824974","name":"Black","regular_price":99.99,"current_price":39.99,"on_sale":true}],"url":"https://www.macys.com/shop/product/champs-onyx-collection-toiletry-bag?ID=20518101"}} ```
MCP tool macys_product
/macys/product/reviewsReturns one page of a Macy's product's normalized customer reviews, plus a site-wide rating summary (rating count, average rating, recommended ratio, rating histogram) for the product. Sourced from a separate review platform Macy's own product pages embed, distinct from the product catalog itself. 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.
Response notes
- `rating_count`, `average_rating`, `recommended_ratio`, and `rating_histogram` are the product's site-wide aggregate rating summary, not just this page. `rating_histogram` is the count of ratings per star, ascending: index 0 is 1-star, index 4 is 5-star. - Some reviews carry only a star rating with no written title/body (`ratings_only: true`); `title` and `body` are omitted for those. - A product with zero reviews, or a well-formed but unrecognized `product_id`, returns a normal, empty result (`count: 0`, `total_reviews: 0`) rather than an error -- the review source does not distinguish an unknown product id from a real, reviewless product. - A malformed `product_id` returns `400` before any upstream request is made. Example response: ```json {"code":200,"msg":"OK","data":{"product_id":"15041387","page":1,"page_size":10,"total_pages":113,"total_reviews":1128,"rating_count":1065,"average_rating":4.52,"recommended_ratio":0.87,"rating_histogram":[79,17,47,50,872],"count":10,"source_url":"https://api.bazaarvoice.com/data/reviews.json?...","fetched_at":"2026-08-11T10:00:00Z","reviews":[{"id":"256498189","rating":5,"recommended":true,"ratings_only":false,"title":"Creed Aventus","body":"I love Creed Aventus this is my second bottle. I get a lot of compliments on this. Highly recommend this cologne.","author":"Rudyh1999","submitted_at":"2026-08-07T15:08:26Z"}]}} ```
MCP tool macys_product_reviews
/macys/suggestReturns Macy's own search-box suggestions (typeahead) for a partial query: a flat list of suggested search phrases, no product data. A partial query with no real matches returns a normal, empty result rather than an error.
Response notes
- There is no pagination -- `suggestions` is a single flat list (up to 10 entries). - A partial query with no real matches returns a normal, empty result (`count: 0`, empty `suggestions`) rather than an error. Example response: ```json {"code":200,"msg":"OK","data":{"query":"dress","count":10,"suggestions":["dresses","womens summer dresses","wedding guest dresses","women petite dresses","women formal dresses","donna karan dresses","women cocktail dresses","womens plus size dresses","calvin klein dresses","adrianna papell dresses"],"source_url":"https://www.macys.com/suggester?...","fetched_at":"2026-08-12T10:00:00Z"}} ```
MCP tool macys_suggest
Related APIs
Marketplaces & Retail
Collect marketplace product signals from Amazon without building brittle storefront scrapers.
Marketplaces & Retail
Build resale, pricing, and marketplace workflows from structured eBay data.
Marketplaces & Retail
Turn public Shop.app product and merchant pages into structured JSON for e-commerce product intelligence, price research, shop monitoring, and marketplace discovery workflows.
Company coverage
Macy's, Inc. · M
Macy's is operated by Macy's, Inc. (M). Crawlora's SEC endpoints take the same company's CIK, so filings, financials, insider transactions and 13F holdings come from the same API key as the Macy's endpoints above.
SEC filings & financials API →How to scrape Macy's
Crawlora covers Macy's in three endpoints — search-box typeahead, full product detail, and paginated customer reviews — all returned as normalized JSON with one API key and no Macy's account.
Send a partial query to /macys/suggest for Macy's own typeahead — up to 10 suggested search phrases. This is phrase discovery, not a product search: the response carries no product data or IDs.
Macy's has no product-search or category-listing endpoint, so take the numeric productId from a Macy's product page's ?ID= query parameter (the same id that appears as product_id in every response).
Pass that productId to /macys/product/{productId} for name, brand, department/division, category breadcrumb, bullet points, availability, images, and pricing. regular_price and current_price are equal off-sale and diverge when on_sale is true.
colors lists each purchasable colour with its own regular_price/current_price/on_sale, so one colour can be discounted while its siblings are not — read the variant, not just the base product, when tracking markdowns.
Call /macys/product/reviews with the same product_id and page through the reviews. Each page also carries the site-wide summary: total_reviews, average_rating, recommended_ratio, and rating_histogram — counts per star, ascending, index 0 = 1-star and index 4 = 5-star.
FAQ
Not for products. /macys/suggest returns Macy's own search-box phrases (a flat list of up to 10 suggestions, no pagination and no product data), but there is no product-search or category-listing endpoint. Source productId values from Macy's product page URLs — the numeric ?ID= query parameter — rather than from a Crawlora search call.
Yes. regular_price and current_price are both the full price when the product is not on sale and diverge once on_sale is true, with current_price being what a shopper actually pays. Every colour variant repeats that same trio, so variant-level markdowns are visible too.
Pass a numeric product_id to /macys/product/reviews and page through the results. Alongside the reviews themselves you get the product's site-wide aggregate — rating count, average rating, recommended ratio, and a five-bucket rating histogram — on every page, so you can read the rating distribution without fetching all pages.
Macy's collects star-only ratings as well as written reviews. Those arrive with ratings_only set and no title or body, which is why total_reviews and the rating_count in the summary do not always match — one counts submissions, the other counts scored ratings.
No Macy's account or login is required from the caller — only your Crawlora API key. Macy's runs its storefront as a Nuxt.js single-page app behind Akamai Bot Manager, so the product data is hydrated client-side rather than present in the initial HTML; Crawlora returns the resolved JSON instead of leaving you to render it.