Bowmark AIdocs

DICK'S Sporting Goods

DICK'S Sporting Goods' own storefront — product search, product detail, store-level stock and store locator.

DICK'S Sporting Goods' own storefront — product search, product detail, store-level stock and store locator. The store locator is callable now: it finds stores near a ZIP or a city with full address, phone, per-day trading and curbside hours, and in-store services. The other four declared functions are still stubs, walled behind the main storefront host.

Domain: dickssportinggoods.com

Also known as: DICK'S Sporting Goods, Dick's Sporting Goods, DICK'S, DSG

Call it directly

bowmark.providers.dickssportinggoods.findStores({ near, radiusMiles?, limit? }): Promise<dickssportinggoodsStoreSearch>

Functions

FunctionWhat it does
findStoresDICK'S stores near a place, nearest first, each with its street address, phone, coordinates, per-day trading hours, curbside window, banner and in-store services.

Types

interface dickssportinggoodsDayHours {
  /** 24-hour "HH:MM" local to the store. */
  open: string;
  close: string;
}

/** What the locator says about one day. The three cases are DISTINCT: a window,
 * the literal "closed" when the site flags the day shut, and null when the site
 * publishes nothing. A null is UNKNOWN, not closed — several stores offer
 * curbside pickup without publishing its window. */
type dickssportinggoodsDayEntry = dickssportinggoodsDayHours | "closed" | null;

type dickssportinggoodsHours = Record<
  "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday",
  dickssportinggoodsDayEntry
>;

interface dickssportinggoodsStore {
  /** The store number DICK'S itself uses, e.g. "1338". */
  storeId: string;
  name: string;
  /** Which banner occupies this building — "DSG", "GG" (Golf Galaxy), "HOS"
   * (House of Sport). The chain runs several under one locator. */
  banner: string | null;
  street: string;
  /** Mall or complex, when the locator names one. */
  street2: string | null;
  city: string;
  state: string;
  postalCode: string;
  country: string;
  latitude: number;
  longitude: number;
  phone: string | null;
  url: string | null;
  /** Straight-line miles from the geocoded search centre. */
  distanceMiles: number | null;
  openingStatus: string | null;
  temporarilyClosed: boolean;
  curbsidePickup: boolean;
  hours: dickssportinggoodsHours;
  /** Curbside window, which is NOT the trading hours — it opens an hour earlier
   * at every store that publishes one. A store can have curbsidePickup: true and
   * no window at all, in which case every day here is null. */
  curbsideHours: dickssportinggoodsHours;
  /** In-store services the locator flags on, e.g. "bike", "golf", "racquet". */
  services: string[];
}

interface dickssportinggoodsStoreSearch {
  query: string;
  center: { latitude: number; longitude: number } | null;
  /** How the site itself named the place it geocoded to. */
  resolvedTo: { city: string | null; state: string | null; postalCode: string | null } | null;
  radiusMiles: number;
  /** Nearest first. The endpoint never discloses a total, so a complete result
   * set cannot be told from a truncated one except by raising `limit`. */
  stores: dickssportinggoodsStore[];
}