Bowmark AIdocs

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

FunctionWhat it does
searchSearches 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.
getInstantSavingsReads 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…
browseCategoryReads 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…
getFuelPricesReads 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…
getProductReads 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…
checkStockAnswers 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…
findClubsFinds 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,…
getMembershipPlansReads 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[];
}