Site catalog

Best Buy for AI Agents

bestbuy.com: 31 mapped actions across 5 screens

Best Buy is a major US consumer-electronics retailer. Through Rindler, your agent drives bestbuy.com like an API: it searches the catalog, narrows results by brand or price, opens product pages, switches color variants, builds a cart, and, once signed in, checks out, tracks orders, and handles returns.

Electronics shopping is spec-heavy, which is where structured records earn their keep: instead of scraping a product page, your agent reads typed fields it can compare across models, then acts on the same screen with the next mapped action.

What's mapped

The Best Buy config covers 31 actions across five screens, spanning the whole shopping loop. Discovery starts with search_products (a keyword query, navigated directly to the results URL) or view_deals for Best Buy's Top Deals page. On results, filter_results and sort_results narrow and reorder the list, and view_product opens a Product Detail Page from either search results or the deals page. From there the agent can pick a color, add to cart, and edit the cart with update_quantity or remove_from_cart. Signed-in territory adds checkout, promo codes, and the full order lifecycle: history, detail, tracking, cancellation, and returns, plus wishlist, saved addresses, payment methods, and My Best Buy loyalty status and points.

Quirks worth knowing

These come straight from the mapped action behavior, not guesswork.

  • **The Geek Squad trap.** Every Best Buy PDP shows a Geek Squad protection-plan carousel directly above the Add to Cart button. The add_to_cart action first confirms 'No Protection Plan', then clicks Add to Cart, so a plan never lands in your cart by accident.
  • **Color changes are page navigations.** select_color triggers a full page navigation to a new SKU URL. The action waits for networkidle and re-snapshots; your agent should treat a color switch as a new page, not a widget toggle.
  • **Pagination is 18 per page.** Best Buy paginates search results with the cp=N URL parameter, 18 items at a time. next_page and prev_page walk it.
  • **Filters are named groups.** filter_results takes a filter_name (groups like 'Brand', 'Price', 'Features', 'Customer Rating', 'Condition') and a value. Sorting starts from Best Buy's default 'Best Match' label; sort_results opens the dropdown and picks your sort_by option.

Signing in

Best Buy sign-in is an email one-time code, not a password form. The config points at bestbuy.com/identity/global/signin with an email_otp field shape: your agent calls login with an email param and completes the code step. The important part: browsing is fully public. Search, filters, product pages, and the cart all work without an account. 13 of the 31 actions require auth, and they are exactly the ones you'd expect: checkout, apply_promo, order history, tracking, cancelling and returning orders, wishlists, addresses, payment methods, and loyalty points.

Moving between screens

Five screens are mapped: landing, search_results, product_detail, cart, and deals. Your agent always knows which screen it is on, and each screen exposes only the actions that make sense there: filtering, sorting, and pagination on search_results; variant selection and add_to_cart on product_detail; quantity edits and removals on cart. The deals screen is Best Buy's Top Deals page, and a product opened from it lands on the same product_detail screen as one opened from search, so the rest of the flow is identical either way.

Example session

start_session(url: "https://www.bestbuy.com")

dispatch_action(action: "search_products", params: { query: "..." })
dispatch_action(action: "filter_results", params: { filter_name: "Brand", value: "..." })
dispatch_action(action: "view_product", params: { item: "..." })
dispatch_action(action: "select_color", params: { color: "..." })
dispatch_action(action: "add_to_cart")
dispatch_action(action: "view_cart")

close_session()

Every mapped action

Generated from the live site config. 13 of 31 actions require a signed-in session.

ActionWhat it does
account_addressesauth
account_payment_methodsauth
add_to_cartAdd the current product to the cart from the PDP. Best Buy shows a Geek Squad protection plan carousel directly above the Add to Cart button on every PDP. This action first confirms 'No Protection Plan' to avoid accidentally adding a plan, then clicks Add to Cart.
apply_promoauth
browse_category
cancel_orderauth
capture_login
checkoutauth
filter_resultsApply a filter on the search results page. Best Buy uses named filter groups (e.g. 'Brand', 'Price', 'Features', 'Customer Rating', 'Condition'). Pass the filter group name and the value to select.
loginSign in to Best Buy (email code).
next_pageNavigate to the next page of search results. Best Buy paginates with 18 items per page using the cp=N URL parameter.
prev_pageNavigate to the previous page of search results.
redeem_pointsauth
remove_from_cartRemove an item from the cart entirely.
return_orderauth
save_to_wishlistauth
search_productsSearch for products on Best Buy by keyword. Uses direct URL navigation to the search results page.
select_colorSelect a color variant on the Product Detail Page. IMPORTANT: this triggers a full page navigation to a new SKU URL -- wait for networkidle and re-snapshot after selecting.
select_variant
sort_resultsSort search results. Best Buy shows the current sort label in a button (default: 'Best Match'). Click it to open the sort dropdown, then select the desired option.
track_orderauth
update_quantityIncrease or decrease the quantity of an item in the cart.
view_cartNavigate to the Best Buy shopping cart page.
view_dealsNavigate to the Best Buy Top Deals page.
view_loyalty_statusauth
view_order_detailauth
view_order_historyauth
view_productClick on a product from search results or the deals page to open its Product Detail Page. Pass the product name or a distinctive substring.
view_reviews
view_store_locator
view_wishlistauth

Screens and structured records

  • cart returns structured fields, container records
  • deals returns structured fields, container records
  • landing returns structured fields, container records
  • product_detail returns structured fields records
  • search_results returns structured fields, container records