Bowmark AIdocs

Retail (general merchandise, multi-store)

General-merchandise retail across Walmart, Target and Best Buy — one keyword search, fanned out in parallel and returned price-sorted, so an agent can…

General-merchandise retail across Walmart, Target and Best Buy — one keyword search, fanned out in parallel and returned price-sorted, so an agent can answer 'where can I actually buy this and what does it cost' without querying each store by hand. Best Buy's leg needs the caller's own Best Buy developer key; without one the search still returns Walmart + Target with a warnings entry naming the drop.

Also known as: shop, shopping, store, buy, product, compare prices, price comparison, retailer, walmart, target, bestbuy, best buy, general merchandise, switch 2, pokemon, groceries, grocery, grocery shopping, nee doh, nee-doh, needoh, toy, toys

Call it

bowmark.retail.search(args: { query: string }): Promise<RetailSearchResult>

Functions

FunctionWhat it does
searchSearches Walmart, Target and Best Buy in parallel for a keyword and returns one price-sorted list of offers across all stores, each tagged with which store it's from.

Types

type RetailOffer = {
  store: "walmart" | "target" | "bestbuy"  // where this offer is from
  title: string                  // the product as the store lists it
  price: number | null           // USD; null if unpriced
  wasPrice: number | null        // the pre-markdown price, when the store publishes one
  url: string | null             // product page
  inStock: boolean               // this store's OWN in-stock signal — not comparable
                                  // across stores as one normalized fact
}
type RetailSearchResult = {
  results: RetailOffer[]   // ONE query across ALL stores, price-sorted (cheapest first)
  warnings: string[]       // always present; names any store that did not answer. A
                           // store named here priced NOTHING, so read this before
                           // concluding a store has no stock or a worse price
}

type CallOptions = {
  timeoutMs?: number   // per-provider budget in ms, default 30000, clamped to 1000-55000.
                       // A provider slower than this is DROPPED from the results and
                       // NAMED in warnings — never silently absent
}

Examples

return await bowmark.retail.search({ query: "Nintendo Switch 2" });

Providers behind it

Provider
walmartWalmart
targetTarget
bestbuyBest Buy