Walmart APIwalmart.com ↗
Search Walmart products, fetch product details, read customer reviews, and browse category listings via a single structured API with 4 endpoints.
What is the Walmart API?
The Walmart.com API covers 4 endpoints that return product search results, detailed product data, customer reviews, and category listings directly from Walmart.com. The search_products endpoint returns up to dozens of fields per item including price, rating, review count, availability badges, and sponsored status, while get_product_details exposes variants, seller information, fulfillment options, and a full image array for any individual product.
curl -X GET 'https://api.parse.bot/scraper/17a61761-c01e-4c8c-8a28-89538156d89e/search_products?page=1&sort=best_match&query=laptop' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace walmart-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Walmart API — search, drill into details, read reviews, browse categories."""
from parse_apis.walmart_api import Walmart, Sort, ProductNotFound
client = Walmart()
# Search for laptops sorted by lowest price, capped at 5 results
for product in client.productsummaries.search(query="laptop", sort=Sort.PRICE_LOW, limit=5):
print(product.name, product.price, product.rating)
# Drill into the first search result's full details
item = client.productsummaries.search(query="wireless headphones", limit=1).first()
if item:
detail = item.details()
print(detail.name, detail.brand, detail.price, detail.availability)
for spec in detail.specifications[:3]:
print(spec.name, spec.value)
# Read customer reviews for that product
for review in detail.reviews(limit=3):
print(review.rating, review.userNickname, review.reviewTitle)
# Browse a category by constructing it directly
food = client.category(category_id="976759")
for product in food.products(slug="food", limit=3):
print(product.name, product.price, product.review_count)
# Typed error handling: attempt to fetch a product that doesn't exist
try:
missing = client.products.get(product_id="0000000000")
print(missing.name)
except ProductNotFound as exc:
print(f"Product not found: {exc.product_id}")
print("exercised: productsummaries.search / item.details / product.reviews / category.products / products.get")
Full-text search over Walmart product catalog. Returns paginated product summaries with price, rating, and availability badges. Supports sorting and facet filtering. Each ProductSummary can be drilled into via get_product_details for full specifications.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| sort | string | Sort order for results |
| queryrequired | string | Search keyword (e.g. 'laptop', 'wireless headphones') |
| filters | string | Facet filter string to narrow results (e.g. 'brand:Samsung') |
{
"type": "object",
"fields": {
"items": "array of product summary objects with id, us_item_id, name, price, rating, review_count, image, url, badge, is_sponsored",
"facets": "array of available filter facets",
"total_pages": "integer total number of pages",
"current_page": "integer current page number or null",
"total_results": "integer total number of matching products"
},
"sample": {
"data": {
"items": [
{
"id": "24H72HS7PA9J",
"url": "https://www.walmart.com/ip/example/19075520026",
"name": "Lenovo IdeaPad Slim 3x 15.3\" Laptop",
"badge": "",
"image": "https://i5.walmartimages.com/seo/example.jpeg",
"price": 449,
"rating": 4.5,
"us_item_id": "19075520026",
"is_sponsored": true,
"review_count": 119
}
],
"facets": [],
"total_pages": 14,
"current_page": null,
"total_results": 67
},
"status": "success"
}
}About the Walmart API
Endpoints and Data Coverage
The API provides four endpoints: search_products, get_product_details, get_product_reviews, and get_category_listings. Search accepts a query string and optional sort values (best_match, price_low, price_high) along with a filters facet string. Each result in the items array includes id, us_item_id, name, price, rating, review_count, image, url, badge, and is_sponsored. The response also returns facets, total_results, total_pages, and current_page for building pagination and filter UIs.
Product Details and Reviews
get_product_details accepts either a product_id (Walmart usItemId) or a full product url — at least one must be supplied. The response includes brand, price, currency, images (array of URLs), rating, seller (name and id), and a variants array describing configurable product options. get_product_reviews takes a product_id and optional page number, returning individual review objects with rating, reviewText, userNickname, and reviewSubmissionTime, alongside aggregate average_rating and total_reviews, plus a pagination object with currentSpan, next, previous, and pages.
Category Browsing
get_category_listings requires a category_id (for example 976759 for food or 1115193 for electronics) and optionally a slug matching the browse URL path. It returns the same items shape as search, with facets and pagination fields. This endpoint may occasionally return a blocked status due to bot-detection conditions on the source site; transient failures of this type are documented behavior and should be handled with a retry.
The Walmart API is a managed, monitored endpoint for walmart.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when walmart.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official walmart.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track price changes for specific products by polling
get_product_detailson a schedule and comparing thepricefield - Build a product comparison tool using
search_productsresults filtered byfacetsand sorted byprice_low - Aggregate customer sentiment by pulling
reviewTextandratingfields fromget_product_reviewsacross multiple product IDs - Monitor whether a specific product is sponsored using the
is_sponsoredflag in search and category listing results - Populate an electronics catalog by browsing category ID
1115193withget_category_listingsand storing returnedus_item_idvalues - Identify available product variants (size, color, etc.) for a listing using the
variantsarray inget_product_details - Cross-reference seller name and seller ID from the
sellerobject in product details to track third-party marketplace listings
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Walmart have an official developer API?+
What does `get_product_details` return beyond basic price and name?+
price and name, the response includes brand, currency, an images array of full-resolution URLs, an average rating, a seller object with seller name and ID, and a variants array describing configurable options like size or color. Either a product_id (the Walmart usItemId) or a full product url must be supplied; both are optional individually but at least one is required.Are there known reliability issues with any endpoint?+
get_category_listings documents that it may return a blocked status due to bot-detection conditions on the Walmart site. These are transient failures. Building in a retry loop when a blocked status is returned is the recommended approach.Does the API return inventory quantity or in-store availability data?+
badge indicators (such as 'in stock' labels) in search and category results, and fulfillment options are noted in get_product_details, but numeric inventory quantities and granular store-level availability are not exposed as discrete fields. You can fork this API on Parse and revise it to add an endpoint targeting that data.Can I retrieve seller feedback or seller ratings separately from product reviews?+
get_product_details endpoint returns a seller object with name and ID, and get_product_reviews returns customer reviews tied to the product. Dedicated seller feedback scores or seller-level review aggregates are not covered by any current endpoint. You can fork this API on Parse and revise it to add a seller-focused endpoint.