Walmart
Walmart Search API
Search Walmart and get structured product rows as JSON - title, item id, price, currency, rating, rating count, seller, sponsored flag, availability and per-item fulfillment - plus the store the results were priced against. Pass store_id and delivery_zip to get a specific store's assortment and availability on walmart.com or walmart.ca. Costs 1 credit on domain com or ca, 2 on com.mx, and 2 for any store-targeted search: the price is a function of the request body, not a constant for the route.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsonquerystringrequiredProduct search query, 1 to 500 characters.
Example: wireless headphones
domainenum<string>default:comMarketplace to search. This is the price-bearing parameter: com and ca cost 1 credit, com.mx costs 2. It also sets the currency and the product URLs in the response.
com— walmart.com (US). 1 credit.ca— walmart.ca (Canada). 1 credit.com.mx— walmart.com.mx (Mexico). 2 credits.
pageintegerResults page, 1-based. One page per call. The response reports max_page - page against that; has_more_pages is passed through from Walmart unchanged and can read false or null while further pages exist.
Example: 2
start_pageintegerDeprecated alias for page, kept for older integrations. Send page instead.
sort_byenum<string>default:best_matchResult sort order.
best_match— Walmart relevance ranking (default).price_low— Price, low to high.price_high— Price, high to low.best_seller— Best selling first.rating_high— Highest customer rating first.new— Newest arrivals first.
min_pricenumberMinimum price filter in the marketplace's own currency. Decimals are accepted.
Example: 19.99
max_pricenumberMaximum price filter in the marketplace's own currency. Decimals are accepted.
Example: 199.5
fulfillment_speedenum<string>Delivery-speed filter. There is no 2_days value (Walmart's own facet leaks 3-4 day items into it) and no anytime value - for anytime, omit the parameter.
today— Deliverable today.tomorrow— Deliverable by tomorrow.
fulfillment_typeenum<string>Fulfillment filter. in_store is the only accepted value - shipping, pickup and delivery are not options here; read the per-item fulfillment object in the response instead.
in_store— Only items available for in-store pickup.
store_idstringWalmart store to search against, from the Walmart Stores endpoint on the same domain. Must be sent together with delivery_zip. Supported on domain com and ca. Store-targeted searches cost 2 credits and take 10-60 seconds. The store used is echoed in data.location.
Example: 1389
delivery_zipstringShopper's postal code: a 5-digit US ZIP, or a Canadian postal code such as M5V 2T6 with domain ca. Required together with store_id; store_id decides which store's results you get.
Example: 50036
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
results = client.walmart.search("wireless headphones", page=1, sort_by="price_low")
print(results)
# One store's assortment: store_id from client.walmart.stores("50036")
store_results = client.walmart.search("whole milk", delivery_zip="50036", store_id="1389")
print(store_results["data"]["location"])Response