> ## 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 Publix grocery search

> Searches publix.com (US) for `query` at one store and returns `products`: `productId`, `itemCode`, `title`, `brand`, `size`, `url`, `image`, `price`, `priceText`, `unit` (e.g. 'lb' for items sold by weight), `wasPrice`, `currency`, `onSale`, `promotion` (`type` such as BOGO, `message`, `conditions`, `validThrough`, `savings`), `hasCoupon`, `soldByWeight`, `aisle`, `category`, `categoryPath` and `storeId`, plus `store` (the store the prices are for), `totalResults`, `totalPages` and `nextPage`. Publix publishes a price online only while an item is on promotion, so `price` is null for the rest. A keyword Publix sends to a category returns that category, named in `redirectedTo`; one it sends to a page that lists no products (the weekly ad, cake ordering, store locations) answers with no products and `sentElsewhere` true.



## OpenAPI

````yaml /api-reference/openapi.json post /groceries/publix-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:
  /groceries/publix-search:
    post:
      tags:
        - Plugins
      summary: Scrape Publix grocery search
      description: >-
        Searches publix.com (US) for `query` at one store and returns
        `products`: `productId`, `itemCode`, `title`, `brand`, `size`, `url`,
        `image`, `price`, `priceText`, `unit` (e.g. 'lb' for items sold by
        weight), `wasPrice`, `currency`, `onSale`, `promotion` (`type` such as
        BOGO, `message`, `conditions`, `validThrough`, `savings`), `hasCoupon`,
        `soldByWeight`, `aisle`, `category`, `categoryPath` and `storeId`, plus
        `store` (the store the prices are for), `totalResults`, `totalPages` and
        `nextPage`. Publix publishes a price online only while an item is on
        promotion, so `price` is null for the rest. A keyword Publix sends to a
        category returns that category, named in `redirectedTo`; one it sends to
        a page that lists no products (the weekly ad, cake ordering, store
        locations) answers with no products and `sentElsewhere` true.
      operationId: publix_search_groceries_publix_search_post
      parameters:
        - name: query
          in: query
          required: true
          schema:
            type: string
            description: What to search for, e.g. 'milk', 'cheerios' or 'chicken breast'.
            title: Query
          description: What to search for, e.g. 'milk', 'cheerios' or 'chicken breast'.
        - name: store_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Publix store number whose prices and promotions to return, e.g.
              '1614'. Give this or `zip`; with neither, a store in Lakeland, FL
              is used. The store used is named in `store`.
            title: Store Id
          description: >-
            Publix store number whose prices and promotions to return, e.g.
            '1614'. Give this or `zip`; with neither, a store in Lakeland, FL is
            used. 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 Publix store is used, e.g. '33801'.
            title: Zip
          description: US ZIP code; the nearest Publix store is used, e.g. '33801'.
        - name: page
          in: query
          required: false
          schema:
            type: integer
            description: 1-based results page to start from (48 products per page).
            default: 1
            title: Page
          description: 1-based results page to start from (48 products per page).
        - name: max_results
          in: query
          required: false
          schema:
            type: integer
            description: >-
              Products to collect from `page` on, 1-480. Each page fetched is
              billed one unit.
            default: 48
            title: Max Results
          description: >-
            Products to collect from `page` on, 1-480. Each page fetched is
            billed one unit.
      responses:
        '200':
          description: >-
            JSON with a `products` array. A search with no matches answers 200
            with an empty `products` list.
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid parameters.
        '404':
          description: No Publix store with that number or near that ZIP code.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '502':
          description: >-
            Blocked by Publix on every attempt, an unusable answer, or no answer
            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.