Shopping · Walmart
Walmart Search API
The Walmart Search API gets you live Walmart data the moment you ask, as clean, structured data – ready for your own app, a spreadsheet or an AI assistant. No scraping, nothing to maintain.
100 free requests every month · no credit card · one API key for all platforms
Key facts
Updated
Typing a keyword into walmart.com returns a grid of up to 40 products per page, each with a price, a crossed-out was-price, a star rating, a seller and a stock badge. The everydata.io Walmart Search API runs that exact search for you – any keyword, any page, sorted by relevance, best sellers or price – and returns Walmart's result data as JSON. It is the fastest way to discover usItemIds for a category, to see who ranks for a search term, or to build a price comparison across all sellers competing on one query.
- Platform
- Walmart
- Main endpoint
- /walmart-search-by-keyword
- Quota per call
- 1 request
- Free plan
- 100 req / monththen from €30 / month
Walmart data, ready to use
The top of the response echoes your query: keyword, sortStrategy and domainCode. The result list sits under item.props.pageProps.initialData.searchResult, where aggregatedCount gives the total number of matches (3998 for "Lego star wars" in the example) and itemStacks[0].items is the product grid. Each item with __typename Product carries usItemId, name, canonicalUrl, image, price as a number and a priceInfo block with itemPrice, wasPrice, linePriceDisplay ("Now $15.99") and savingsAmt.
Ranking context comes along too: flag marks Walmart's badges such as "Popular pick" or "Best seller", rating.averageRating and numberOfReviews give social proof, sellerName tells you whether Walmart.com or a marketplace seller holds the offer, and fulfillmentSpeed / fulfillmentType show whether the item ships, is in a store today or is pickup-only. isOutOfStock and availabilityStatusDisplayValue let you filter unavailable items before you look them up in detail.
- usItemId, name, canonicalUrl and image for every result – the id feeds straight into the product and reviews endpoints
- price (number) plus priceInfo.itemPrice, wasPrice, savingsAmt and the display string shown to shoppers
- rating.averageRating and numberOfReviews per result
- sellerName and sellerId to separate first-party from marketplace offers
- flag badges ("Popular pick", "Best seller"), isOutOfStock, fulfillmentSpeed and fulfillmentType
- aggregatedCount for the whole query and variantList for items with several variants
- Sorting via sortBy: best_match (default), best_seller, price_low, price_high
What teams build with this
Search-rank tracking
Brands record where their items appear for their top keywords under best_match and best_seller every day, together with the flag badge and the competing sellers around them.
Assortment discovery
Collect usItemIds for a whole category – "cordless drill", "air fryer", "Lego star wars" – page by page, then enrich the shortlist with product and review lookups.
Price-ladder analysis
Sort by price_low and price_high to see the cheapest and most expensive offers for a query and where your own product sits in the band.
Competitive seller intelligence
Group results by sellerName to see how much of the first page Walmart.com holds versus marketplace sellers, and which sellers dominate a niche.
Example request and response
Call GET /wlm/walmart-search-by-keyword with keyword and page – both are required, so start at page=1 and increment. Add sortBy=best_seller to mirror Walmart's Best Sellers ordering, or price_low / price_high for a price ladder. The example is shortened to one product item; a real page holds up to 40 items, and sponsored tiles and ad modules appear with other __typename values.
GET /wlm/walmart-search-by-keyword
curl "https://api.everydata.io/wlm/walmart-search-by-keyword?keyword=Lego+star+wars&page=1&sortBy=best_seller" \
-H "x-api-key: YOUR_API_KEY"Response (shortened)
{
"responseStatus": "PRODUCT_FOUND_RESPONSE",
"responseMessage": "Product successfully found!",
"sortStrategy": "best_seller",
"domainCode": "com",
"keyword": "Lego star wars",
"item": {
"page": "/search",
"query": {
"q": "Lego star wars",
"page": "1",
"sort": "best_seller"
},
"props": {
"pageProps": {
"initialData": {
"searchResult": {
"title": "Results for \"Lego star wars\"",
"aggregatedCount": 3998,
"itemStacks": [
{
"count": 3998,
"items": [
{
"__typename": "Product",
"usItemId": "1520961263",
"name": "LEGO Star Wars 501st Clone Troopers Battle Pack Set 75345",
"canonicalUrl": "/ip/LEGO-Star-Wars-501st-Clone-Troopers-Battle-Pack-Set-75345/1520961263",
"image": "https://i5.walmartimages.com/seo/LEGO-Star-Wars-501st-Clone-Troopers-Battle-Pack-Set-75345.jpeg",
"price": 15,
"priceInfo": {
"itemPrice": "$19.97",
"linePrice": "$15.99",
"wasPrice": "$19.97",
"linePriceDisplay": "Now $15.99",
"savingsAmt": 3.98,
"savings": "SAVE $3.98"
},
"rating": {
"averageRating": 4,
"numberOfReviews": 287
},
"flag": "Popular pick",
"availabilityStatusDisplayValue": "In stock",
"isOutOfStock": false,
"fulfillmentSpeed": [
"TODAY"
],
"fulfillmentType": "STORE",
"sellerName": "Walmart.com",
"numberOfReviews": 287
}
]
}
]
}
}
}
}
}
}Filter items on __typename === "Product" before mapping. The grid also contains modules for ads, brand banners and "related search" tiles that share the array but have no usItemId. Position in the filtered array is the organic rank you would see on the page for that sort order and store context.
Paging is explicit: keep the same keyword and sortBy, increase page by one, and stop when aggregatedCount is exhausted or the items array comes back empty. Walmart caps how deep a search goes, so very broad keywords will not return all 3,998 matches – narrow the keyword or split by sort order to cover more of the assortment.
Prices in search results are the store-context price for the default location and can differ by a few cents from the product page after a price change. When a result matters commercially, confirm it with /wlm/walmart-lookup-product using the canonicalUrl you already have.
Related endpoints
Search products. Keyword search with paging and sorting.
Product details. Product page by URL.
Reviews. Paged customer reviews for a product.
Pay per request, every platform included
Every search page is one request, whether it returns 40 products or 3. Tracking 50 keywords across the first three pages daily is 150 requests a day, about 4,500 a month – within the Starter plan (5,000 requests, €30). Larger keyword sets fit Production (50,000 requests, €80) or Business (300,000, €300). Failed upstream fetches are never counted.
- Free
- 100 req / month
- Starter
- 5,000 req · €30
- Production
- 50,000 req · €80
- Business
- 300,000 req · €300
Walmart Search API: frequently asked questions
How many results does one page contain?
Walmart shows up to 40 product tiles per page. The exact count varies with ad placements and modules in the grid, so always filter on __typename Product.
Which sort options are available?
sortBy accepts best_match (default), best_seller, price_low and price_high. The response echoes the applied value in sortStrategy.
Is page really required?
Yes, keyword and page are both mandatory. Start with page=1 and paginate upwards; there is no cursor.
Can I search walmart.ca?
Keyword search currently runs against walmart.com and returns domainCode com. Canadian coverage exists for reviews via domainCode=ca.
Do results include sponsored products?
The result data contains what the page renders, including sponsored tiles. Sponsored entries are visible in the item's own flags and modules so you can exclude them from organic-rank calculations.
Related use cases
Run your first Walmart search
Create a free account and call the search endpoint with any keyword – 100 requests a month included, no credit card.