--- title: Walmart description: Scrape public Walmart product data and deep reviews as structured JSON --- The Walmart scraper returns public product data as structured JSON: price and list price, rating and review count, availability, 1P and marketplace sellers, variants, specifications, and a free on-page review sample. A second verb pages the full public review history for a product. It only uses public, anonymous data — no login or seller account. Give it search terms or Walmart product, search, category, or browse URLs. Walmart data is the US marketplace (`walmart.com`). The scraper reads the JSON Walmart server-renders into each page rather than the rendered DOM, which keeps extraction stable against the frequent front-end A/B testing on the site. ## Scrape products ```bash POST /api/v1/workspaces/{workspace_id}/scrapers/walmart/scrape ``` ### Inputs | Field | Default | Description | |-------|---------|-------------| | `urls` | — | Walmart product (`/ip/`), search (`/search`), category (`/cp/`), or browse (`/browse/`) URLs. Provide `urls` or `search_terms` | | `search_terms` | — | Search phrases run on `walmart.com`, e.g. `air fryer`. Provide `search_terms` or `urls` | | `max_items` | `10` | Max products per search term or category/browse URL (1–100) | | `include_details` | `true` | Fetch full product detail pages; `false` returns faster card-only results | | `include_reviews_sample` | `true` | Attach the free on-page review sample from each detail page. For full history use the reviews verb | At least one of `urls` or `search_terms` is required, with up to 20 combined sources per call. ```bash curl -X POST "$BASE_URL/api/v1/workspaces/1/scrapers/walmart/scrape" \ -H "Authorization: Bearer $SURFSENSE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "search_terms": ["air fryer"], "max_items": 5, "include_reviews_sample": true }' ``` The response is `{ "items": [...] }` — one item per product, plus structured error items for any input that could not be resolved. Billing is per returned product; error items are never billed. ## Fetch reviews ```bash POST /api/v1/workspaces/{workspace_id}/scrapers/walmart/reviews ``` ### Inputs | Field | Default | Description | |-------|---------|-------------| | `urls` | — | Walmart product (`/ip/`) or reviews URLs to fetch reviews for. Provide `urls` or `item_ids` | | `item_ids` | — | Walmart numeric item ids (`usItemId`) to fetch reviews for. Provide `item_ids` or `urls` | | `max_reviews` | `200` | Max reviews per product (1–5000); reviews are paged 10 at a time | | `sort_by` | `most-recent` | Review ordering: `most-recent`, `most-helpful`, `rating-high`, or `rating-low` | At least one of `urls` or `item_ids` is required, with up to 20 combined sources per call. ```bash curl -X POST "$BASE_URL/api/v1/workspaces/1/scrapers/walmart/reviews" \ -H "Authorization: Bearer $SURFSENSE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "urls": ["https://www.walmart.com/ip/1234567890"], "max_reviews": 500, "sort_by": "most-recent" }' ``` The response is `{ "items": [...] }` — one item per review with rating, title, text, author, date, verified-purchase flag, helpful votes, images, and any seller response. Billing is per returned review; error items are never billed. For the full input and output JSON schemas and generated code snippets in your language, open **API Playground → Walmart** in your workspace.