Yes, but you have to record the history yourself, because bestbuy.com shows only today's price. Keep a list of SKUs and send them to Scavio's Best Buy API, POST /api/v1/bestbuy/prices, on a schedule: each call returns the current price, regular price, savings, on-sale flag and deal badge for up to 15 SKUs, for 2 credits. Store every row with a timestamp and you have a price history from that day on. A 15-SKU watchlist checked daily costs 60 credits a month.
The question on r/Frugal, the thread Google's AI Overview cites for "best buy price tracker", came from a shopper who suspected that retailers "jack up the price before promo day" and wanted a way to see Best Buy prices and their history. The options in the thread were asking a store for a price check, browser trackers and page-change monitors. They work for a few products on one machine. For a watchlist, an alert system or an app, you want the prices as data.
What one check returns
We sent 15 TV SKUs from Best Buy's open-box TV listing to Scavio on November 8, 2026, nineteen days before Black Friday. All 15 came back in 2.8 seconds. Three rows, as captured:
[
{ "sku": "6607829", "found": true, "price": 149.99, "regular_price": 299.99, "savings": 150, "savings_percent": 50, "on_sale": true, "badge": "Holiday Deal", "deal_ends_at": null },
{ "sku": "6614070", "found": true, "price": 69.99, "regular_price": 129.99, "savings": 60, "savings_percent": 46, "on_sale": true, "badge": "BlackFriday", "deal_ends_at": null },
{ "sku": "6670834", "found": true, "price": 199.99, "regular_price": 249.99, "savings": 50, "savings_percent": 20, "on_sale": true, "badge": "Holiday Deal", "deal_ends_at": null }
]All 15 were on sale: 13 with the "Holiday Deal" badge, 1 "BlackFriday" and 1 with no badge. Their regular prices added up to $4,599.85 and their sale prices to $2,879.85, a median saving of 28% (20% to 50%). That is what Best Buy says the deals are worth today. Whether the Insignia 50" F50 actually sold at its $299.99 regular price in October is what a history answers, and it starts with the first row you store.
Step 1: Store every check
import os, sqlite3, requests
from datetime import datetime, timezone
WATCHLIST = ["6607829", "6614070", "6688046", "6670831", "6670834",
"6679051", "6673078", "6688047", "6623790", "6673079",
"6671585", "6616017", "6672731", "6687111", "6671588"]
db = sqlite3.connect("bestbuy_prices.db")
db.execute("""CREATE TABLE IF NOT EXISTS prices (
checked_at TEXT, sku TEXT, price REAL, regular_price REAL,
savings_percent INTEGER, badge TEXT)""")
now = datetime.now(timezone.utc).isoformat()
for i in range(0, len(WATCHLIST), 15):
r = requests.post(
"https://api.scavio.dev/api/v1/bestbuy/prices",
headers={"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}"},
json={"skus": WATCHLIST[i:i + 15]},
timeout=60,
)
for p in r.json()["data"]["prices"]:
if p["found"]:
db.execute("INSERT INTO prices VALUES (?, ?, ?, ?, ?, ?)",
(now, p["sku"], p["price"], p["regular_price"],
p["savings_percent"], p["badge"]))
db.commit()Run it once a day from cron, or hourly in the weeks around Black Friday. Batches of 15 keep it to one call per 15 SKUs. A SKU Best Buy does not know comes back "found": false and is skipped.
Step 2: Ask the history the question
Once you have a few weeks of rows, the Reddit question becomes a query: did the price go up before the deal started?
SELECT sku,
MIN(price) AS lowest,
MAX(price) AS highest,
MAX(regular_price) AS regular
FROM prices
WHERE checked_at >= date('now', '-30 days')
GROUP BY sku;If a SKU's highest in the weeks before a sale sits above its usual price, the saving Best Buy shows against regular_price overstates what you save against what it actually cost. If lowest was below today's sale price, the sale is not the best price the product has had. Alert on a new low, or on price falling below a target you set per SKU.
What this can and cannot tell you
- History starts when you start: the API returns today's price, not past prices. It cannot show whether a price was raised before you began recording, so start a few weeks before the sale you care about. Black Friday is November 27, 2026.
- A price drop after you buy: Best Buy's Price Match Guarantee matches its own lower price during the return and exchange period, and purchases made from October 30 to December 31 can be matched through January 15. Your own price log is the record of when it dropped. Open-box items are excluded.
- Deal end times:
deal_ends_atwas null on all 15 rows of our check. The product call for the Insignia 50" F50 showed the deal ending at 23:59:59 CST that night, so read end times there. - Open-box:
/pricesreturns the new price. Open-box offers by condition come from/product, 2 credits per SKU; on November 8, open-box excellent was a median 7.9% under the new price across 8 TVs. How to get Best Buy open-box prices has the responses. - Why not Best Buy's own API: it needs an approved key tied to a company email, and its terms bar storing content beyond 72 hours, which rules out the history.
- US only: this covers bestbuy.com, not Best Buy Canada.
A 15-SKU watchlist checked daily is 30 calls and 60 credits a month, $0.06 at the Growth rate of $1 per 1,000 credits; the 50 free credits on signup cover the first 25 checks. 300 SKUs checked every hour is 20 calls per check, 28,800 credits a month, $28.80. For every other way to get Best Buy prices, see the best Best Buy price tracker APIs.
Try the Best Buy API free, 50 credits, no card, or run the prices call in the playground.
Reference: Best Buy API overview · prices docs · product docs · deals docs · how to get Best Buy open-box prices
Frequently asked questions
Does Best Buy have a price history?
Not on bestbuy.com. Product pages show the current price, the regular price and the savings, with no chart of past prices. To get a history, check the same SKUs on a schedule and store each price with a timestamp; Scavio's /api/v1/bestbuy/prices does that for 15 SKUs per 2-credit call.
Does Best Buy raise prices before a sale?
You can only tell for the products you were already tracking. The regular_price Best Buy shows is its own reference price, and a sale is measured against it. If your history shows the price rising in the weeks before a sale, the advertised saving is smaller than it looks. No API can show you prices from before you started recording them.
What happens if a Best Buy price drops after I buy?
Best Buy's Price Match Guarantee says it will match its own lower price, on request, if the drop happens during the return and exchange period. For the 2026 holidays, purchases made between October 30 and December 31 can be price matched through January 15. Open-box items are excluded.
How often should I check Best Buy prices?
Daily is enough for most products; hourly helps around Black Friday, which falls on November 27, 2026. With Scavio, a 15-SKU watchlist checked daily is 60 credits a month, and 300 SKUs checked hourly is 28,800 credits, $28.80 at the Growth rate of $1 per 1,000 credits.