Skip to main content
GET
Search Products
Search walmart.com for products. Returns ~40–60 organic products per page. Sponsored ad tiles are dropped; sponsored products are returned and flagged is_sponsored. Credits: 5

Authorization

string
required
Your ScrapeBadger API key.

Query Parameters

string
required
Search keywords, e.g. laptop.
integer
default:"1"
Result page, 110. Results dry up after page 10 — see Pagination.
string
Result ordering. One of best_match, best_seller, price_low, price_high, rating_high, new.
number
Minimum price in USD.
number
Maximum price in USD.
string
Walmart facet filter, e.g. brand:HP. Facets can be applied but not enumerated — Walmart renders the filter rail client-side, so there is no endpoint that lists them.

Response

string
Echo of the requested query.
string
The walmart.com URL that was fetched.
integer
The page returned.
integer
Walmart’s own claim, not a reachable count — it reports ~14,700 for a query that stops returning products after page 10. It moves correctly when a filter is applied, so it is a useful relative signal only.
integer
Measured page ceiling for this surface (10 for search).
integer
Products on this page.
boolean
Page on this, not on total_results_reported.
string
The sort that was applied.
string
Walmart’s result heading, e.g. Results for "laptop".
Breadcrumb[]
name, url.
Walmart’s related query suggestions.
string
Set when Walmart corrected the query.
SearchItem[]
Product cards.

Example

Response

Pagination

total_results_reported is not reachable. Search dries up after page 10 — roughly 500 products per query. Page on has_more_pages; page 11 returns HTTP 200 with result_count: 0.
Consecutive pages overlap by roughly 20% — Walmart re-ranks between requests. Deduplicate on us_item_id.
To collect more than ~500 products for a term, segment the query rather than paging deeper: repeat it per brand (facet=brand:HP) or across price bands (min_price / max_price).
Searching by UPC does not work — Walmart returns zero results for a bare UPC. Search by keyword and read upc off /products/{item_id} instead.
Prices and availability are store-specific, resolved from the request IP and not pinnable by parameter. Fetch a product to see which store answered (its location block).