ScavioScavio
Pricing
Tools
Sign InsGet Startedg
Blog
Saks6 min readNov 10, 2026

Is That Saks Sale Too Good to Be True? How to Check a Designer's List and Sale Price Every Day

Saks shows no price history, so record your own: Scavio's Saks API returns a designer bag's list price, sale price and percent off each day, 2 credits a check.

Scavio Team

Nov 10, 2026

Try the Saks Fifth Avenue API free
scavio
Price monitoring / Price history
Saks

Not from one page, because saksfifthavenue.com shows today's price and no history. Record it yourself: Scavio's Saks Fifth Avenue API, POST /api/v1/saks/product, returns an item's current price, its regular (list) price, the sale price, percent off and an on-sale flag for 2 credits, and /brand with on_sale: true lists every item a designer has on sale. Store a row a day and "it usually goes for $2,150" becomes a query: on November 10, 2026, Givenchy's Mini Voyou Shoulder Bag in Shiny Leather listed at $2,150 and was not on sale.

The question comes from r/handbags, where a shopper posted on October 24, 2026 that a Givenchy mini Voyou that "usually goes for $2150" was on sale at Saks for $1,290, 40% off, and asked whether there was a catch. The thread drew 7 upvotes and 11 comments. The poster bought it, a second reader bought one too, and by November 1 another reader replied that the bag was off sale again. The deal was real, and by November 1 it was over. A screenshot shows one price once. A daily log shows when a sale starts, how deep it goes and when it ends, for every item you care about.

What one check returns today

We searched Saks for "givenchy voyou" on November 10, 2026. It returned 18 Givenchy Voyou items, from a $490 belt to a $3,150 top-handle bag, and none was on sale. Then we read the mini shoulder bag that matches the poster's $2,150 (description, images, colors and attributes trimmed):

JSON
{
  "requested_id": "0400024860098",
  "id": "0400024860098",
  "type": "master",
  "title": "Mini Voyou Shoulder Bag in Shiny Leather",
  "brand": "Givenchy",
  "url": "https://www.saksfifthavenue.com/product/givenchy-mini-voyou-shoulder-bag-in-shiny-leather-0400024860098.html",
  "price": 2150,
  "price_max": null,
  "regular_price": 2150,
  "regular_price_max": null,
  "sale_price": null,
  "on_sale": false,
  "percent_off": null,
  "currency": "USD",
  "is_sale": false,
  "promotions": [],
  "variant_count": 2,
  "variants": [
    { "sku": "24860098", "warehouse_units": 12 },
    { "sku": "24860107", "warehouse_units": 16 }
  ],
  "in_stock_count": 2,
  "available": true,
  "available_in_store": false,
  "marketplace": true,
  "rating": null,
  "review_count": 0
}

That is the full-price state: $2,150, on_sale: false, two colors (black and dark red) with 12 and 16 units online. If the poster's bag was this one, a check on October 24 would have recorded the $1,290 sale price against the $2,150 list price. We cannot tell which Voyou they bought, and no API can show a price from October that nobody recorded. Saks flags this bag marketplace: true, and marketplace items cannot be picked up in a store.

Step 1: Watch the designer's sale, not just one bag

The poster found the bag by browsing the sale. A tracker does the same with one call per designer:

Bash
curl -s https://api.scavio.dev/api/v1/saks/brand \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"brand": "givenchy", "on_sale": true}'

