Sam's Club
Sam's Club (samsclub.com) — club-priced product search, product detail, club-level stock, club locator, membership plans and more. search reads the site's…
Sam's Club (samsclub.com) — club-priced product search, product detail, club-level stock, club locator, membership plans and more. search reads the site's own live catalog search for a keyword (name, member price, item id, thumbnail, rating). getProduct reads one product's full detail page (member price, non-member price where shown, images, brand, breadcrumb category, description, aggregate rating) for an item id or URL a search already returned. getInstantSavings reads the site's own live Instant Savings promotional catalog (was/now price, savings amount, expiry, purchase limit), paginated. browseCategory reads the live grid for one of the site's own department pages (name, price, was-price, rating, availability) given the site's own numeric category id. getFuelPrices reads a specific club's current fuel-center prices (per grade — unleaded, premium, diesel where sold) given the site's own numeric club id. findClubs reads the site's own club locator for a zip code — address, phone, hours and which real departments (pharmacy, optical, tire & lube, fuel center, …) each nearby club has. getMembershipPlans reads the site's own published Club/Plus membership tiers — current price, regular price, and the full stated benefit-by-tier comparison. The rest is not yet built.
Domain: samsclub.com
Also known as: Sam's Club, SamsClub, Sam's West Inc.
Call it directly
bowmark.providers.samsclub.search(query: string): Promise<SamsclubCategoryItem[]>
bowmark.providers.samsclub.getInstantSavings(page?: number): Promise<SamsclubInstantSavingsItem[]>
bowmark.providers.samsclub.browseCategory(categoryId: string): Promise<SamsclubCategoryItem[]>
bowmark.providers.samsclub.getFuelPrices(clubId: string): Promise<SamsclubFuelPrices>
bowmark.providers.samsclub.getProduct(idOrUrl: string): Promise<SamsclubProduct>
bowmark.providers.samsclub.checkStock(idOrUrl: string, location: { clubId: string } | { zip: string }): Promise<SamsclubStock>
bowmark.providers.samsclub.findClubs(zip: string): Promise<SamsclubClub[]>
bowmark.providers.samsclub.getMembershipPlans(): Promise<SamsclubMembershipPlan[]>Functions
| Function | What it does |
|---|---|
search | Searches samsclub.com's live catalog for a keyword and returns matching products — name, member price, item id, thumbnail and rating — the way the site's own search bar does. |
getInstantSavings | Reads one page (47 rows) of samsclub.com's live Instant Savings promotional catalog — was/now price, savings amount, expiry text and purchase limit — for every item currently on the site's… |
browseCategory | Reads the current live grid (~50 rows) for one of samsclub.com's own department/category pages — name, price, was-price, rating and availability — given the site's own numeric category id… |
getFuelPrices | Reads the current live fuel-center prices at one club — dollars per gallon for each grade the club actually sells (Unleaded, Premium, and Diesel where offered) — given the site's own… |
getProduct | Reads one product's full page — member price (and non-member price where the site shows one), breadcrumb category, images, brand, full bullet-point description and aggregate rating — for a… |
checkStock | Answers whether one item is in stock right now, and at what price, at a SPECIFIC club — named directly (clubId) or as "whichever club the site considers nearest" (a 5-digit zip). Sam's Club… |
findClubs | Finds nearby Sam's Club warehouse locations for a 5-digit US zip — address, phone, hours, distance and which real customer-facing departments (pharmacy, optical, tire & lube, fuel center,… |
getMembershipPlans | Reads the site's own published membership tiers (Club, Plus) — the currently-displayed price, the regular price it discounts from when a promo is running, and the full stated… |
Types
interface SamsclubInstantSavingsItem {
id: string;
name: string;
brand: string | null;
url: string;
image: string | null;
wasPrice: string | null;
nowPrice: string | null;
savingsLabel: string | null;
savingsAmount: number | null;
expiresLabel: string | null;
limitLabel: string | null;
availability: string | null;
}
interface SamsclubCategoryItem {
id: string;
name: string;
brand: string | null;
url: string;
image: string | null;
price: string | null;
wasPrice: string | null;
rating: number | null;
reviewCount: number | null;
availability: string | null;
}
interface SamsclubFuelPrice {
grade: string;
pricePerGallon: number;
}
interface SamsclubFuelPrices {
clubId: string;
clubName: string;
address: { city: string; state: string; postalCode: string };
prices: SamsclubFuelPrice[];
}
interface SamsclubProduct {
id: string;
name: string;
brand: string | null;
url: string;
category: string[];
price: string | null;
wasPrice: string | null;
nonMemberPrice: string | null;
rating: number | null;
reviewCount: number | null;
availability: string | null;
description: string | null;
images: string[];
thumbnailUrl: string | null;
}
interface SamsclubStock {
itemId: string;
itemName: string;
// The club that actually ANSWERED. Read this rather than what you asked for:
// geo targeting is nearest-available, not guaranteed-exact. Null on the rare
// item this club does not offer for pickup at all — an honest gap and not a
// parse failure, and clubId alone still identifies the club.
clubId: string | null;
clubName: string | null;
inStock: boolean;
availabilityStatus: string | null; // the site's own string — "In stock" / "Out of stock"
// The club's own PICKUP price, falling back to the page's general price on an
// item that carries no separate pickup-channel price.
price: string | null;
quantityAvailable: number | null; // null where the site publishes no unit count
}
interface SamsclubClubHours {
day: string;
start: string | null;
end: string | null;
closed: boolean;
}
interface SamsclubClub {
id: string;
name: string;
distanceMiles: number | null;
phoneNumber: string | null;
address: { addressLine1: string | null; addressLine2: string | null; city: string; state: string; postalCode: string; country: string };
open24Hours: boolean;
hours: SamsclubClubHours[];
services: string[];
geoPoint: { latitude: number; longitude: number } | null;
}
interface SamsclubMembershipBenefit {
name: string;
description: string | null;
included: boolean;
extraDetails: string | null;
}
interface SamsclubMembershipPlan {
name: string;
price: string;
regularPrice: string | null;
description: string;
benefits: SamsclubMembershipBenefit[];
}