In September a shopper's AI agent hit a pop-up saying it violated Amazon's terms of use. In October Walmart announced a gateway built for exactly that kind of agent. Same agents, opposite answers.
If you build shopping agents, or the e-commerce systems they talk to, this split matters more than either headline. The two retailers are protecting different things, and that decides what your agent is allowed to be. I read both moves closely below, then list what I would design for.
Amazon's answer: the terms of use are the gate
Amazon began blocking Meta's Muse agent from Amazon.com on the night of Sunday 20 September 2026, according to an Amazon spokesperson. Amazon said it had asked Meta to remove Amazon from the Muse experience. Shoppers who try to use Muse on Amazon now see a pop-up saying that doing so violates Amazon's terms of use.
Notice the lever. It is not a new technical wall. It is contract. Amazon says what is allowed in its terms, and an agent that does not fit is in breach.
That is consistent with how Amazon behaved earlier. In 2025 it sued Perplexity AI, saying Perplexity sought to conceal its shopping agents after Amazon had asked it to remove them. The report on the Muse block mentions that history.
My reading, and it is an opinion: what Amazon protects is the right to decide who may act on its site. The question is not whether an agent can complete a purchase. It is whether Amazon agreed to that agent being there.
Walmart's answer: an MCP front door
Walmart announced Agent Gateway, described as designed to help approved agents connect to Walmart over the Model Context Protocol. Walmart CEO John Furner announced the features on 21 October 2026 at the Masters of Scale Summit in San Francisco. Through the gateway an agent can search Walmart's online inventory and make purchases for its user, and it supports both Walmart and Sam's Club.
This is not a one-off with a single partner. Walmart previously announced a partnership with Meta's agent Muse, and it offers integrations with ChatGPT, Gemini and other AI apps. The same Muse that Amazon blocks is, at Walmart, a partner.
For a developer, "over MCP" is the interesting part. You do not drive a website with a headless browser and hope. You connect to a server that exposes tools. Here is a generic sketch of what that looks like from the agent side. It is an illustration only: the URL and tool names are made up and are not Walmart's.
# Illustration only: a generic MCP client talking to a retailer server.
# The URL and tool names are invented, not any real retailer's API.
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def find_and_buy(query: str):
async with streamablehttp_client("https://mcp.example-retailer.test/") as (r, w, _):
async with ClientSession(r, w) as session:
await session.initialize()
hits = await session.call_tool("search_inventory", {"query": query})
# The retailer, not the agent, decides what checkout needs.
try:
return await session.call_tool("purchase", {"item": hits.content[0].text})
except Exception as err:
# A rejected or blocked call is a normal outcome, not a crash.
return {"status": "rejected", "detail": str(err)}
The point of the sketch is the shape. The retailer defines the tools and the agent works inside them, and a refusal is a result your code has to handle. The source for the Walmart details in this post is TechCrunch's write-up of the announcement.
Agent Profiles: the agent as a sub-identity of the customer
The bit I find most interesting is Agent Profiles. These are dedicated profiles in a customer's account, shown separately from the customer's own purchases, and Walmart said they roll out the following month, November 2026.
Customers can require approval for each transaction or set a spending limit for the agent's profile, and they can delete the profile at any time. A profile is created the first time a customer uses a given agent through Agent Gateway. A Walmart account is required, but Walmart+ is not.
Walmart compares this to adding an authorized user to a credit card, where that user's transactions are identified and their spending can be capped. I think the comparison works. It tells you the agent is treated as a distinct, limited party acting for the customer, not as the customer.
One caveat: this is announced, not live. Details may change before the November rollout.
Walmart's rules: what it keeps out of the agent's hands
Opening the door does not mean leaving it unguarded. Walmart's terms for AI agents say agents can't act beyond the shopper's intent, can't access payment information, and can only access the information a task requires. Agents that don't comply will be blocked from accessing Walmart's site.
So Walmart also blocks. The difference is what triggers the block. At Amazon, the trigger in the Muse case was the agent's presence under the terms of use. At Walmart, the trigger is behaviour: over-reach, touching payment data, taking more data than needed.
Walmart makes two promises on the customer side. It says Agent Gateway can help customers shop their usual brands without sharing personal information or purchase history directly with the agent. And its returns process applies even when an agent doesn't act as intended.
My reading, again an opinion: Walmart protects control of the transaction, rather than control of access. It will let many agents in, provided the money, the identity and the returns path stay with Walmart and the customer.
Who is right? The "blockers will regret it" argument
Meta has a clear view. On a podcast with Stripe's John Collison, reported by Payments Dive on 15 October 2026, Mark Zuckerberg said, without naming Amazon, that "very few really" have tried to block Meta's agent integration. He predicted that blocking "will end up not being the right strategic thing for them". The Payments Dive piece has the details.
Treat that with care. Meta's agent is the one being blocked, so Zuckerberg is an interested party. Whether terms-based blocking holds up over time is an open question, and I am not claiming it either way. For an agent builder, each position has a price: with a blocking retailer you risk being shut out whatever your agent does, and with an inviting one you accept its limits on data, spending and identity.
What to design for as an agent builder
The practical lessons overlap whichever retailer wins. This section is my own advice, not a reported fact.
Prefer an approved, authenticated interface over driving a website. An MCP server or similar gateway gives you a stable contract. A scraped checkout flow gives you a terms-of-use pop-up on a bad day.
Never touch payment credentials, and ask for the minimum data. Walmart's terms say this out loud. Even where a retailer does not, it is the right default.
Expect per-agent identity and spending caps. Build approval flows into the agent now, so a per-transaction approval or a limit set by someone else is a normal path and not an error.
Handle being blocked gracefully. Detect it, tell the user plainly, and offer another route. Log which retailer refused and what the response said, and show the user the same. Do not try to hide the agent. Concealment is what Amazon alleged in its Perplexity suit.
Here is a small illustration of a spend limit and approval hook. The limit lives outside the agent's own control.
# Illustration only: the cap is set by the user or the retailer, never by the agent.
def authorize(cart_total: float, limit: float, ask_user) -> str:
if cart_total > limit:
return "over_cap" # hard stop: over the cap
if not ask_user(f"Buy for {cart_total:.2f}?"): # per-transaction approval
return "declined"
return "ok"
Nothing clever here, and that is the point. The agent asks, and something else decides. Two distinct return values keep a cap stop from being mistaken for a user decline.
Build the agent as a guest with a leash
Amazon and Walmart are protecting different things: who may act on the site, and who controls the transaction. Both can be defended, and both will keep changing.
So build your agent as a guest with a leash, not a user in disguise: an approved door, minimal data, and a cap someone else controls.
If you were building a shopping agent today, would you integrate with the retailers that block you, or only with those that invite you?



Top comments (0)