Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Walmart API page →
E-commerce & Marketplaces

Walmart API & Scraper

The Walmart API returns Walmart.com product data as clean JSON.

4 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary search endpoint returns products with item id, name, brand, price, list price, savings, rating, review count, availability, seller and category, and you can pull a product_detail, reviews and the category tree. It is the managed alternative to a Walmart scraper — no proxies, no captcha handling — for price intelligence, catalog enrichment and review analysis. One ReefAPI key, one shared credit pool, the standard envelope.

Reference

Walmart's five identifiers, and which of them this API accepts

A Walmart product carries an item number, an internal variant id, a UPC and a manufacturer part number, and only one of them is a valid input here. The shapes below were read off a live product_detail for item 20122959141 plus two searches of 50 rows and more.

FieldMeasured shapeWhere it appears, and what accepts it
item_id8 to 11 digits, e.g. 20122959141, the number in walmart.com/ip/<id>search, category and product_detail. The only id that product_detail and reviews accept.
variants[].usItemIdThe same digit shape, one per sibling build: the Ryzen 7 model is 20122959141, the Core i7 model 20543058641product_detail. Feed one back as item_id to switch builds.
variants[].id and variant_ids[]12 uppercase alphanumerics, e.g. 3QQAAF8ICNX0product_detail only. Not accepted as item_id, so map it to a usItemId first.
upc12 digits, e.g. 198155976292product_detail only. Search rows never carry it.
manufacturer_part_numberVendor SKU string, e.g. IDEAPAD1086_CTO_W1product_detail only, alongside model ('IdeaPad Slim 3').
seller_id32 uppercase hex. F55CDC31AB754BB68FE0B39041159D63 is Walmart itselfsearch and product_detail. Any other value is a third-party marketplace seller.

That Walmart seller_id held constant across unrelated searches: all 35 'Walmart.com' rows in a backpack search and all 31 in a coffee-maker search carried F55CDC31AB754BB68FE0B39041159D63. Compare against the id rather than string-matching the seller name.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/walmart/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "laptop"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "walmart",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 4673,
    "record_count": 43,
    "bytes": 1432207,
    "cache_hit": false,
    "completeness_pct": 100,
    "stop_reason": "limit_reached",
    "currency": "USD",
    "total": 19624,
    "count": 43,
    "page": 1,
    "max_page": 13,
    "query": "laptop",
    "field_coverage": {
      "rows": 43,
      "price": 43,
      "brand": 0,
      "note": "Walmart publishes `brand` on the whole search grid or on none of it. This grid published it on none — the value is absent from Walmart's own payload here, not dropped; use product_detail, which carries brand on every product."
    },
    "charged_credits": 2,
    "version": "1.1.0"
  },
  "data": {
    "results": [
      {
        "item_id": "18221467595",
        "name": "Lenovo IdeaPad 5i 15.3\" Touchscreen 2-in-1 Laptop, Intel Core Ultra 5, 16GB Ram, 512GB SSD, Luna Grey - 3 Months of Microsoft 365 Personal included",
        "brand": null,
        "type": "REGULAR",
        "url": "https://www.walmart.com/ip/Lenovo-IdeaPad-5i-2-in-1-15-Laptop-Touchscreen-Intel-Ultra-5-16GB-RAM-512GB-SSD-Luna-Grey/18221467595?classType=REGULAR&athbdg=L1300",
        "price": 729,
        "list_price": 879,
        "savings_amount": null,
        "price_display": "$729.00 - $790.00",
        "currency": "USD",
        "rating": 4.3,
        "review_count": 40,
        "availability": "IN_STOCK",
        "seller": "Walmart.com",
        "category": null,
        "image": "https://i5.walmartimages.com/seo/Lenovo-IdeaPad-5i-2-in-1-15-Laptop-Touchscreen-Intel-Ultra-5-16GB-RAM-512GB-SSD-Luna-Grey_35ffcfba-2176-4a1a-943e-5e76a19456c9.07d8442f28ddafcdbb1b8eaaa50f218c.jpeg?odnHeight=180&odnWidth=180&odnBg=FFFFFF",
        "sponsored": true,
        "availability_display": "In stock",
        "in_stock": true,
        "seller_id": "F55CDC31AB754BB68FE0B39041159D63",
        "savings_display": null,
        "price_range": "$729.00 - $790.00",
        "min_price": 729,
        "max_price": 790,
        "badge": "Rollback",
        "fulfillment": {
          "methods": [
            "[trimmed-depth]",
            "[trimmed-depth]"
          ],
          "earliest_date": "2026-09-23T23:37:08.298Z"
        },
        "variant_count": null,
        "class_type": "REGULAR"
      },
      {
        "item_id": "19978269940",
        "name": "Pryloxen 15.6\" Student & Business Laptop, AMD Ryzen 3 3250C, 16GB RAM 512GB SSD, Windows 11 Pro, Backlit Keyboard, Fingerprint Unlock, Silver",
        "brand": null,
        "type": "REGULAR",
        "url": "https://www.walmart.com/ip/Pryloxen-Laptop-Windows-11-Pro-15-6-AMD-Ryzen-3-3250C-CPU-Home-Computer-16GB-RAM-512GB-SSD-silver/19978269940?classType=REGULAR&athbdg=L1700",
        "price": 419.99,
        "list_price": 529.99,
        "savings_amount": null,
        "price_display": "$419.99",
        "currency": "USD",
        "rating": 4.3,
        "review_count": 4,
        "availability": "IN_STOCK",
        "seller": "Kutoda Laptops",
        "category": null,
        "image": "https://i5.walmartimages.com/seo/Pryloxen-Laptop-Windows-11-Pro-15-6-AMD-Ryzen-3-3250C-CPU-Home-Computer-16GB-RAM-512GB-SSD-silver_62905f82-fee1-4a78-9697-ce0d46628dab.a62fdb919ee856964e65216ed0ee88b7.png?odnHeight=180&odnWidth=180&odnBg=FFFFFF",
        "sponsored": true,
        "availability_display": "In stock",
        "in_stock": true,
        "seller_id": "31BF982D48F34A2588BF2EFB04BCDB9D",
        "savings_display": null,
        "price_range": null,
        "min_price": null,
        "max_price": null,
        "badge": "Reduced price",
        "fulfillment": {
          "methods": [
            "[trimmed-depth]"
          ],
          "earliest_date": "2026-09-25T21:59:00.000Z"
        },
        "variant_count": null,
        "class_type": "REGULAR"
      },
      {
        "item_id": "5322758134",
        "name": "Lenovo IdeaPad 5a 2-in-1 15\" Laptop, Touchscreen, AMD Ryzen AI 7 445, 16GB RAM, 1TB SSD, Luna Grey - 3 Months of Microsoft 365 Personal included",
        "brand": null,
        "type": "REGULAR",
        "url": "https://www.walmart.com/ip/GOSMITH-Set-of-Music-Theme-Pillow-Covers-Words-Print-Life-Would-Be-A-Mistake-Without-Music-Home-Decorative-Pillows-Cases/5322758134?classType=REGULAR&athbdg=L1300",
        "price": 849,
        "list_price": 999,
        "savings_amount": null,
        "price_display": "$849.00",
        "currency": "USD",
        "rating": 4.4,
        "review_count": 34,
        "availability": "IN_STOCK",
        "seller": "Walmart.com",
        "category": null,
        "image": "https://i5.walmartimages.com/seo/GOSMITH-Set-of-Music-Theme-Pillow-Covers-Words-Print-Life-Would-Be-A-Mistake-Without-Music-Home-Decorative-Pillows-Cases_b92d6382-a198-41e5-9cbd-f1484a8d8cab.092e97765c2da67c527ec66a76172d06.jpeg?odnHeight=180&odnWidth=180&odnBg=FFFFFF",
        "sponsored": true,
        "availability_display": "In stock",
        "in_stock": true,
        "seller_id": "F55CDC31AB754BB68FE0B39041159D63",
        "savings_display": null,
        "price_range": null,
        "min_price": null,
        "max_price": null,
        "badge": "Rollback",
        "fulfillment": {
          "methods": [
            "[trimmed-depth]",
            "[trimmed-depth]"
          ],
          "earliest_date": "2026-09-23T23:37:08.323Z"
        },
        "variant_count": null,
        "class_type": "REGULAR"
      }
    ],
    "total": 19624,
    "count": 43,
    "page": 1,
    "max_page": 13,
    "related_searches": [
      {
        "query": "laptop computers under $200",
        "url": "https://www.walmart.com/search?q=laptop%20computers%20under%20%24200&searchMethod=relatedSearch"
      },
      {
        "query": "hp laptop",
        "url": "https://www.walmart.com/search?q=hp%20laptop&searchMethod=relatedSearch"
      },
      {
        "query": "macbook",
        "url": "https://www.walmart.com/search?q=macbook&searchMethod=relatedSearch"
      }
    ],
    "corrected_query": null
  }
}
Actions

What the Walmart API does

ActionDescriptionConcrete use caseKey params
searchSearch Walmart.com by keyword → a paginated, sortable list of products with item id, name, current & list price, savings, star rating + review count, availability, seller, category, fulfillment, image and the product link. Narrow with min_price/max_price and sort. 🔴 `brand` IS ALL-OR-NOTHING PER SEARCH, because Walmart publishes it that way: a clothing/shoes/bags/watches grid carries it on every row (measured 549 of 549 rows over 9 such searches — t-shirt 62/62, backpack 72/72, jeans 71/71, sneakers 65/65…), and every other kind of search carries it on no row at all (0 of ~880 rows over 12 searches — laptop, tv, headphones, printer, coffee maker, sofa, dog food, milk, toothpaste, vitamins, lipstick, office chair). On those searches Walmart simply does not put the brand in the listing it publishes, so this API returns null rather than guessing it out of the product name. Read `meta.field_coverage.brand` to see how many rows of YOUR call carried one, and use product_detail when you need brand guaranteed — it carries it for every product, in every category.Pricing teams call search to search Walmart.com by keyword → a paginated, sortable list of products with item id, name, cu….query, sort, page, max_results, min_price, ...
product_detailFull product record by Walmart item id (or product URL): name, brand, model, UPC, manufacturer part number, current & list price, availability, seller, average rating + review count, short & long descriptions, the full specification table, product highlights, every variant with its resolved attributes (colour/size/…), the category breadcrumb, return policy, fulfillment and the gallery images.Marketplace operators call product_detail to get full product record by Walmart item id (or product URL).item_id, url, country
reviewsCustomer reviews for a Walmart product by item id (or product URL): the average rating, total review count, recommended-percentage, the 5★→1★ rating distribution and percentages, the most-mentioned aspects, and the review texts (rating, title, body, date, helpful counts, verified-purchase, purchased variant, photos).Catalog enrichment teams call reviews to get customer reviews for a Walmart product by item id (or product URL).item_id, url, max_results, country
categoryBrowse a Walmart category / department by its query term (e.g. 'coffee maker', '4k tv') → the same product grid as search, framed as a category browse with the related category searches surfaced. Paginated and sortable.Retail analysts call category to get browse a Walmart category / department by its query term (e.g.query, sort, page, max_results, min_price, ...
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/walmart/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"laptop"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.walmart.search with {"query":"laptop"}.
Use cases

Who uses this API and why

  • Pricing teams call search to track Walmart prices, rollbacks and savings against competitors.
  • Catalog-enrichment tools use product_detail to fill product pages with specs, images and availability.
  • Review-analysis products pull reviews to monitor sentiment and rating trends for an item.
FAQ

Questions developers ask before integrating

How do I tell a Walmart-sold item from a marketplace seller, and does it change the data?

seller is the display name and seller_id is the stable marker: 'Walmart.com' with F55CDC31AB754BB68FE0B39041159D63 is Walmart's own inventory, anything else is a third-party seller with its own id (JanSport came back as 599E0246F55B4955AB65EECCC34AE32C). It changes fulfillment. In a measured 50-row coffee-maker search, PICKUP appeared in fulfillment.methods on 18 of the 31 Walmart-sold rows and on 0 of the 19 marketplace rows, four of which returned an empty methods list entirely. Store pickup is a Walmart-sold signal, not a general one.

What do price, list_price and savings_amount mean, and why is list_price so often null?

price is the current price, list_price is the struck-through 'was' price, and both savings_amount and savings_display exist only when list_price does. Null means Walmart is showing no strikethrough at all, which is the common case: all 50 rows of a coffee-maker search had list_price null, while a laptop row carried price 229.00, list_price 299.00, savings_amount 70 and savings_display 'SAVE $70.00'. price_display preserves Walmart's own wording, so you can distinguish 'Now $229.00' from a plain '$199.00'.

Is Rollback an enum I can filter on?

No. badge is a display label and Walmart writes whatever it likes there. Measured values across a 60-row backpack search were Rollback (11 rows), Deal (5), Best seller (5), '100+ bought since yesterday' (4), 'Overall pick', 'In 200+ people's carts', and null on 33. Match the exact string 'Rollback' if that is what you want, but expect new phrases to appear without notice.

Why is brand null on some search results?

Because Walmart only splits brand out of the title on some product classes. It came back populated on 60 of 60 backpack rows and null on the laptop rows inspected in the same session, so this is category-shaped rather than random. If you need brand on every row, resolve it from product_detail, which returned 'Lenovo' for item 20122959141 along with brand_url.

How many products can I actually get for one query?

About 360, and Walmart's own page count overstates it. A measured 'laptop' search with max_results 400 returned 362 rows, all 362 with distinct item_ids, after 9 successful page fetches and has_more false, while the same response reported max_page 13. meta.pagination.page_ceiling shows the real limit of 10. The pages are fetched together, so 400 results cost roughly the latency of one page rather than nine.

Do results repeat across pages?

The sponsored tiles are what Walmart repeats, and they are flagged. In that 362-row set, 18 rows had sponsored true and no item_id appeared twice. If you page manually instead of using max_results, filter on sponsored == false to get a set that will not duplicate itself between pages.

Why does the reviews action return fewer texts than the review count?

Because most Walmart ratings are stars with no words, and the response separates the two numbers. Item 20122959141 returned total_review_count 30 but reviews_with_text_count 6, so asking for max_results above 6 adds nothing. rating_distribution is always the full catalog total ({5:20, 4:4, 3:1, 2:3, 1:2} there), recommended_percentage came back 100, and each review carries the variant purchased ('16GB RAM | 512GB SSD'), source 'bazaarvoice', verified_purchase, and a date in M/D/YYYY form such as '3/18/2026'. aspects and photos come back null when the product has none.

What is the Walmart API?

Walmart API is a ReefAPI endpoint group for walmart It returns live JSON through POST requests under /walmart/v1.

Is the Walmart API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Walmart calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Walmart login or account?

No login to Walmart is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Walmart data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Walmart API use?

Walmart actions currently cost 1-2 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Walmart from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call walmart actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Walmart API a Walmart scraper?

It is the managed alternative to a DIY Walmart scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same walmart back as clean JSON.

docs / walmart

Walmart

Walmart

base /walmart/v14 endpoints
post/walmart/v1/product_detail2 credits

Full product record by Walmart item id (or product URL): name, brand, model, UPC, manufacturer part number, current & list price, availability, seller, average rating + review count, short & long descriptions, the full specification table, product highlights, every variant with its resolved attributes (colour/size/…), the category breadcrumb, return policy, fulfillment and the gallery images.

ParameterAllowed / rangeDescription
item_idoptional—Walmart item id — the number in a walmart.com/ip/<id> URL, or a search result's `item_id`. Provide item_id OR url.
urloptional—Full walmart.com product page URL (alternative to item_id; the id is parsed from /ip/<id>).
country = usoptionalus · mx · caMarket: US (default), Mexico or Canada. Mexico/Canada support search and product_detail only; page 1 only.
Try in playground →
post/walmart/v1/reviews1 credit

Customer reviews for a Walmart product by item id (or product URL): the average rating, total review count, recommended-percentage, the 5★→1★ rating distribution and percentages, the most-mentioned aspects, and the review texts (rating, title, body, date, helpful counts, verified-purchase, purchased variant, photos).

ParameterAllowed / rangeDescription
item_idoptional—Walmart item id — the number in a walmart.com/ip/<id> URL, or a search result's `item_id`. Provide item_id OR url.
urloptional—Full walmart.com product page URL (alternative to item_id; the id is parsed from /ip/<id>).
country = usoptionalus · mx · caMarket: US (default), Mexico or Canada. Mexico/Canada support search and product_detail only; page 1 only.
max_results = 20optional1–100How many review texts to return (10 per Walmart page, fetched concurrently). The rating distribution is always the full-catalog total. Only `reviews_with_text_count` of the total ratings actually carry text.
Try in playground →
post/walmart/v1/category2 credits

Browse a Walmart category / department by its query term (e.g. 'coffee maker', '4k tv') → the same product grid as search, framed as a category browse with the related category searches surfaced. Paginated and sortable.

ParameterAllowed / rangeDescription
queryrequired—The category/department to browse (a Walmart department name or product-class keyword).
sort = best_matchoptionalbest_match · price_low · price_high · best_seller · rating_high · newResult ordering.
page = 1optional1–Result page (~40-55 products per page; paginate with page += 1). The response's `max_page` is the last page Walmart will serve for the query. Walmart repeats SPONSORED tiles across pages (measured: 12 repeats page1↔page2, 11 of them sponsored); filter on `sponsored == false` for a duplicate-free paginated set.
max_resultsoptional1–400How many products to return (1-400). Walmart serves about 40-55 per page, so asking for more than that fetches the further pages automatically — they are fetched TOGETHER, so 200 results cost roughly the time of one page rather than five. 400 is Walmart's real ceiling: it stops serving products after page 10, measured — note that Walmart's own `max_page` claims 13-14 and is wrong, so do not size a job from it. OMIT IT to get exactly one page, exactly as this action behaves today — `page` on its own is completely unchanged.
min_priceoptional0–Lowest price to include (USD).
max_priceoptional0–Highest price to include (USD).
country = usoptionalus · mx · caMarket: US (default), Mexico or Canada. Mexico/Canada support search and product_detail only; page 1 only.
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.