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_cartaction 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_colortriggers 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=NURL parameter, 18 items at a time.next_pageandprev_pagewalk it. - **Filters are named groups.**
filter_resultstakes afilter_name(groups like 'Brand', 'Price', 'Features', 'Customer Rating', 'Condition') and avalue. Sorting starts from Best Buy's default 'Best Match' label;sort_resultsopens the dropdown and picks yoursort_byoption.
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.
| Action | What it does |
|---|---|
| account_addressesauth | |
| account_payment_methodsauth | |
| add_to_cart | Add 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_results | Apply 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. |
| login | Sign in to Best Buy (email code). |
| next_page | Navigate to the next page of search results. Best Buy paginates with 18 items per page using the cp=N URL parameter. |
| prev_page | Navigate to the previous page of search results. |
| redeem_pointsauth | |
| remove_from_cart | Remove an item from the cart entirely. |
| return_orderauth | |
| save_to_wishlistauth | |
| search_products | Search for products on Best Buy by keyword. Uses direct URL navigation to the search results page. |
| select_color | Select 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_results | Sort 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_quantity | Increase or decrease the quantity of an item in the cart. |
| view_cart | Navigate to the Best Buy shopping cart page. |
| view_deals | Navigate to the Best Buy Top Deals page. |
| view_loyalty_statusauth | |
| view_order_detailauth | |
| view_order_historyauth | |
| view_product | Click 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
cartreturns structured fields, container recordsdealsreturns structured fields, container recordslandingreturns structured fields, container recordsproduct_detailreturns structured fields recordssearch_resultsreturns structured fields, container records