Walmart Product Details Scraper avatar

Walmart Product Details Scraper

Pricing

from $2.99 / 1,000 products

Go to Apify Store
Walmart Product Details Scraper

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

w3crawler

Maintained by Community

Actor 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?

GroupFields
IdentityproductId, name, url, brand, manufacturer, sku, upc
Commerceprice, originalPrice, unitPrice, currency, availability, sellerName
Detaildescription, images, shipping, returnPolicy, category, breadcrumbs, features, specifications, fulfillment, badges
Variantsvariants when the public page exposes them
Provenancesource, sourceUrl, finalUrl, market, rank, sourceTransport, extractionMethod, scrapedAt, httpStatus
DiagnosticsrecordType, 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

  1. Add one or more public Walmart product URLs under startUrls.
  2. Set maxItems and maxConcurrency within their documented limits.
  3. Add an authorized Apify Proxy configuration only when your permitted access requires it.
  4. 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:

FieldTypeRequiredDescription
startUrlsarrayyesOne to 50 official Walmart.com or Walmart.ca HTTPS /ip/ product URLs, as strings or { "url": "..." } objects.
maxItemsintegernoNumber of unique product pages to process; default 1, range 1–50.
maxConcurrencyintegernoBrowser concurrency; default 1, range 1–3.
proxyConfigurationobjectnoAuthorized Apify Proxy settings. useApifyProxy must be boolean; optional proxyUrls must contain at most 20 HTTP(S) URLs.
fixtureFilestringnoLocal-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.