Macy's
Macy's Brand API
Browse one brand's macys.com (US) page by its page id or URL: 60 organic items per page with the same sorts and filters as search (color, special offer, price range, store pickup, any facet). Each item has id, title, brand, URL, image, current, regular and sale price, percent off, price label, on-sale flag, sale end date, deal label, promotions, rating, review count, colors and a sponsored flag. Also returns the brand page's id, name and URL, total, total_pages, the facets with counts and the filters Macy's applied. Costs 1 credit per request.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsonbrand_idintegerThe brand page id: a product's brand_page_id, or the id= of a macys.com /shop/brands/ URL (337747 is Calvin Klein, 5201 Benefit Cosmetics). A brand name alone is not enough: use search with brand for that. Pass brand_id or url.
Example: 337747
urlstringA macys.com brand page URL with its id=.
Example: https://www.macys.com/shop/brands/calvin-klein?id=337747
pageintegerResults page, 1-based, up to 1000. Defaults to 1. 60 organic items per page.
Example: 1
sortstringfeatured (default), price_low_to_high, price_high_to_low, top_rated, best_sellers or newest. The total can differ between sorts, as it does on macys.com.
brandstring | string[]Only these brands, spelled as the BRAND facet lists them (Levi's, Calvin Klein). A list of up to 20 matches any of them.
Example: Levi's
colorstring | string[]Only these colors, as the COLOR_NORMAL facet lists them (Black, Blue, Red...). A list matches any of them.
Example: Blue
special_offerstring | string[]Only items with this offer: limited_time_special, gift_with_purchase, black_friday_deal, clearance, last_act, our_lowest_price, sales_and_discounts, special_offer or today_only. A list matches any of them.
Example: clearance
min_pricenumberLowest price in US dollars. Any bound works, not only the site's price buckets; an item sold at a price range matches when its range overlaps.
Example: 50
max_pricenumberHighest price in US dollars. Either bound can be sent alone.
Example: 100
pickup_store_idintegerOnly items available for pickup at this store: a store_id from /api/v1/macys/stores (4592 is State Street, Chicago).
Example: 4592
filtersobjectAny other facet from a previous response's facets list: its name to one value or a list, up to 10 facets and 20 values each, e.g. {"GENDER": "Women", "CUSTRATINGS": "4 stars & up"}.
Example: {"GENDER": "Women"}
include_sponsoredbooleanKeep the ad-only sponsored tiles, flagged is_sponsored. Defaults to false: they are dropped and counted in sponsored_dropped. Organic items that also hold a paid slot are always kept, flagged is_sponsored.
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
res = client.macys.brand(brand_id=337747, special_offer="last_act", sort="price_low_to_high")["data"]
print(res["brand"]["name"], res["total"], "Last Act items")
for item in res["items"]:
print(item["id"], item["title"], item["price"], item["regular_price"], item["percent_off"])Response