Every item comes back with price, regular_price, sale_price and percent_off, and the isSale facet counts the designer's items that are not on sale. On November 10, Saks' Sale list counted 3 Givenchy items, while Versace's designer sale held 26 and Chloé's 19, all 19 of them at 55% or 64% off (how deep five designers' sales went). A Voyou that shows up on this page tomorrow is your alert. Designer slugs come from /api/v1/saks/designers; walk past 24 items with start: next_start.

Step 2: Store every check

Python
import os, sqlite3, requests
from datetime import date

WATCHLIST = ["0400024860098", "0400023264807", "0400026859461"]  # Saks ids are strings

db = sqlite3.connect("saks_prices.db")
db.execute("""CREATE TABLE IF NOT EXISTS prices (
  checked_on TEXT, product_id TEXT, title TEXT, price REAL, regular_price REAL,
  sale_price REAL, percent_off INTEGER, on_sale INTEGER, promotions TEXT)""")

today = date.today().isoformat()
for pid in WATCHLIST:
    r = requests.post(
        "https://api.scavio.dev/api/v1/saks/product",
        headers={"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}"},
        json={"product_id": pid},
        timeout=120,
    )
    if r.status_code != 200:
        continue  # a 404 (id gone) or 502 is not charged; try again tomorrow
    p = r.json()["data"]
    db.execute("INSERT INTO prices VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)",
               (today, pid, p["title"], p["price"], p["regular_price"],
                p["sale_price"], p["percent_off"], int(p["on_sale"]),
                " | ".join(x["message"] for x in p["promotions"])))
db.commit()

Run it once a day from cron. Keep product ids as strings: they start with 0. The three ids above are the Mini Voyou Shoulder Bag ($2,150), the Medium Voyou Shoulder Bag ($2,450) and a Small Voyou Bucket Bag in Shiny Leather ($1,990), all at full price on November 10. promotions keeps Saks' promotion text as printed, such as a gift-card event with its code; it is not applied to price.

Step 3: Ask the history the Reddit question

After a few weeks of rows, "is this sale real, and how long will it last?" becomes two queries. First, did the list price move before the sale?

SELECT product_id, title,
       MIN(regular_price) AS lowest_list, MAX(regular_price) AS highest_list,
       MIN(CASE WHEN on_sale = 1 THEN checked_on END) AS sale_started,
       MIN(price) AS lowest_price
FROM prices
GROUP BY product_id;

A lowest_list equal to highest_list means the list price held steady while you watched, so the percent off is measured against a price Saks actually asked. Second, when did each sale end?

SELECT cur.product_id, cur.title, cur.checked_on AS ended_on,
       prev.price AS last_sale_price, cur.price AS back_to
FROM prices cur
JOIN prices prev
  ON prev.product_id = cur.product_id
 AND prev.checked_on = date(cur.checked_on, '-1 day')
WHERE prev.on_sale = 1 AND cur.on_sale = 0;

The Reddit bag was on sale at $1,290 on October 24 and off sale by November 1. With this table, the alert fires the morning the sale starts, and you know the day it ends.

What this can and cannot tell you

  • History starts when you start: every response is today's price. Start before the sale you care about; Black Friday is November 27, 2026.
  • List prices: percent_off is measured against Saks' own regular_price. In 2018 a class action alleged that some Saks "original" prices had never been charged. That is an old allegation, not a finding about today's prices; it is a reason to record list prices yourself, with the date.
  • End dates: no Saks response carries a sale end date. Your log finds the end.
  • Price ranges: when colors or sizes sell at different prices, price is the low end and price_max the high end, and percent_off compares the low ends. Call /product with a color and size for one variant's price.
  • Stock: variants[] gives units online per SKU, and a color and size call names the SKU behind each size. A sale that ends because a size sold out looks different from one that ends on schedule.
  • Reviews: only the average rating and the review count; no review text.
  • US only: saksfifthavenue.com in the United States. Saks OFF 5TH's site has shut down and is not covered.

10 bags checked daily is 10 calls, 20 credits a day and 600 a month, $0.60 at the Growth rate of $1 per 1,000 credits; the 50 free credits on signup cover the first 25 checks. One designer's sale page checked daily is 60 credits a month. For sale lists, sizes and store stock, see how to get Saks Fifth Avenue sale prices; for every other way to get Saks data, see the best Saks designer sale tracker APIs. The same approach works at Macy's: did Macy's raise the price before the sale?

Try the Saks Fifth Avenue API free, 50 credits, no card, or run the product call in the playground.

Reference: Saks Fifth Avenue API overview · product docs · designer page docs · sale list docs · designers docs

Frequently asked questions

Is the Saks designer sale real?

The sale price is what Saks charges that day, and Scavio's Saks API returns it next to the list price and the percent off. Whether the list price is what the item usually sold for is something only a price history shows, and Saks does not publish one. Record the list and sale price every day and you have your own answer for every item you watch.

How do I know when a Saks sale ends?

The API returns no sale end date for Saks items. Check the item daily: the first day on_sale reads false and price equals regular_price again is the day the sale ended for that item. For a whole designer, the first day a sale-filtered designer page stops listing the item tells you the same.

Does Saks have price history?

Not on its site, and no API can return prices from before you started recording them. Scavio's /api/v1/saks/product returns today's price, regular price, sale price and percent off for one item per 2-credit call; store each row with the date and the history starts that day.

How often should I check Saks prices?

Daily catches most changes, and twice a day helps in Black Friday week; Black Friday is November 27, 2026. With Scavio, 10 bags checked daily is 600 credits a month, $0.60 at the Growth rate of $1 per 1,000 credits, and one designer's sale page checked daily is 60 credits a month.

Start your Saks price history

  • List price, sale price and percent off per item
  • Any designer narrowed to its sale items
  • Units per size and store stock near a ZIP
Try the Saks Fifth Avenue API free

50 free credits, no credit card

On this page

  1. What one check returns today
  2. Step 1: Watch the designer's sale, not just one bag
  3. Step 2: Store every check
  4. Step 3: Ask the history the Reddit question

Related articles

View all
  • scavio
    Comparison / Price monitoring
    Saks
    6 Best Saks Fifth Avenue Designer Sale Tracker APIs in 2026: Scavio Narrows Any Designer to Its Sale Items and Counts Stock per Size
  • scavio
    Ecommerce / Price monitoring
    Saks
    How to Get Saks Fifth Avenue Sale Prices, Stock by Size and Store Availability With an API
ScavioScavio

One scraper API for every social, search, e-commerce and real estate platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

Ask AI about Scavio

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy