WE-Commerce

Walmart Product API

Walmart.com renders every product page from one large data object that contains the price, stock state, seller, fulfilment promise, images, variant matrix, specifications and review statistics. The everydata.io Walmart Product API fetches that page in realtime and hands you the complete data object as JSON – nothing cached, nothing summarised away. You pass the product URL in the form https://www.walmart.com/ip/<slug>/<usItemId>; the usItemId at the end is Walmart's public item number and the same id you later use for the reviews endpoint.

100 free requests every month · realtime JSON · one API key for all platforms

What you get

Walmart data, ready to use

The response is a thin wrapper: responseStatus and responseMessage on top, then item, which is Walmart's own page payload. The product data you care about lives under item.props.pageProps.initialData.data. Inside it, product holds the commercial facts – name, brand, usItemId, availabilityStatus (IN_STOCK, OUT_OF_STOCK …), priceInfo.currentPrice with numeric price and currencyUnit, listPrice and savingsAmount when Walmart shows a strike-through, sellerName / sellerDisplayName plus sellerAverageRating for marketplace sellers, and fulfillmentType (FC for Walmart-fulfilled, STORE for local pickup, marketplace seller shipping otherwise).

Next to product you get idml with longDescription, specifications, productHighlights, warnings, nutritionFacts and videos, and reviews with averageOverallRating, totalReviewCount, the five ratingValue*Count buckets and the embedded top positive / negative review. Because the object is Walmart's, it also carries things you rarely find in condensed APIs: variantCriteria with every colour and size and its own availability, imageInfo.allImages in zoomable resolution, category.path as a breadcrumb, returnPolicy, orderLimit and the shipping deliveryDate promise for the default location.

  • product.name, brand, usItemId, canonicalUrl and the category breadcrumb (category.path)
  • priceInfo.currentPrice.price and currencyUnit as numbers, plus listPrice / savingsAmount / isPriceReduced
  • availabilityStatus, fulfillmentType, fulfillmentBadge (e.g. "2 days") and shippingOption.deliveryDate
  • sellerName, sellerDisplayName, sellerId, sellerAverageRating and sellerReviewCount – Walmart.com or a marketplace seller
  • variantCriteria with each colour/size variant, its usItemId and availabilityStatus
  • idml.specifications, longDescription, productHighlights and imageInfo.allImages
  • reviews block with averageOverallRating, totalReviewCount and star-bucket counts

How it works

Example request and response

Call GET /wlm/walmart-lookup-product with the full product URL. Any walmart.com item URL works – with or without tracking parameters – as long as it ends in the numeric usItemId. The example below is trimmed: the real item object is several hundred keys deep, and the product object alone has over 180 fields.

GET /wlm/walmart-lookup-product

curl "https://api.everydata.io/wlm/walmart-lookup-product?url=https%3A%2F%2Fwww.walmart.com%2Fip%2FPatPat-Mommy-and-Me-100-Cotton-Matching-Dresses-for-Women-Girls-One-Piece%2F115632287" \
  -H "x-api-key: YOUR_API_KEY"

Response (shortened)

200 OK · application/json
{
  "responseStatus": "PRODUCT_FOUND_RESPONSE",
  "responseMessage": "Product successfully found!",
  "item": {
    "page": "/ip/[...itemParams]",
    "query": {
      "itemParams": [
        "PatPat-Mommy-and-Me-100-Cotton-Matching-Dresses-for-Women-Girls-One-Piece",
        "115632287"
      ]
    },
    "buildId": "production_20260917T021715375Z-en-US",
    "locale": "en",
    "props": {
      "pageProps": {
        "initialData": {
          "data": {
            "product": {
              "usItemId": "115632287",
              "name": "PatPat Mommy and Me 100% Cotton Matching Dresses for Women/Girls,One Piece",
              "brand": "PatPat",
              "availabilityStatus": "IN_STOCK",
              "canonicalUrl": "/ip/PatPat-Mommy-and-Me-100-Cotton-Matching-Dresses-for-Women-Girls-One-Piece/115632287",
              "priceInfo": {
                "currentPrice": {
                  "price": 17.99,
                  "priceString": "$17.99",
                  "currencyUnit": "USD"
                },
                "isPriceReduced": false,
                "listPrice": null
              },
              "sellerName": "Interfocus INC",
              "sellerDisplayName": "PatPat",
              "sellerAverageRating": 4.1663,
              "fulfillmentType": "FC",
              "fulfillmentBadge": "2 days",
              "returnPolicy": {
                "returnable": true,
                "freeReturns": true,
                "returnPolicyText": "Free 90-day returns"
              },
              "variantCriteria": [
                {
                  "id": "actual_color",
                  "name": "Color",
                  "type": "SWATCH"
                }
              ]
            },
            "idml": {
              "specifications": [],
              "productHighlights": [],
              "videos": []
            },
            "reviews": {
              "averageOverallRating": 0,
              "totalReviewCount": 0,
              "customerReviews": []
            }
          }
        }
      }
    }
  }
}

Navigate with a fixed path: item.props.pageProps.initialData.data.product is the object your code should map. Keep the mapping defensive – Walmart adds and renames keys inside its own payload from time to time, and optional blocks such as listPrice or nutritionFacts are null when the page does not show them. Field names above are Walmart's, not ours; we do not rename anything.

Prices and stock are location-sensitive on Walmart. The payload includes a location block with the postalCode and storeIds that the page was rendered for, so you always know which store context a price belongs to. A product that Walmart shows as available only in-store returns fulfillmentType STORE and pickup details instead of a shipping promise.

A wrong or truncated usItemId returns a 404 with a statusMessage naming the parameter; a Walmart-side block or timeout is a 502/503 and does not touch your quota. Response size is typically a few hundred kilobytes – if you only need price and stock, extract those and discard the rest rather than storing whole pages.

Related endpoints

GET/wlm/walmart-lookup-product

Product details. Product page by URL.

GET/wlm/walmart-lookup-reviews

Reviews. Paged customer reviews for a product.

GET/wlm/walmart-search-by-keyword

Search products. Keyword search with paging and sorting.

Full API reference

Use cases

What teams build with this

Omnichannel price comparison

Retailers and brands compare Walmart's current price, list price and savings against Amazon, Target or their own shop – item by item, with the seller name to separate Walmart-first-party from marketplace prices.

Marketplace seller monitoring

Walmart Marketplace sellers re-fetch their own listings to confirm they hold the buy box, that fulfillmentType and delivery promise are as expected and that no unauthorised seller has appeared on the item.

Catalogue enrichment

Use product.name, brand, idml.specifications, longDescription and imageInfo.allImages to enrich thin product records or to match Walmart items against your own SKUs by manufacturerProductId.

Stock and assortment tracking

Track availabilityStatus and variantCriteria over time to see which colours or sizes go out of stock first and when Walmart delists an item.

Pricing

Pay per request, every platform included

One product page equals one request regardless of payload size. The free plan (100 requests a month) is enough to inspect the structure for the items you care about; Starter (5,000 requests, €30) refreshes a watch list of roughly 160 items daily, Production (50,000, €80) about 1,600. Walmart-side 5xx errors are never billed.

Free
100 req / month
Starter
5,000 req · €30
Production
50,000 req · €80
Business
300,000 req · €300

FAQ

Walmart Product API: frequently asked questions

Related

Related use cases

All use cases

Fetch your first Walmart product page

Sign up for free, copy your API key and paste any walmart.com item URL into the product endpoint. 100 requests a month at no cost.

Get your free API key