To find Costco clearance items at a specific warehouse, send the warehouse id and a search term or category to Scavio's Costco API. POST /api/v1/costco/clearance scans up to 600 products and returns only the ones whose shelf price ends in a markdown code (.97 clearance, .88 or .00 manager markdown), each with its costco.com price and the warehouse's stock status. One scan costs 1 credit. Costco has no API of its own, and its site shows the online price, not the shelf price.
Clearance is a shelf-price signal. A Costco shelf tag ending in .97 is read by members as a corporate markdown, and .88 or .00 as a markdown set by that warehouse's manager. Those prices differ from one warehouse to the next and rarely match costco.com, so finding them means checking each store. The clearance endpoint does that check in one request.
The price codes the endpoint decodes
| Shelf price ends in | What members read it as | Returned by default |
|---|---|---|
| .97 | Clearance: corporate markdown, often being discontinued at that warehouse | Yes |
| .88 or .00 | Manager markdown: local clearance set by one warehouse | Yes |
| .49, .79, .89 | Special buy: a manufacturer deal or special pricing | Only with price_codes: ["special_buy"] |
| .99 | Regular price | No |
These are the member-community decode. Costco does not publish them, and the response says so in its note field.
Step 1: get the warehouse id
curl -s https://api.scavio.dev/api/v1/costco/warehouses \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"zip": "60601", "limit": 10}'For downtown Chicago this returns the 10 nearest warehouses with ids and distances, starting with Chicago South Loop (1107). The warehouses docs cover lookups by city or coordinates.
Step 2: scan a search or category for markdowns
import os, requests
r = requests.post(
"https://api.scavio.dev/api/v1/costco/clearance",
headers={"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}"},
json={"warehouse_id": "1062", "query": "kirkland", "pages": 5},
timeout=120,
)
data = r.json()["data"]
print(data["products_scanned"], "scanned,", data["count"], "markdowns")
for item in data["results"]:
w = item["warehouse"]
print(w["price_code"]["ending"], w["price"], "shelf vs", item["price"], "online",
w["availability"], item["title"])const res = await fetch("https://api.scavio.dev/api/v1/costco/clearance", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SCAVIO_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ warehouse_id: "1062", category: "small-kitchen-appliances", pages: 5 }),
});
const { data } = await res.json();
for (const item of data.results) {
console.log(item.warehouse.price, item.price, item.warehouse.availability, item.title);
}Send either query or category (a category slug, such as small-kitchen-appliances or vacuums-floor-care). pages sets how many 120-product result pages to scan, from 1 to 5, and defaults to 3. The whole scan is 1 credit at any page count.
Here is one result from the Python call above, run against Costco's Manhattan warehouse on October 18, 2026, trimmed to the fields that matter:
{
"data": {
"country": "us",
"warehouse_id": "1062",
"query": "kirkland",
"category": null,
"products_scanned": 489,
"count": 10,
"results": [
{
"position": 4,
"item_number": "2052182",
"title": "Liquid Death Soda-Flavored Sparkling Water, Variety Pack, 24-count",
"brand": "Liquid Death",
"price": 21.99,
"original_price": 21.99,
"on_sale": false,
"currency": "USD",
"sold_in_warehouse": true,
"warehouse": {
"warehouse_id": "1062",
"price": 9.97,
"availability": "in_stock",
"price_code": { "ending": "97", "meaning": "clearance" }
}
}
]
},
"credits_used": 1
}price is costco.com, warehouse.price is the shelf. Each response also carries a price_code_legend and the note on how the codes are decoded. The clearance docs list every field and error.
What 10 scans found at two warehouses
On October 18, 2026 we ran 10 clearance scans: three categories and two searches at Costco's Manhattan warehouse (1062) and the same five at Chicago South Loop (1107). Together they checked 1,202 products for 10 credits and found 26 clearance items. All 26 were .97 prices, and neither warehouse had a .88 or .00 item in those scans.
- The markdowns are deep. 21 of the 26 items were cheaper on the shelf than online, by a median of 50%. The largest was Finish Powerball dishwasher tabs, $6.97 on the Manhattan shelf against $25.99 on costco.com (73% off). A Ninja SLUSHi frozen drink maker was $99.97 at both warehouses against $279.99 online.
- Most are already gone. 17 of the 26 were out of stock at the warehouse that listed them. Manhattan had 8 in stock or low on stock; South Loop had 1. A clearance list without stock status sends people to empty shelves.
- Not every .97 is a shelf deal. The other 5 hits, two TCL QLED TVs at both warehouses and a TV mount, carried the same .97 price on costco.com, so the markdown was chain-wide rather than local.
- Warehouses differ. Manhattan returned 17 hits and South Loop 9 for the same five scans, and only four items showed up at both: the Ninja SLUSHi, Kirkland Signature Daily Multi and the two TCL TVs.
Response times ranged from 1.1 to 26.7 seconds, with a median of 4.2. A small category scans in a second or two. A 5-page sweep of a broad search such as "kirkland", about 500 products, took around 26 seconds, so run scans on a schedule rather than while a user waits.
Covering more warehouses and categories
A clearance tracker is a loop: warehouse ids from step 1, a list of categories or searches, one scan for each pair, and a diff against yesterday's results to catch new markdowns. Then confirm a hit before anyone drives there. /api/v1/costco/availability rechecks stock for one item across up to 10 warehouses, and /api/v1/costco/prices returns promotion dates and per-member limits. Both are covered in checking Costco warehouse prices and stock by item number.
What it costs: 20 categories at 10 warehouses, scanned daily, is 200 scans a day, about 6,000 credits a month. That is $12 at the Growth-yearly rate of $2 per 1,000 credits, and it fits inside the Project plan's 7,000 monthly credits.
Limits worth knowing
- Clearance covers only items Costco lists on its website. Warehouse-only items that never appear online cannot be found this way.
- The price codes are a member decode, not a Costco statement.
- Stock is a status, never a count.
- US (costco.com) and Canada (costco.ca) only.
- One warehouse per call; loop for more.
Try it
Get 50 free credits, no card, which is 50 clearance scans, and run one against your own warehouse in the playground. Comparing vendors first? Our roundup of the best Costco scraper APIs covers who sells which Costco data.
Reference: Costco API overview · clearance · warehouses · availability · prices
Frequently asked questions
What does a price ending in .97 mean at Costco?
Members read a warehouse shelf price ending in .97 as clearance: a corporate markdown, usually on an item the warehouse is phasing out. Costco does not publish the codes. In our October 2026 scans, .97 items were a median 50 percent below their costco.com price.
What do .88 and .00 prices mean at Costco?
Members read .88 and .00 endings as a manager markdown: a local clearance set by one warehouse, often on a returned or last-unit item. Scavio's clearance endpoint returns these by default alongside .97. Our October 2026 scans at two warehouses happened to return only .97 hits.
Does Costco have a clearance API?
No. Costco publishes no API for prices, stock or clearance. Scavio's Costco clearance endpoint scans a search or category at one warehouse and returns only the items whose shelf price carries a markdown code, with the costco.com price and stock status beside each.
Are Costco clearance prices the same online?
Usually not. Shelf clearance is per warehouse. In our scans, 21 of 26 clearance items were cheaper on the shelf than on costco.com, from 20 to 73 percent. The other 5, two TCL TVs and a TV mount, carried the same .97 price online.
Can I scan every Costco warehouse at once?
One call covers one warehouse. Get warehouse ids for any ZIP code from the warehouses endpoint, then loop: each clearance scan of up to 600 products is 1 credit, so 10 warehouses cost 10 credits.
Does the API show how many clearance items are left?
No. Costco reports a stock status per warehouse (in_stock, low_stock, out_of_stock), never a unit count. Status matters for clearance: 17 of the 26 items we found were already out of stock at that warehouse.
Does it work for Costco Canada?
Yes. Pass country ca to scan a costco.ca warehouse. The default is costco.com in the US. Clearance is not available for the UK, Australia or the Asian Costco sites.
How much does a Costco clearance scan cost?
1 credit per scan of up to 5 result pages (600 products). That is $2 per 1,000 scans on Scavio's Growth plan billed yearly. New accounts get 50 free credits, enough for 50 scans, with no card.