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
| Function | What it does |
|---|---|
search | Searches 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" });