Walmart Remote MCP Server
Server Details
Walmart search, product pages and customer reviews on walmart.com and walmart.ca, as JSON.
- Status
- Healthy
- Uptime
- 97.2% over 43 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- HasData/walmart-mcp
- GitHub Stars
- 10
- Server Listing
- Walmart MCP Server
TDQS
Scored across 3 tools
The three tools map to clearly distinct resources and actions: keyword/category search, single-product detail scraping, and product review scraping. Descriptions reinforce the boundaries, and the search tool explicitly notes it feeds item ids into the other two, so an agent can tell them apart without confusion.
All tools share the 'hasdata_walmart_' namespace prefix and a get-style verb, which gives a readable pattern. However the resource segment is inconsistent (product_ vs reviews_ vs search_) and the suffixes vary in shape (getWalmartProduct, getWalmartReviews, getSearchResults), so the pattern isn't fully predictable.
Three tools is on the lean side but appropriate for a scraper covering the core Walmart surface: search, product detail, and reviews. Each earns its place with no redundancy, though a fourth endpoint (e.g. seller/category) would round it out.
Search, product, and reviews form a coherent lifecycle for Walmart data extraction, with pagination, filtering, and item-id handoff between endpoints. Gaps exist (no seller/store detail endpoint, no category browse beyond search), but the primary workflows are covered without dead ends.
Available Tools
3 toolshasdata_walmart_product_getWalmartProductwalmart_product: GET /ARead-onlyInspect
Get Walmart Product Details
Scrapes one Walmart product page on a chosen storefront by item id or URL. Returns title, brand, model, UPC, condition, availability, price with strikethrough before-price and unit price, the seller holding the buy box with its rating and return policy, badges, SNAP EBT eligibility, Walmart+ savings, star rating with the per-star review breakdown and AI review summaries, images, category path, highlights, specifications, AI-generated key item features, variant axes with every option and the itemId each combination resolves to, fulfillment details, and the other-sellers block: how many competitors the page advertises always and, when the page shows it, the cheapest competing price, plus - when otherOffers is enabled - the offer list with each seller name, storefront URL, price, condition, shipping cost, delivery date and return policy. Use for price and buy-box monitoring, seller and marketplace competitor tracking, assortment enrichment of item ids harvested from search, and variant mapping.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | A full Walmart product URL to scrape as is. When provided, it overrides `itemId` and the storefront is taken from the URL itself. Required unless `itemId` is provided. | |
| domain | No | Walmart storefront the item belongs to. Each storefront has its own catalog, item ids, prices and currency, so an id from one storefront does not resolve on another. Ignored when `url` is provided. Default is `walmart.com`. | |
| itemId | No | Walmart item id, taken from a product URL or from the id field of the Walmart Search API response. On `walmart.com` it is numeric (for example `14977205582`), on `walmart.ca` an alphanumeric code (for example `6NZMJ5CW6MH2`). Required unless `url` is provided. | |
| language | No | Language of the product details. Availability depends on the storefront - `walmart.com` serves `en` and `es`, `walmart.ca` serves `en` and `fr`. A language the storefront does not support falls back to its default. | |
| otherOffers | No | Also collect the offers of other sellers competing for this item - each seller name, storefront, price, condition, shipping cost, delivery date and return policy. This takes an extra request to Walmart and costs 5 credits on top of the base 10, whether or not the item turns out to have competing sellers. How many competitors the item advertises, and the cheapest competing price, are returned in the `otherOffers` block whether the switch is on or off, so it can be left off until the count shows there is something to collect. Default is `false`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/non-destructive, and the description goes well beyond them: the otherOffers switch triggers an extra request, costs 5 credits on top of the base 10 whether or not competitors exist, and the competitor count is returned even when the switch is off. That is exactly the kind of cost/latency disclosure an agent needs before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and the usage sentence are front-loaded and efficient, but the middle sentence is a sprawling enumeration of every returned field (badges, SNAP EBT, Walmart+ savings, per-star breakdown, variant axes, etc.) that runs long and would be better summarized or left to documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so thoroughly, covering the main product payload, the competitor block, and the conditional otherOffers list. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so url/itemId precedence, storefront-specific id formats, language fallback, and the otherOffers cost are all already documented in the schema. The description restates the return of the otherOffers block but adds no syntax or format detail beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get Walmart Product Details', 'Scrapes one Walmart product page') and immediately scopes it by storefront and item id/URL. It is clearly distinguishable from the reviews and search siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names concrete use cases (price and buy-box monitoring, competitor tracking, assortment enrichment of ids harvested from search, variant mapping), which implies the search→get workflow. It stops short of explicit when-not guidance or naming the sibling tools directly, so it is strong context without full routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_walmart_reviews_getWalmartReviewswalmart_reviews: GET /ARead-onlyInspect
Get Walmart Product Reviews
Scrapes the customer reviews of one Walmart product on a chosen storefront by item id or URL, ten reviews a page. Returns each review with its rating, title, full text with paragraphs preserved, submission date, author, verified-purchase flag, helpful and not-helpful vote counts, badges, marketplace seller, photos and videos, and the review aspects it was tagged with. Alongside the reviews it returns the item rating, how many ratings versus how many written reviews exist, the per-star breakdown, the AI review summary, per-aspect scores such as Quality or Value for money, and a filters block listing exactly which star ratings, frequent mentions and conditions this item can be filtered by, with a count for each - the values in that block are the ones to pass back as request parameters. Sort by most relevant, most recent, most helpful, highest rated, lowest rated or oldest, and filter by star rating, frequent mention, condition or verified purchases only. Use for review mining and sentiment analysis, tracking what buyers praise or complain about per product, monitoring new reviews over time, and pulling only verified-purchase feedback.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | A full Walmart product URL whose reviews to scrape. When provided, it overrides `itemId` and the storefront is taken from the URL itself. Required unless `itemId` is provided. | |
| page | No | Page of reviews to return, ten reviews a page. The response reports the last available page in `pagination.totalPages`, the next one in `pagination.nextPage`, and how many reviews the current filters select in `pagination.totalResults`. Note that only reviews carrying written text are paginated, so the ceiling follows `reviewsInformation.totalReviews` rather than the larger `reviewsInformation.totalRatings`. Default is `1`. | |
| sort | No | Order of the returned reviews, named as the Walmart review page names it. Default is `mostRelevant`. | |
| domain | No | Walmart storefront the item belongs to. Each storefront has its own catalog, item ids and review pool, so an id from one storefront does not resolve on another. Ignored when `url` is provided. Default is `walmart.com`. | |
| itemId | No | Walmart item id, taken from a product URL or from the id field of the Walmart Search API response. On `walmart.com` it is numeric (for example `14977205582`), on `walmart.ca` an alphanumeric code (for example `6NZMJ5CW6MH2`). Required unless `url` is provided. | |
| rating | No | Return only reviews carrying this star rating, from `1` to `5`. The Star rating group of the `filters` block lists the ratings this item actually has, each with the `value` to send here and a `count` of how many reviews to expect. | |
| aspectId | No | Return only reviews mentioning one topic. Send the `value` of the topic you want, taken from the Frequent mentions group of the `filters` block in the response - given `{"name": "Battery Life", "value": "6049", "count": 8}` you send `6049`, and `count` is how many reviews to expect. **Only one topic per request**, Walmart rejects a list of them. Topics belong to the product rather than to Walmart: a phone offers Battery Life or Display, a coffee offers Flavor or Aroma, and some items offer none at all - so make an unfiltered request first and read the block, instead of reusing a topic id across products. | |
| language | No | Language of the review page. Availability depends on the storefront - `walmart.com` serves `en` and `es`, `walmart.ca` serves `en` and `fr`. A language the storefront does not support falls back to its default. Reviews themselves are returned in the language their author wrote them in. | |
| condition | No | Return only reviews written about one condition of the item. Send the `value` from the Condition group of the `filters` block - given `{"name": "Restored: Like New", "value": "5"}` you send `5`. **Only one condition per request.** This group appears for items Walmart sells in several conditions, and only when the request already names one: reach the variant through the `url` parameter with its `conditionGroupCode`, as in `https://www.walmart.com/ip/1028936148?conditionGroupCode=2`, and the block then lists the condition that variant carries. An item sold in a single condition has no such group, and no reviews to separate by it. | |
| verifiedPurchasesOnly | No | Return only reviews left by customers whose purchase Walmart confirmed. Narrows the pool considerably, since most reviews are unverified or syndicated from the manufacturer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, openWorld, non-destructive), and the description adds substantial behavior beyond them: pagination ceilings follow written reviews rather than total ratings, filters-block values must be passed back as parameters, only one aspect and one condition per request, URL overrides itemId, and unsupported languages fall back to the storefront default. These are non-obvious operational constraints an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and then sealed with use cases; because there is no output schema, the mid-paragraph inventory of returned fields and the filters block is carrying necessary information. It is a single dense paragraph that could be broken up, but almost every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the full burden of describing returns and does so thoroughly (per-review fields, rating aggregates, star breakdown, AI summary, aspect scores, filters block). For a 10-parameter scraping tool it also covers pagination, sorting, filtering and storefront/language constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes beyond it by explaining the filter round-trip workflow (read the filters block, send its `value` back), that aspect topics are product-specific and must not be reused across products, and that condition filtering requires reaching a variant URL with conditionGroupCode. It adds real semantics on top of an already rich schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening states a specific verb and resource — scraping the customer reviews of one Walmart product by item id or URL — and the scope ('one product', 'ten reviews a page') cleanly separates it from the sibling product-detail and search tools. An agent can select this tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names concrete usage scenarios (review mining, sentiment analysis, per-product praise/complaint tracking, monitoring new reviews, verified-only feedback) and even prescribes a workflow prerequisite — make an unfiltered request first to read the filters block before filtering by aspect or condition. It does not name alternative tools or state when NOT to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_walmart_search_getSearchResultswalmart_search: GET /ARead-onlyInspect
Get Walmart Search Results
Runs a keyword or category search on a chosen Walmart storefront with pagination, price range and fulfillment filters, facet narrowing, and sort order (best match, price low-to-high, price high-to-low, bestseller, highly rated, new arrivals). Returns the product list with item id, title, product URL, brand, price and strikethrough before-price, star rating, review count, seller, availability, sponsored flag, badges, SNAP EBT eligibility, Walmart+ savings, variants, other offers and fulfillment details (shipping, pickup, delivery messages), plus the facets block listing every filter the query supports with the exact value to send back in the facet parameter, pagination, and the store the prices belong to. Use for SERP monitoring, price and assortment tracking, share-of-shelf analysis, competitor discovery, and harvesting item ids to feed downstream product or reviews endpoints.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | The search term for which to get the search results. It can be omitted only when `catId` is provided, to browse a whole category instead of searching. | |
| url | No | A full Walmart search or category URL to scrape as is. When provided, it overrides `q`, `catId` and the other search parameters, and the storefront is taken from the URL itself. | |
| page | No | Page number for pagination (e.g., `1` for the first page, `2` for the second page, etc.). Walmart stops serving results after roughly page 10, returning an empty page beyond that. | |
| sort | No | The sorting option for the search results. | |
| catId | No | Walmart category id, taken from a category URL (for example `976759_1086446_1229651`). Combine it with `q` to search inside a category, or send it alone to browse the whole category. Required unless `q` is provided. | |
| facet | No | Walmart filter in the `name:value` form, for example `brand:Great Value`. Every value available for a query is listed in the facets block of the response, each one carrying the exact string to send back here, so a first unfiltered request tells you what can be filtered on. To combine filters, put each one on its own line. The double-pipe form Walmart's own urls use `brand:Great Value||retailer_type:Walmart` is also accepted. | |
| domain | No | Walmart storefront to search. Each storefront has its own catalog, prices and currency. Default is `walmart.com`. | |
| language | No | Language of the results. Availability depends on the storefront - `walmart.com` serves `en` and `es`, `walmart.ca` serves `en` and `fr`. A language the storefront does not support falls back to its default. | |
| maxPrice | No | Upper bound of the price range, in the storefront currency. | |
| minPrice | No | Lower bound of the price range, in the storefront currency. | |
| deliveryType | No | Keep only the products available with the selected fulfillment method. Default is `shipping`. Note that `pickup` is answered against one Walmart store, so an item in stock nationally can still be unavailable for `pickup` nearby - the response then reports that nothing matched the filters rather than that the query had no results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/non-destructive, so the safety profile is covered. The description adds real behavioral value by describing the response shape (product fields, facets block, pagination, store the prices belong to) and the facet round-trip behavior. It omits rate limits or auth details, but the added context is solid for a read-only scrape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, which is good, but the second sentence is an extremely long run-on enumerating every returned field. With no output schema this enumeration has some value, but the wall-of-fields style hurts scanability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description carrying the return-value inventory is appropriate and it does cover the response well. Combined with the fully documented schema, an agent has enough to call the tool correctly, with only minor gaps around rate limits or failure behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents q, url, page, sort, catId, facet, domain, language, prices, and deliveryType thoroughly. The description largely restates schema content (sort order names, price/fulfillment filters) without adding new format or precedence details beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource ('Runs a keyword or category search on a chosen Walmart storefront') and scopes the capabilities (pagination, price range, fulfillment filters, facets, sort). It implicitly distinguishes itself from the product and reviews siblings by noting it harvests item ids 'to feed downstream product or reviews endpoints.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete usage contexts (SERP monitoring, price/assortment tracking, share-of-shelf, competitor discovery) and routes the agent to product/reviews endpoints for downstream work. It does not state explicit when-not conditions, but the context is clear enough to select the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
hasdata_walmart_product_getWalmartProduct - First observed
hasdata_walmart_reviews_getWalmartReviews - First observed
hasdata_walmart_search_getSearchResults
Publisher details
- Operator
- HasData · Publisher source
- Operator website
- https://hasdata.com · Publisher source
- Vendor relationship
- Independent · Publisher source
- Documentation
- https://docs.hasdata.com/mcp-server · Publisher source
- Trust center
- Not available
- Restrictions
- A free HasData account covers 1,000 credits a month with no card. Heavier use needs a paid plan. No admin approval, no regional limits and no custom OAuth app. · Publisher source
Related MCP Connectors
Walmart & Amazon review insights: complaints, topic sentiment, new-review alerts. Pay per result.
Amazon (11 marketplaces) and Walmart US product data: search, prices, stock, history, sellers.
Amazon keyword search, product details, seller profiles and seller catalogues, as structured JSON.
Amazon search and product extraction: titles, prices, ASINs, and listings as clean JSON.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables scraping Walmart product data, including product details, top products by category, and monitoring scraping tasks.4MIT

@retailerapi/mcpofficial
AlicenseAqualityDmaintenanceEnables AI agents to access Walmart product data including lookups, price history, offers, seller profiles, reviews, and sales stats via tools callable in MCP-compatible clients like Claude Desktop and Cursor.55 npm2MIT- AlicenseBqualityFmaintenanceEnables AI agents to search products, manage cart, and track orders on Walmart.com via browser automation.1229 npm4MIT
- FlicenseAqualityDmaintenanceEnables natural language shopping through Walmart's backend API, supporting product discovery, cart management, coupon handling, and order history.102-
Glama MCP Gateway
Add one secure layer between your agents and this server.