Walmart Product Details Scraper
Pricing
from $2.99 / 1,000 products
Walmart Product Details Scraper
Extracts public product details from Walmart product pages.
Pricing
from $2.99 / 1,000 products
Rating
0.0
(0)
Developer
w3crawler
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
What does Walmart Products Scraper do?
Walmart Products Scraper extracts rich, source-backed product records from public Walmart.com and Walmart.ca product pages. It reads public JSON-LD, embedded page state, and rendered page fields, then emits one normalized product record per requested product URL when the page publishes the required detail fields.
The Actor does not log in, use credentials, solve CAPTCHAs, bypass access controls, or fabricate values. A challenge or incomplete page becomes a structured diagnostic instead of being presented as a product.
Why use Walmart Products Scraper?
Use it for catalog enrichment, price monitoring, seller comparison, product-page audits, and variant discovery. Each product row preserves the requested URL, final URL, market, rank, transport, extraction method, and timestamp. Apify provides dataset exports, API access, run history, scheduling, and optional ordinary proxy configuration.
What data does Walmart Products Scraper provide?
| Group | Fields |
|---|---|
| Identity | productId, name, url, brand, manufacturer, sku, upc |
| Commerce | price, originalPrice, unitPrice, currency, availability, sellerName |
| Detail | description, images, shipping, returnPolicy, category, breadcrumbs, features, specifications, fulfillment, badges |
| Variants | variants when the public page exposes them |
| Provenance | source, sourceUrl, finalUrl, market, rank, sourceTransport, extractionMethod, scrapedAt, httpStatus |
| Diagnostics | recordType, status, dataAvailable, sourceBlocked, diagnosticCode, diagnosticMessage |
Product records are emitted only when price, availability, images, seller, fulfillment, features, and specifications are present. Optional values are omitted when the source does not publish them. Fulfillment and variants are normalized as arrays of source-backed objects.
How to scrape Walmart products
- Add one or more public Walmart product URLs under
startUrls. - Set
maxItemsandmaxConcurrencywithin their documented limits. - Add an authorized Apify Proxy configuration only when your permitted access requires it.
- Start the Actor and inspect product and diagnostic records together. A diagnostic explains a challenge, request failure, missing public product payload, or incomplete detail page.
The Actor accepts Walmart.com and Walmart.ca HTTPS URLs whose path contains /ip/. It processes at most 50 URL entries and at most 50 product pages per run. Local fixtureFile input is intended only for deterministic development checks and must point inside this Actor's fixtures/ directory.
How much does it cost?
Apify compute and any configured proxy traffic are billed according to your Apify plan. Cost is generally driven by browser time, memory, URL count, and proxy usage. Keep concurrency low and request only the product pages you need; use a fixture locally without network traffic when testing parser changes.
Input
The default input shape is:
{"startUrls": [{"url": "https://www.walmart.ca/en/ip/DarkBeacon-Flux-68-HE-Magnetic-Switch-Gaming-Keyboard-Adjustable-Actuation-RT/1YTYV6ZNUNUR"}],"maxItems": 1,"maxConcurrency": 1}
Input fields:
| Field | Type | Required | Description |
|---|---|---|---|
startUrls | array | yes | One to 50 official Walmart.com or Walmart.ca HTTPS /ip/ product URLs, as strings or { "url": "..." } objects. |
maxItems | integer | no | Number of unique product pages to process; default 1, range 1–50. |
maxConcurrency | integer | no | Browser concurrency; default 1, range 1–3. |
proxyConfiguration | object | no | Authorized Apify Proxy settings. useApifyProxy must be boolean; optional proxyUrls must contain at most 20 HTTP(S) URLs. |
fixtureFile | string | no | Local-only HTML fixture path under fixtures/; not a substitute for Cloud source evidence. |
For example, an authorized proxy run can use:
{"startUrls": [{"url": "https://www.walmart.ca/en/ip/DarkBeacon-Flux-68-HE-Magnetic-Switch-Gaming-Keyboard-Adjustable-Actuation-RT/1YTYV6ZNUNUR"}],"maxItems": 1,"maxConcurrency": 1,"proxyConfiguration": {"useApifyProxy": true}}
The runtime validator rejects missing or malformed URLs, unsupported hosts or URL schemes, credentials embedded in product URLs, numeric strings for numeric options, invalid ranges, malformed proxy settings, and fixture paths outside fixtures/.
Output
The default dataset contains product and diagnostic records. A representative product record is:
{"recordType": "product","status": "success","dataAvailable": true,"source": "walmart_public_product_detail","sourceTransport": "playwright_apify_proxy","extractionMethod": "embedded_product_payload_with_idml","market": "CA","sourceBlocked": false,"sourceUrl": "https://www.walmart.ca/en/ip/example-product/1YTYV6ZNUNUR","finalUrl": "https://www.walmart.ca/en/ip/example-product/1YTYV6ZNUNUR","rank": 1,"productId": "1YTYV6ZNUNUR","name": "Example product","url": "https://www.walmart.ca/en/ip/example-product/1YTYV6ZNUNUR","brand": "Example Brand","price": 49.99,"originalPrice": 68.99,"currency": "CAD","availability": "In stock","sellerName": "Example Seller","images": ["https://i5.walmartimages.ca/asr/example.jpg"],"features": ["Example feature: value"],"specifications": { "Manufacturer Part Number": "EXAMPLE-1" },"fulfillment": [{ "fulfillment": "DELIVERY" }],"variants": [{ "name": "Example variant" }],"scrapedAt": "2026-09-08T12:00:00.000Z"}
A diagnostic record has recordType: "diagnostic", status: "failed", dataAvailable: false, sourceBlocked as a boolean, and a diagnosticCode such as ACCESS_BOUNDARY, REQUEST_FAILED, NO_PUBLIC_PRODUCT, or INCOMPLETE_PRODUCT_DETAIL. Diagnostics identify why a page did not produce a complete product and are never counted as products.
OUTPUT in the default key-value store contains status, market, requested and failed pages, product and diagnostic counts, blocked count, skipped incomplete count, field coverage, and completion time.
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Tips and advanced options
Use a direct product URL when you need the richest fields. Keep maxConcurrency at 1 when diagnosing access boundaries. If the run contains diagnostics, inspect diagnosticCode, diagnosticMessage, httpStatus, sourceBlocked, and the source URLs before retrying. A page may be reachable while still omitting fulfillment or specifications; the Actor reports that as INCOMPLETE_PRODUCT_DETAIL rather than filling the gap.
FAQ, support, and responsible use
Why did I receive a diagnostic instead of a product?
Walmart may return a public page without a complete embedded product payload, or it may return a human-verification or other access-boundary response. The Actor records the observable result and does not attempt CAPTCHA solving or access-control bypass.
Does the Actor guarantee price or availability?
No. These values are time-sensitive source observations, not purchase guarantees. Use Walmart's current product page for decisions that require current price, inventory, delivery, or policy information.
How do I request support?
Use the Actor Issues or API tab and include the run ID, sanitized input shape, record counts, and diagnostic code. Do not submit cookies, credentials, private headers, payment information, or personal data.
This Actor is an independent community tool and is not affiliated with, endorsed by, or sponsored by Walmart. Use it only for public, permitted, lawful collection and respect Walmart's terms, robots guidance, rate limits, and applicable law.
Local verification
Run npm test, npm run check, npm run schema, and apify run --purge --input-file qa-input-282-fixture.json, then run npm run validate. The fixture is deterministic; a real Cloud run with an authorized input is required to assess current source availability.