{
  "openapi": "3.0.1",
  "info": {
    "title": "Walmart Scraper: Products, Prices, Sellers",
    "description": "Scrape Walmart US, Canada and Mexico by category, brand, keyword landing page, shelf, link or product id, no login. Get price, was price, Rollback, rating, availability, seller, delivery dates and the ZIP Walmart priced at. Add details, reviews, seller contacts. JSON, CSV, Excel; pay per product.",
    "version": "0.1",
    "x-build-id": "Efd6d33RM6alDm6rl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automation_craft~walmart-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automation_craft-walmart-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/automation_craft~walmart-scraper/runs": {
      "post": {
        "operationId": "runs-sync-automation_craft-walmart-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/automation_craft~walmart-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-automation_craft-walmart-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "startUrls": {
            "title": "Walmart links",
            "type": "array",
            "description": "Links copied from walmart.com, walmart.ca or walmart.com.mx: a category page (https://www.walmart.com/browse/electronics/tvs/3944_1060825_447913, with its own page, sort, facet, min_price, max_price or stores settings), a keyword page (/c/kp/...), a brand page (/c/brand/... or a category filtered to one brand), a department or shelf page (/cp/..., /shop/..., the home page; page 1, every product tile), a product page (/ip/...) or a walmart.com seller page (https://www.walmart.com/seller/101174524, also the /global/seller/ form; one seller row each, as Seller ids below). Each link is read in its own market; seller links of walmart.ca or walmart.com.mx are not read (seller pages are read on walmart.com). Walmart search links (/search) are not read: robots.txt closes them. Other links are a free status row.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "categoryIds": {
            "title": "Category ids",
            "type": "array",
            "description": "Walmart category ids, the last part of a category link (3944_1060825_447913 for TVs), read in the market below.",
            "items": {
              "type": "string"
            }
          },
          "productIds": {
            "title": "Product ids",
            "type": "array",
            "description": "Product ids, in the market below: the number at the end of a product link (18211860309; walmart.com.mx keeps its leading zeros; walmart.ca ids hold letters and digits). Each is read from its product page and checked against the price range, brands and minimum rating. Ids Walmart does not know, or no longer sells, are counted on one free status row (one per reason), which lists their input positions, never the ids.",
            "items": {
              "type": "string"
            }
          },
          "sellerIds": {
            "title": "Seller ids",
            "type": "array",
            "description": "walmart.com Marketplace seller ids, the number at the end of a seller link (101174524 in walmart.com/seller/101174524), or the seller links themselves. Each is read from its public seller page and delivered as one seller row (type seller): display and legal name, e-mail, phone, address, about text, rating and review count, logo, badge and the visibility marks Walmart serves. One Seller profile is charged per seller per run, while a seller page is read once per seller per run attempt (a seller row with Raw data on reads its own page, a seller row reads it again when an earlier read of that seller failed, and a restarted run reads it again): a seller already charged in the run through the Seller profile add-on of a product is delivered free, and a product of a seller charged here carries its profile free. Ids Walmart does not know are counted on one free status row, which lists their input positions, never the ids. Read on walmart.com only (leave Market out or set it to United States).",
            "items": {
              "type": "string"
            }
          },
          "market": {
            "title": "Market",
            "enum": [
              "us",
              "ca",
              "mx"
            ],
            "type": "string",
            "description": "The site category ids and product ids are read on. Left out: walmart.com. A pasted link carries its own site."
          },
          "language": {
            "title": "Language (walmart.ca)",
            "enum": [
              "en",
              "fr"
            ],
            "type": "string",
            "description": "The language walmart.ca pages are read in for category ids and product ids. Left out: English. A pasted walmart.ca link keeps its own."
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "best_match",
              "price_low",
              "price_high",
              "best_seller",
              "rating_high",
              "new"
            ],
            "type": "string",
            "description": "Walmart's own orders. Left out: a link's own order, else best match."
          },
          "minPrice": {
            "title": "Min price (dollars)",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Only products at or above this price, in whole dollars (Walmart's own price filter, checked again on every row)."
          },
          "maxPrice": {
            "title": "Max price (dollars)",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Only products at or below this price, in whole dollars (Walmart's own price filter, checked again on every row)."
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Brand names as Walmart lists them in the page's Brand filter (Samsung, TCL). A name Walmart does not list for the page is left out; when none is listed, the page is a free status row, never a wider search. On a brand page (a /c/brand/ page or a category link whose path carries one brand), the brands must be exactly that page's own brand, else the link is a free status row: use the category link to choose other brands.",
            "items": {
              "type": "string"
            }
          },
          "filters": {
            "title": "Other filters",
            "type": "array",
            "description": "Any other filter of the page by Walmart's own labels, one \"<filter name>: <value>\" per line (Retailer: Walmart, Special Offers: Rollback). A filter or value Walmart does not list for the page is a free status row (or left out beside listed values).",
            "items": {
              "type": "string"
            }
          },
          "storeId": {
            "title": "Store number",
            "type": "string",
            "description": "A Walmart store number (digits, as in walmart.com/store/3081): only products available in that store (Walmart's In-store filter)."
          },
          "minRating": {
            "title": "Min customer rating",
            "minimum": 1,
            "maximum": 5,
            "type": "number",
            "description": "Only products with at least this average rating (1 to 5, one decimal), checked on every row; a product without a rating is left out free."
          },
          "includeSponsored": {
            "title": "Include sponsored products",
            "type": "boolean",
            "description": "Sponsored placements are skipped free and counted by default. On: delivered (marked isSponsored) only on a plain category page (a /browse/ category or a category id) without filters, brands or store, when the product's own category path holds that category and every check passes. Brand, keyword, department and shelf pages always skip them free."
          },
          "maxItems": {
            "title": "Max products in all",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "The most products and seller rows the run delivers across every input (up to 100,000; it also bounds the run's memory). Left out: 100."
          },
          "maxItemsPerInput": {
            "title": "Max products per input",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "The most products each link, category or product id delivers (up to 50,000), its variants included. Left out: 100. Past Walmart's 10 pages (about 400 products) a walmart.com walk goes on in closed price bands in Walmart's best match order, a band stating more than 400 split in two, until every band is read or a cap is reached."
          },
          "startPage": {
            "title": "Start page",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Walmart's result page each listing walk starts at (1 to 10). Left out: a link's own page, else page 1."
          },
          "maxPagesPerInput": {
            "title": "Max pages per input",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "The most Walmart result pages one listing input reads, its price bands included. Left out: no page limit (the product limits and Walmart's depth decide)."
          },
          "includeDetails": {
            "title": "Product details",
            "type": "boolean",
            "description": "Reads each delivered product's page (a Product details event each): description and specifications as served, UPC, model, manufacturer part number, every image and video, variants with their own ids, fulfillment options with dates, return policy, warranty, add-on services with prices, every other seller's offer with its seller, price and rating (otherOffers), offers per condition, offer counts, review totals and the location Walmart priced at. Rows from product links and ids always carry it. On a listing page with filters (other than brands) or a store, a product whose page no longer agrees with its listing on the seller, the availability, the price range or a badge is left out free and counted (changedSinceListed)."
          },
          "expandVariants": {
            "title": "Expand variants",
            "type": "boolean",
            "description": "With a product page read, each variant the page names with its own id (another size or colour) becomes its own product row (a Product each), checked like every row and counted in Max products per input; a variant whose price the page does not carry is read from its own page. On a listing page with Other filters, a non-brand facet in the link, or a Store number, variants are not expanded (a variant cannot prove them; the coverage row says so). Price bounds and brands do not stop them."
          },
          "maxReviewsPerProduct": {
            "title": "Reviews per product",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "walmart.com reviews of each delivered product (a Review each), up to 10,000 per order and star filter. Left out or 0: no reviews."
          },
          "reviewsSort": {
            "title": "Review order",
            "enum": [
              "most_relevant",
              "newest",
              "oldest",
              "most_helpful",
              "highest_rating",
              "lowest_rating"
            ],
            "type": "string",
            "description": "Walmart's own review orders. Left out: most relevant. A review page must prove the order and filters sent (it shows the order sent, its count is the star's own review count, or at most that count with Verified purchases only, every row is a verified purchase when asked); one that does not is asked once more, then nothing of it is charged and the product's reviews are marked partly read (failed when none was delivered)."
          },
          "reviewsRatings": {
            "title": "Review stars",
            "type": "array",
            "description": "Only reviews with these star ratings (Walmart's own star filter, one pass per rating; a page whose count is not that star's review count bills nothing; with Verified purchases only, a page whose count is above that star's review count or that holds a review of another star bills nothing; every review row is checked again, and one with other stars is left out free).",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ]
            }
          },
          "reviewsVerifiedOnly": {
            "title": "Verified purchases only",
            "type": "boolean",
            "description": "Only reviews Walmart marks as verified purchases (Walmart's own filter, which it does not echo: a page holding any review without the mark, or stating more reviews than Walmart's written total, proves the filter was ignored, so nothing of it is charged and the product's reviews are marked partly read, or failed when none was delivered)."
          },
          "includeSellerProfile": {
            "title": "Seller profile",
            "type": "boolean",
            "description": "For marketplace sellers on walmart.com: the seller's public page, on every delivered product of that seller (charged once per seller per run, the Seller profile event on the first delivered product of that seller; the page is read once per seller per run attempt, except that a seller row with Raw data on reads its own page, a seller row reads it again when an earlier read of that seller failed, and a restarted run reads it again; a seller already charged in the run as a seller row from Seller ids or a seller link rides free): display and legal name, e-mail, phone, address, about text, rating and review count, and whether Walmart shows a seller badge. Products sold by Walmart itself carry none."
          },
          "includeFilterOptions": {
            "title": "Filter options",
            "type": "boolean",
            "description": "Adds one free row per listing input with every filter and value Walmart shows for the page (with counts) and its sub categories: the labels Brands and Other filters take."
          },
          "includeRawData": {
            "title": "Raw data",
            "type": "boolean",
            "description": "Adds Walmart's own product object to each row as served (larger rows)."
          },
          "outputFields": {
            "title": "Output fields",
            "type": "array",
            "description": "Only these product row fields (for example name, price, rating); the type, productId, market, url, source and the add-on status fields are always kept, and so are the Product details and the Seller profile a row is charged for. Left out: every field.",
            "items": {
              "type": "string"
            }
          },
          "includePersonalData": {
            "title": "Include personal data",
            "type": "boolean",
            "description": "Off by default. On: review rows also carry the reviewer's Walmart user id (authorId) where Walmart shows it (the nickname is always delivered as the review's author). You are responsible for a lawful use of personal data, GDPR included."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Left out: Apify datacenter addresses, a fresh one for every page, and a few residential addresses of the page's country when Walmart refuses datacenter ones (never for review pages). Choosing Apify residential reads the same way: Walmart answers Apify datacenter exits; residential exits are used only when datacenter exits are refused, for at most 10 percent of reads, at least 2 reads a run (in the country you pick, else the page's country), and the run says so in a note row and its summary. Your own proxy links (http://user:password@host:port; https:// proxy links are refused) are used as given for every page, in turn (a password of at least 8 characters with letters and digits); Apify does not bill proxy traffic for them, so their pages cost only the run's data transfer, USD 0.20 per GB both ways."
          },
          "maxConcurrency": {
            "title": "Parallel reads",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Pages read at once (a listing page counts two). Left out: 4."
          },
          "requestTimeoutSecs": {
            "title": "Request timeout (seconds)",
            "minimum": 10,
            "maximum": 90,
            "type": "integer",
            "description": "How long one page read may take. Left out: 30."
          },
          "maxRequestRetries": {
            "title": "Retries",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "Attempts of a page that failed (a server error or no answer), each on a fresh address. Left out: 3. Refused addresses are replaced on top of these."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}