Yes. Scavio's Sam's Club API checks stock club by club: POST /api/v1/samsclub/product with an item_id and a club_id returns whether that club has the item on the shelf (in_stock_at_club), the aisle, its shelf price, and a separate status and quantity for pickup, delivery and shipping. /api/v1/samsclub/clubs turns a ZIP code into the nearby club ids, so one loop covers every club around you. Each call is 1 credit, about $0.002 on the Growth plan billed yearly, with no Sam's Club membership.
The question comes from r/samsclub, where a member asked whether any third-party app can look up Sam's Club stock the way people do for Walmart and Costco, because the club's own app had been "notoriously incorrect", even for a full pallet in front of them. It was the first result when we searched Google for Reddit threads on checking Sam's Club inventory. No third party sees the shelf directly, but there is a way to read each club's published stock without the app, and to read it for several clubs at once.
What an API can and cannot fix
Scavio reads the stock samsclub.com publishes for a club when you call, so it is not more accurate than Sam's Club's own record: if a club's count is wrong, the response is too. It does three things the app makes hard:
- Every nearby club at once. One call per club, in a loop, instead of switching your home club in the app.
- Stock per method. Pickup, delivery and shipping each come back with their own status, so "out of stock" at the club is not confused with "ships to your door".
- Not carried vs out of stock. If a club does not carry an item id, the call returns not found instead of a misleading stock flag.
Step 1: Get the club ids near you
curl -s https://api.scavio.dev/api/v1/samsclub/clubs \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"zip": "33130", "limit": 3}'ZIP 33130 in Miami returned club 6217, "Miami Sam's Club" in Doral, at 7.97 miles, then Miramar (8173) and Sunrise (6341). Each row has the address, phone, hours and a temporarily_closed flag.
Step 2: Ask each club for the item
curl -s https://api.scavio.dev/api/v1/samsclub/product \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"item_id": "13636265340", "club_id": "6217"}'Item 13636265340 is the BODYARMOR Sports Drink Variety Pack, 24 pk. We asked six clubs for it on October 31, 2026. The Doral answer, trimmed to the stock fields and the pickup option:
{
"price": 16.48,
"club_price": { "price": 16.48, "was_price": null, "savings_amount": null, "unit_price": { "price": 0.057, "display": "5.7 ¢/fl oz" } },
"club": { "club_id": "6217", "city": "Doral", "state": "FL", "zipcode": "33126" },
"in_stock_at_club": true,
"aisle": "F30",
"fulfillment": {
"pickup": true,
"delivery": true,
"shipping": true,
"options": [
{
"method": "pickup",
"available": true,
"availability_status": "IN_STOCK",
"available_quantity": 8,
"max_order_quantity": 12,
"location": "Miami Sam's Club",
"aisle": "F30",
"estimated_date": "2026-10-31T17:00:00.000-04:00",
"fee": null
}
]
}
}The Dallas, Greenville club, same item, same hour:
{
"price": 16.48,
"club_price": null,
"club": { "club_id": "4925", "city": "Dallas", "state": "TX", "zipcode": "75206" },
"in_stock_at_club": false,
"aisle": null,
"fulfillment": {
"pickup": false,
"delivery": false,
"shipping": true,
"options": [
{
"method": "pickup",
"available": false,
"availability_status": "OUT_OF_STOCK",
"available_quantity": null,
"max_order_quantity": null,
"location": "Dallas, Greenville Sam's Club",
"aisle": null,
"estimated_date": null,
"fee": null
}
]
}
}Out of stock for pickup in Dallas, still shipping, and on the shelf at the other five clubs we asked, in aisles F12 (Cicero), B99 (South Gate), F30 (Doral), F16 (Atlanta) and F99 (Tempe).
Step 3: Loop over your clubs
import requests
API_KEY = "sk_live_your_key" # load from your secret store in real code
H = {"Authorization": f"Bearer {API_KEY}"}
BASE = "https://api.scavio.dev/api/v1/samsclub"
clubs = requests.post(f"{BASE}/clubs", headers=H, json={"zip": "75201", "limit": 5}, timeout=120).json()["data"]["clubs"]
for club in clubs:
r = requests.post(f"{BASE}/product", headers=H,
json={"item_id": "13636265340", "club_id": club["club_id"]}, timeout=120)
if r.status_code == 404:
print(club["name"], "does not carry this item")
continue
p = r.json()["data"]
pickup = next(o for o in p["fulfillment"]["options"] if o["method"] == "pickup")
print(club["name"], p["in_stock_at_club"], pickup["availability_status"],
pickup["available_quantity"], p["aisle"])Reading the answer
| Field | What it means |
|---|---|
in_stock_at_club | The club has it on the shelf |
options[].availability_status | IN_STOCK, OUT_OF_STOCK or NOT_AVAILABLE, separately for pickup, delivery and shipping |
available_quantity | Units the club can sell, capped at 8: 8 means 8 or more |
aisle | The aisle at that club, when Sam's Club lists one |
| HTTP 404 | That club does not carry this item id; not charged |
Two patterns from our checks match what the Reddit thread describes. Fresh items carry regional ids: the Member's Mark whole milk gallon priced in Dallas, Doral and Atlanta came back not found at Cicero, South Gate and Tempe, so an item can "not even show up" for one club while it sits on another's shelf. And clearance runs out fast: the clearance category listed 138 items at the club Sam's Club picked for the call, and 26 of the 42 on the first page were already out of stock.
What it costs
Checking 30 items at your 5 nearest clubs once a day is 150 calls, about 4,500 credits a month: $9 on the Growth plan billed yearly, and not-found answers are free. Stock moves during the day, so check close to when you plan to go. For prices as well as stock, the same calls return the club's shelf price next to the online one; the best Sam's Club product data APIs compares that across six clubs, and how to get Sam's Club product data covers search, Instant Savings, clearance and reviews.
Try the Sam's Club API free, 50 credits, no card, or run a club check in the playground.
Reference: Sam's Club API overview · product docs · clubs docs · category docs
Frequently asked questions
Why does Sam's Club show an item as out of stock?
In our October 31, 2026 checks, three different things looked like 'out of stock'. The club had none on the shelf while the item still shipped, the club does not carry that item id at all (fresh items use regional ids), or the item was clearance: 26 of the 42 clearance items on the first page were out of stock at the club that listed them.
Can I see how many units a Sam's Club has in stock?
Only up to 8. Sam's Club caps the quantity it reports, so Scavio's available_quantity of 8 means 8 or more. Below that the number is a real count; at 8 it tells you the club has plenty, not how many.
How do I find which aisle an item is in at my Sam's Club?
Call Scavio's /api/v1/samsclub/product with the item id and your club_id; aisle is that club's aisle. The BODYARMOR 24-pack was in aisle F12 at Cicero, F30 at Doral and B99 at South Gate on October 31, 2026, and Bounty paper towels sat in five different aisles at five clubs.
Is API stock data more accurate than the Sam's Club app?
It is not a second source. Scavio reads the stock status samsclub.com publishes for each club at the moment you call, so if a club's own record is wrong, the response is wrong too. What it adds is checking many clubs in one loop, stock per pickup, delivery and shipping, the aisle, and a clear not-found when a club does not carry the item.