Harbor Freight API
Harbor Freight product data as structured JSON, built for price tracking: current, sale, clearance, coupon and Inside Track Club member prices for 50 items per call, store stock and aisle near any ZIP, search, product detail and first-party reviews.
50 free credits on signup. No card, no Harbor Freight account.
{ "data": { "query": "drill", "clearance": true, "sort": "best_match", "page": 1, "page_size": 12, "total_results": 13, "total_pages": 2, "count": 12, "products": [ { "position": 1, "sku": "63443", "title": "7.3 Amp, 1 in. SDS-PLUS Type Variable-Speed Rotary Hammer", "brand": "BAUER", "price": 39.97, "regular_price": 49.97, "on_sale": true, "clearance": true, "sale": { "price": 39.97, "ends_at": "2026-12-03 23:59:59", "savings": "20%", "banner_code": "CLR", "clearance": true }, "member_deal": null, "compare_at": null, "rating": 4.6, "review_count": 1528, "in_store_only": true }, { "position": 3, "sku": "56567", "title": "12V Cordless, 1/4 in. Hex Compact Impact Driver - Tool Only", "brand": "HERCULES", "price": 34.97, "regular_price": 39.99, "on_sale": true, "clearance": true, "sale": { "price": 34.97, "ends_at": "2026-12-03 23:59:59", "savings": "12%", "banner_code": "CLR", "clearance": true }, "member_deal": null, "compare_at": null, "rating": 4.8, "review_count": 135, "in_store_only": true } ] }, "response_time": 6492}Live call against the real endpoint. Prices are national, the same at every store. 3 free runs, then it's your own key.
What is the Scavio Harbor Freight API?
The Scavio Harbor Freight API is a REST API that returns Harbor Freight product data as structured JSON. Harbor Freight has no public API. Its 7 POST endpoints cover search, clearance, product detail, prices for 50 items per call, a store locator, store stock and reviews, at 1 credit per call.
- 7
- endpoints, all live in production
- 1
- credit per call, every endpoint
- 50
- items priced in one call
The Harbor Freight data buyers actually need
What it costs today, which deal applies and when it ends, and whether the store near you has it.
Price tracking, 50 items per call
POST /api/v1/harborfreight/pricesOne call prices a watchlist of up to 50 item numbers: current price, regular price, sale price and end date, clearance flag, public coupon, Inside Track Club member price and compare-at price. In our capture, item 59716 was $59.99 with a $42.99 member price, limit 2, until 2026-12-03.
Clearance with end dates
POST /api/v1/harborfreight/clearanceEvery clearance item, filterable by keyword, category or brand, with the clearance price, the regular price and the date the clearance price ends. Our "drill" capture found 13 clearance items, including a BAUER rotary hammer at $39.97, regular $49.97.
Store stock and aisle
POST /api/v1/harborfreight/availabilityUp to 20 items at the stores nearest a ZIP code, or at stores you pick: in stock, limited, out of stock or not carried, the aisle, and a nearby store that has it. Near ZIP 90012, item 73216 was in stock at 4 of the 5 nearest stores.
Search sorted by member price
POST /api/v1/harborfreight/searchSearch by keyword or category with brand and clearance filters and 7 sorts, including Inside Track Club member price low to high. Facets return category ids, brands, ratings and price points.
First-party reviews
POST /api/v1/harborfreight/reviewsHarbor Freight's own customer reviews, newest first, with rating, text, purchase date, incentivized flag and the reviewer's answers. Item 73216 had 151 reviews at a 4.6 average in our capture.
All 7 Harbor Freight API endpoints
Every route is a POST, returns JSON, and takes the same API key. 1 credit per successful call.
| Endpoint | Returns | Credits |
|---|---|---|
Search/api/v1/harborfreight/search | Keyword or category search, up to 48 per page, 7 sorts including member price, brand and clearance filters: price, regular price, sale price and end date, coupon, member price, compare-at price, rating and review count, plus facets | 1 |
Clearance/api/v1/harborfreight/clearance | Every clearance item, optionally narrowed by keyword, category or brand, with the clearance price, regular price, savings and the date the clearance price ends | 1 |
Product detail/api/v1/harborfreight/product | One item by item number, id or URL: the full price block, UPC, description, highlights, specification table, warranty, shipping notes, owner's manuals, images and variants | 1 |
Batch prices/api/v1/harborfreight/prices | Up to 50 item numbers per call: price, regular price, sale price and end date, clearance flag, public coupon, Inside Track Club member price and compare-at price | 1 |
Store locator/api/v1/harborfreight/stores | Stores near a ZIP, a "City, ST" or coordinates, nearest first, with store number, address, phone, distance, status, opening date and hours | 1 |
Store stock/api/v1/harborfreight/availability | Up to 20 items at up to 20 stores, or the nearest stores to a ZIP: in stock, limited, out of stock or not carried, the aisle, and a nearby store that has it | 1 |
Reviews/api/v1/harborfreight/reviews | First-party customer reviews, newest first, up to 50 per call: rating, title, text, author, review and purchase dates, incentivized flag and helpful votes | 1 |
50 free credits on signup covers 50 Harbor Freight calls. See plans
Price a watchlist, then find it on a shelf
The prices call returns sale, coupon and member prices with their end dates for 50 items at once; availability shows which nearby stores have them. The response on the right is a real capture.
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
# Price a watchlist of up to 50 items in one call - 1 credit
watchlist = ["73216", "59716", "64508"]
res = client.harbor_freight.prices(skus=watchlist)["data"]
for p in res["products"]:
deals = []
if p["on_sale"]:
deals.append(f"sale {p['sale']['price']} until {p['sale']['ends_at']}")
if p["coupon"]:
deals.append(f"coupon {p['coupon']['price']} until {p['coupon']['expires']}")
if p["member_deal"]:
deals.append(f"member {p['member_deal']['price']} until {p['member_deal']['expires']}")
print(p["sku"], p["title"], p["price"], deals or "regular price")
# Is it on the shelf near me? - 1 credit
stock = client.harbor_freight.availability(skus=["59716"], zip="90012", limit=5)["data"]
for s in stock["stores"]:
print(s["name"], s["distance_miles"], s["items"][0]["stock_status"], s["items"][0]["aisle"]){
"data": {
"count": 3,
"not_found": [],
"products": [
{
"sku": "73216",
"id": 48725,
"title": "20V Cordless, 1/2 in. Drill/Driver Kit with 2 Ah Battery and Charger",
"brand": "BAUER",
"url": "https://www.harborfreight.com/20v-cordless-12-in-drilldriver-kit-with-2-ah-battery-and-charger-73216.html",
"price": 59.99,
"regular_price": 59.99,
"on_sale": false,
"clearance": false,
"sale": null,
"coupon": null,
"member_deal": null,
"compare_at": {
"brand": "CRAFTSMAN",
"model": "CMCD700C1",
"price": 99,
"savings": "39%"
},
"badges": [],
"sold_in": "Store",
"in_store_only": true,
"online_only": false
},
{
"sku": "59716",
"id": 30724,
"title": "9 Amp, 1/2 in. Variable-Speed D-Handle Drill",
"brand": "BAUER",
"url": "https://www.harborfreight.com/9-amp-12-in-variable-speed-d-handle-drill-59716.html",
"price": 59.99,
"regular_price": 59.99,
"on_sale": false,
"clearance": false,
"sale": null,
"coupon": null,
"member_deal": {
"code": "32457254",
"price": 42.99,
"was_price": 59.99,
"savings": "28%",
"expires": "2026-12-03",
"limit": 2,
"members_only": true
},
"compare_at": {
"brand": "RIDGID",
"model": "R71111",
"price": 139,
"savings": "$79.01"
},
"badges": [],
"sold_in": "Store",
"in_store_only": true,
"online_only": false
}
]
},
"response_time": 1565
}Why not the official Harbor Freight API?
Harbor Freight has no public API for product, price, stock or review data.
Harbor Freight, without an API
- No public API or self-serve developer key for products, prices, stock or reviews
- Sale, coupon and member prices and their end dates sit on individual product pages
- Checking stock across items and stores means one lookup at a time
- No export of the clearance list or of customer reviews
Scavio Harbor Freight API
- One API key, issued at signup, with no Harbor Freight account
- Sale, clearance, coupon and member prices with end dates for 50 items per call
- Stock status and aisle for 20 items at the stores nearest a ZIP in one call
- Clearance list, search with 7 sorts, and first-party reviews, paged
- Same JSON envelope as every other Scavio platform
Scavio returns publicly available data only, and never signs in as a Harbor Freight customer or member.
What developers build with it
Price tracking and deal alerts
Run your own Harbor Freight price tracker: price a watchlist of up to 50 items per call on a schedule and alert when the price drops, a sale or coupon starts, an item goes to clearance, or a member price appears, with the date each deal ends.
prices + clearanceClearance hunting
List clearance items by keyword or category, then check which stores near a ZIP still have them in stock and in which aisle.
clearance + availabilityLocal stock finder
Given an item number and a ZIP, show the nearest Harbor Freight stores with in stock, limited or out of stock status, the aisle, and store hours.
stores + availabilityTool price comparison
Put Harbor Freight prices next to Home Depot and Lowe's for the same job, on one API key. compare_at adds the name-brand model and price Harbor Freight itself quotes.
prices + Home Depot + Lowe'sMember price analysis
Find which items carry an Inside Track Club member price and how far it sits below the regular price, by sorting search on member price.
search + pricesTool review research
Pull first-party reviews with ratings, purchase dates and what reviewers liked, to compare tools or monitor a brand such as BAUER or HERCULES.
search + reviewsHow to get Harbor Freight data as JSON
- 1
Get an API key
Sign up for a Scavio account and copy your key from the dashboard. You get 50 credits free on signup, with no card required and no Harbor Freight account.
- 2
Find the item numbers
Send {"query": "impact wrench"} to https://api.scavio.dev/api/v1/harborfreight/search with an Authorization: Bearer header. Each result carries its sku, the Harbor Freight item number.
- 3
Price and stock them
Pass up to 50 item numbers to /api/v1/harborfreight/prices for current, sale, coupon and member prices, and up to 20 with a ZIP to /api/v1/harborfreight/availability for stock at the nearest stores.
Harbor Freight API FAQ
Does Harbor Freight have a public API?
+
No. Harbor Freight does not offer a public API for product, price, stock or review data. The Scavio Harbor Freight API fills that gap with 7 POST endpoints that return harborfreight.com data as structured JSON: search, clearance, product detail, batch prices, a store locator, store stock and reviews.
What is the Scavio Harbor Freight API?
+
It is a REST API that returns public Harbor Freight data as JSON at 1 credit per call. It covers search and clearance, product detail with specifications and manuals, prices for up to 50 items at once, a store locator, in-store stock and aisle for up to 20 items, and customer reviews.
Can I build a Harbor Freight price tracker with it?
+
Yes. Call /api/v1/harborfreight/prices on a schedule with up to 50 item numbers per call and store price, regular_price, sale.price and sale.ends_at, clearance, coupon.price, member_deal.price and compare_at.price. Each deal carries its own end date, so an alert can say when it ends.
Are Harbor Freight prices the same at every store?
+
Yes. Harbor Freight prices are national: the regular, sale, coupon and member price are the same at every store, so no endpoint takes a store for pricing. The store dimension is stock and aisle only, from /api/v1/harborfreight/availability.
What is the Inside Track Club member price?
+
Inside Track Club is Harbor Freight's paid membership. member_deal carries the member price with its code, the regular price it replaces, savings, expiry and per-customer limit. In our capture, item 59716 was $59.99 with a $42.99 member price, limit 2, expiring 2026-12-03.
Does the API return Harbor Freight coupons?
+
Yes, per item. coupon is the public coupon price running on an item, with its code, the price it replaces, savings, expiry and per-customer limit, on search, clearance, product and prices. It is null when no public coupon runs for that item.
How do I find Harbor Freight clearance items?
+
Call /api/v1/harborfreight/clearance, optionally with a keyword, category_id or brand. Each item has the clearance price, the regular price, Harbor Freight's savings text and sale.ends_at, when the clearance price ends. Our "drill" capture listed 13 clearance items.
Can I check Harbor Freight stock at my local store?
+
Yes, as a status. /api/v1/harborfreight/availability returns in_stock, limited, out_of_stock or not_carried for up to 20 items at the stores nearest a ZIP, or at up to 20 stores you name, plus the aisle. Harbor Freight publishes no unit counts, and stock comes from a daily snapshot whose time is in inventory_updated_at.
How do I find a Harbor Freight store number?
+
POST a ZIP code or "City, ST" to /api/v1/harborfreight/stores, or latitude and longitude. It returns stores nearest first within 50 miles by default (up to 100), with store_id, address, phone, distance, status, opening date and hours. ZIP 60601 returned Cicero, IL, store 820, at 6.54 miles.
Does the API return Harbor Freight reviews?
+
Yes. /api/v1/harborfreight/reviews returns Harbor Freight's own first-party customer reviews, newest first, up to 50 per call with offset paging: rating, title, text, author, review and purchase dates, incentivized flag, helpful votes and the reviewer's answers, plus the average rating and total count.
What is compare_at?
+
It is the name-brand comparison Harbor Freight shows on an item: the competitor brand, model and price, and Harbor Freight's savings text. Item 73216, a BAUER drill/driver kit at $59.99, compares with a CRAFTSMAN CMCD700C1 at $99. It is null when the item has no comparison.
Why did a search return no products?
+
Some keywords, such as "wrench", take you to a category page on Harbor Freight instead of keyword results. The answer then carries redirect, and when the category is matched the products are that category's. If redirect.category_id is null, products is empty: rerun with a category_id from the category facet.
What are the limitations?
+
Prices are national, not per store. Store stock is a status (in stock, limited, out of stock, not carried) plus aisle, refreshed daily, with no unit counts. Prices up to 50 items per call, stock up to 20 items per call. Coverage is harborfreight.com in the US.
How much does a Harbor Freight request cost?
+
Every Harbor Freight endpoint costs 1 credit per successful call, including a prices call for 50 items. Errors such as an unknown item (404) or a temporary outage (502) are not charged. New accounts get 50 free credits on signup, one time, with no card required. Paid plans start at $30 per month for 7,000 credits.
How fresh is the data?
+
Every request fetches live from Harbor Freight when you call it, and nothing is cached; each response carries fetched_at. In-store stock is the exception: Harbor Freight refreshes it once a day, and inventory_updated_at says when.
Is using Harbor Freight data legal?
+
Scavio returns publicly available Harbor Freight data and does not access accounts, memberships or order history. You remain responsible for how you use the data, including compliance with Harbor Freight's terms. Talk to your own counsel for your specific use case.
Explore more of Scavio
Harbor Freight API docs
All 7 endpoints with params and real responses.
Home Depot API
Store-level prices, stock, reviews and delivery quotes.
Lowe's API
Store prices, stock, aisle and bay, and reviews.
Canadian Tire API
Store prices, stock, clearance and deals in Canada.
Walmart API
Search, product, reviews and store-level pricing.
Amazon API
Search, product detail by ASIN and every seller offer.
eBay API
Live listings with units sold and watchers, plus sellers.
Google Shopping API
Product prices across every store selling it.
Try the Harbor Freight API free
50 free credits on signup, no card. Your first request is a POST with a tool name in it.