> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrapeunblocker.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Scrape Menards product search

> Searches Menards (menards.com, US) for `query` and returns `products`: `itemId`, `sku` (the Menards SKU), `modelNumber` (when Menards lists it), `title`, `brand`, `url`, `image`, `price` (shelf price before the mail-in rebate), `regularPrice` (everyday low price), `onSale`, `rebate` and `rebateLabel` (Menards' rebate, usually 11%), `priceAfterRebate` (null when the maker's advertised-price policy moves it to checkout: `priceInCheckout` true, `minimumAdvertisedPrice`), `unitOfMeasure`, `currency`, `availability` (`pickup`, `delivery`, `stockAtStore`, `stockMessage`, `deliveryMessage`), `variationCount` and `categoryId`, plus `totalResults`, `facets` and `store` (the store the prices and stock are for). Set the store with `store_id` or `zip`; without one Menards shows its default online prices and no store stock. Sort with `sort`, filter with `min_price` / `max_price`, `in_stock_today`, `delivery_eligible` and `pickup_eligible`, start at `page` and collect up to `max_results` across pages (40 per page, each page billed as one request, see `pagesFetched`). A keyword Menards sends to a category returns that category's products (`redirectedTo`); a Menards SKU returns no products and the product link in `redirectedTo`. A keyword Menards sends to a page of category tiles (e.g. interior paint) or one with no matches answers 404.



## OpenAPI

````yaml /api-reference/openapi.json post /marketplace/menards-search
openapi: 3.1.0
info:
  title: ScrapeUnblocker API
  description: >-
    Public API for the ScrapeUnblocker proxy/anti-bot service. Authenticate
    every request with the `x-scrapeunblocker-key` header. Documented here:
    page-source extraction, Google SERP scraping, image fetch, and the dedicated
    plugin endpoints (search engines, marketplaces, reviews, travel, social and
    more). All other paths exist for internal operations and are intentionally
    hidden from this spec.
  version: 3.0.0
servers:
  - url: https://api.scrapeunblocker.com
    description: Production
security: []
paths:
  /marketplace/menards-search:
    post:
      tags:
        - Plugins
      summary: Scrape Menards product search
      description: >-
        Searches Menards (menards.com, US) for `query` and returns `products`:
        `itemId`, `sku` (the Menards SKU), `modelNumber` (when Menards lists
        it), `title`, `brand`, `url`, `image`, `price` (shelf price before the
        mail-in rebate), `regularPrice` (everyday low price), `onSale`, `rebate`
        and `rebateLabel` (Menards' rebate, usually 11%), `priceAfterRebate`
        (null when the maker's advertised-price policy moves it to checkout:
        `priceInCheckout` true, `minimumAdvertisedPrice`), `unitOfMeasure`,
        `currency`, `availability` (`pickup`, `delivery`, `stockAtStore`,
        `stockMessage`, `deliveryMessage`), `variationCount` and `categoryId`,
        plus `totalResults`, `facets` and `store` (the store the prices and
        stock are for). Set the store with `store_id` or `zip`; without one
        Menards shows its default online prices and no store stock. Sort with
        `sort`, filter with `min_price` / `max_price`, `in_stock_today`,
        `delivery_eligible` and `pickup_eligible`, start at `page` and collect
        up to `max_results` across pages (40 per page, each page billed as one
        request, see `pagesFetched`). A keyword Menards sends to a category
        returns that category's products (`redirectedTo`); a Menards SKU returns
        no products and the product link in `redirectedTo`. A keyword Menards
        sends to a page of category tiles (e.g. interior paint) or one with no
        matches answers 404.
      operationId: menards_search_marketplace_menards_search_post
      parameters:
        - name: query
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              What to search, e.g. 'cordless drill', 'garden hose' or '2x4
              lumber'.
            title: Query
          description: >-
            What to search, e.g. 'cordless drill', 'garden hose' or '2x4
            lumber'.
        - name: sort
          in: query
          required: false
          schema:
            type: string
            description: >-
              Order: relevance, price_low, price_high, title_asc, title_desc,
              brand_asc, brand_desc.
            default: relevance
            title: Sort
          description: >-
            Order: relevance, price_low, price_high, title_asc, title_desc,
            brand_asc, brand_desc.
        - name: page
          in: query
          required: false
          schema:
            type: integer
            description: 1-based results page to start from (1-100, 40 products per page).
            default: 1
            title: Page
          description: 1-based results page to start from (1-100, 40 products per page).
        - name: max_results
          in: query
          required: false
          schema:
            type: integer
            description: >-
              Products to collect across pages (1-120); each page fetched is
              billed as one request.
            default: 40
            title: Max Results
          description: >-
            Products to collect across pages (1-120); each page fetched is
            billed as one request.
        - name: min_price
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: 'null'
            description: Lowest price to include (USD).
            title: Min Price
          description: Lowest price to include (USD).
        - name: max_price
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: 'null'
            description: Highest price to include (USD).
            title: Max Price
          description: Highest price to include (USD).
        - name: store_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Menards store number whose prices and stock to return, e.g.
              '3181'. Give this or `zip`; with neither, Menards' default
              (online) prices are returned and `stockAtStore` is 0. The store
              used is named in `store`.
            title: Store Id
          description: >-
            Menards store number whose prices and stock to return, e.g. '3181'.
            Give this or `zip`; with neither, Menards' default (online) prices
            are returned and `stockAtStore` is 0. The store used is named in
            `store`.
        - name: zip
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: US ZIP code; the nearest Menards store is used, e.g. '55401'.
            title: Zip
          description: US ZIP code; the nearest Menards store is used, e.g. '55401'.
        - name: in_stock_today
          in: query
          required: false
          schema:
            type: boolean
            description: >-
              Only items in stock today at the store (needs `store_id` or
              `zip`).
            default: false
            title: In Stock Today
          description: Only items in stock today at the store (needs `store_id` or `zip`).
        - name: delivery_eligible
          in: query
          required: false
          schema:
            type: boolean
            description: Only items eligible for delivery.
            default: false
            title: Delivery Eligible
          description: Only items eligible for delivery.
        - name: pickup_eligible
          in: query
          required: false
          schema:
            type: boolean
            description: Only items eligible for in-store pickup.
            default: false
            title: Pickup Eligible
          description: Only items eligible for in-store pickup.
      responses:
        '200':
          description: JSON with a `products` array plus paging totals and the store.
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid parameters.
        '404':
          description: >-
            No such Menards store (`store_id`) or none near `zip`, no products
            for the keyword, or a keyword Menards sends to a page of category
            tiles.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '502':
          description: >-
            Blocked by Menards on every attempt, no answer, or the call did not
            finish in time.
      security:
        - ScrapeUnblockerKey: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ScrapeUnblockerKey:
      type: apiKey
      in: header
      name: x-scrapeunblocker-key
      description: Your ScrapeUnblocker API key. Apply on every request.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.