# Publix Product Search Scraper (`stealth_mode/publix-product-search-scraper`) Actor

Scrape product listings from Publix.com delivery platform with precision. Collect prices, availability, ratings, nutritional info, and 30+ fields — perfect for price monitoring, market research, and e-commerce analytics.

- **URL**: https://apify.com/stealth\_mode/publix-product-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Publix Product Search Scraper: Extract Grocery Data Efficiently

***

### Understanding Publix and Online Grocery Data

Publix is one of the largest privately-held grocery chains in the United States, serving millions through its physical stores and digital delivery platform at delivery.publix.com. The platform hosts hundreds of thousands of products across categories like produce, meat, dairy, pantry staples, and specialty items. Extracting this product data manually is inefficient — the **Publix Product Search Scraper** automates collection, enabling price analysis, competitive intelligence, and inventory tracking at scale.

***

### Scraper Overview

The **Publix Product Search Scraper** extracts detailed product information from Publix's delivery search results and category pages. It combines two powerful modes:

- **URL-based scraping** — Target specific search pages or category collections directly
- **Keyword-based scraping** — Search for products by keyword with optional price sorting

This tool is ideal for:

- **Price monitoring services** tracking grocery costs across regions
- **E-commerce researchers** studying Publix's product catalog and pricing
- **Retailers** benchmarking competitor offerings and promotions
- **Data analysts** building grocery market datasets

Features include flexible item limits, automatic retry logic, and graceful failure handling to ensure robust collection even with network interruptions.

***

### Input Configuration

The scraper accepts flexible JSON configuration supporting two modes:

#### Mode 1: URL-Based Scraping

```json
{
  "urls": [
    "https://delivery.publix.com/store/publix/s?k=meat",
    "https://delivery.publix.com/store/publix/collections/rc-bogo-dry-grocery"
  ],
  "max_items_per_url": 200,
  "ignore_url_failures": true
}
```

#### Mode 2: Keyword-Based Scraping

```json
{
  "keyword": "meat",
  "sort_by": "price_desc",
  "max_items_per_url": 200,
  "max_retries_per_url": 2,
  "ignore_url_failures": true
}
```

#### Configuration Parameters

| Parameter | Type | Description |
|---|---|---|
| `urls` | Array | Direct links to search results or category pages (e.g., BOGO collections) |
| `keyword` | String | Product search term (e.g., "meat", "organic milk"). Leave empty if using URLs |
| `sort_by` | String | Sorting option: `"price_asc"` (low to high), `"price_desc"` (high to low), or `""` (best match) |
| `max_items_per_url` | Integer | Maximum products to scrape per page (recommended: 50–200) |
| `max_retries_per_url` | Integer | Retry attempts for failed URLs (default: 2) |
| `ignore_url_failures` | Boolean | If `true`, continue scraping if some URLs fail |

> **Tip:** Use URL mode for targeted scraping (e.g., specific categories or promotions). Use keyword mode for broader product discovery.

***

### Output Fields Explained

**Sample output**

```json
{
  "id": "items_142982-16410649",
  "item_load_id": null,
  "name": "Stouffer's Grandma’S Chicken And Vegetable Rice Bake Family Size Frozen Family Dinners",
  "size": "36 oz",
  "product_id": "16410649",
  "legacy_id": "147870916158",
  "legacy_v3_id": "item_147870916158",
  "configurable_product_id": null,
  "is_catering": false,
  "brand_name": "stouffer's",
  "brand_id": "45381",
  "evergreen_url": "16410649-stouffer-s-family-size-grandma-s-chicken-vegetable-rice-bake-frozen-meal-36-oz",
  "in_store_item_location": null,
  "dietary": {
    "ml_dietary_attributes": null,
    "ml_shopping_attributes": [],
    "view_section": {
      "attributes_string": null,
      "attribute_sections": [],
      "attribute_badge_image": null,
      "__typename": "ItemsResponseBackedDietarySection"
    },
    "__typename": "ItemsDietary"
  },
  "item_ebt": null,
  "item_fresh_funds": null,
  "item_medicare": null,
  "product_rating": null,
  "product_canonical_url": {
    "id": "17234cb1",
    "canonical_url": null,
    "__typename": "LandingProductCanonicalUrl"
  },
  "quantity_attributes_each": {
    "increment": 1,
    "initial": 1,
    "max": 500,
    "min": 1,
    "quantity_type": "each",
    "select_options": [
      1,
      2,
      3,
      4,
      5,
      6,
      7,
      8,
      9
    ],
    "default_select_option": 1,
    "par_weight": null,
    "view_section": {
      "maxed_out_string": "Max 500 per order",
      "min_reached_string": null,
      "unit_aria_string": "item",
      "unit_plural_aria_string": "items",
      "unit_plural_string": "ct",
      "unit_string": "ct",
      "icon_unit_type_visibility_variant": "hide",
      "variable_weight_disclaimer_string": null,
      "variable_weight_disclaimer_long_string": null,
      "total_weight_estimate_template_string": null,
      "total_weight_estimate_template_plural_string": null,
      "par_weight_display_string": null,
      "quantity_unit_visibility_variant": "show",
      "stepper_unit_type_visibility_variant": "hide",
      "sold_by_unit_string": null,
      "__typename": "ItemsResponseBackedQuantityAttributesSection"
    },
    "__typename": "ItemsQuantityAttributes"
  },
  "quantity_attributes_weight": null,
  "quantity_attributes": {
    "increment": 1,
    "initial": 1,
    "max": 500,
    "min": 1,
    "quantity_type": "each",
    "select_options": [
      1,
      2,
      3,
      4,
      5,
      6,
      7,
      8,
      9
    ],
    "default_select_option": 1,
    "par_weight": null,
    "view_section": {
      "maxed_out_string": "Max 500 per order",
      "min_reached_string": null,
      "unit_aria_string": "item",
      "unit_plural_aria_string": "items",
      "unit_plural_string": "ct",
      "unit_string": "ct",
      "icon_unit_type_visibility_variant": "hide",
      "variable_weight_disclaimer_string": null,
      "variable_weight_disclaimer_long_string": null,
      "total_weight_estimate_template_string": null,
      "total_weight_estimate_template_plural_string": null,
      "par_weight_display_string": null,
      "quantity_unit_visibility_variant": "show",
      "stepper_unit_type_visibility_variant": "hide",
      "sold_by_unit_string": null,
      "__typename": "ItemsResponseBackedQuantityAttributesSection"
    },
    "__typename": "ItemsQuantityAttributes"
  },
  "availability": {
    "available": true,
    "stock_level": "highlyInStock",
    "is_upcoming_product": false,
    "is_item_availability_lifecycle_enabled": false,
    "blackout_times": null,
    "view_section": {
      "stock_level_label_string": "Many in stock",
      "stock_level_icon_icon": "inventoryBetter",
      "replacements_stock_level_label_string": null,
      "replacements_stock_level_icon_icon": null,
      "out_of_stock_cta_string": null,
      "upcoming_product_available_from_string": null,
      "similar_items_action_variant": "none",
      "warning_icon_image": {
        "id": "59a474c0",
        "url": "https://www.instacart.com/assets/dependability/item_availability/highly_in_stock-18910a57dac5f8e2db073c800e1742558d519cc5d5b20f375efa8a495462471c.png",
        "__typename": "Image"
      },
      "__typename": "AvailabilityResponseBackedAvailabilitySection"
    },
    "__typename": "ItemsAvailability"
  },
  "variant_group": null,
  "variant_group_id": null,
  "variant_dimension_values": [],
  "view_section": {
    "item_image": {
      "alt_text": null,
      "template_url": "https://www.instacart.com/image-server/{width=}x{height=}/filters:fill(FFFFFF,true):format(jpg)/d2lnr5mha7bycj.cloudfront.net/product-image/file/large_84fc3d60-784b-46f6-a9b2-eea2c4761763.jpg",
      "url": "https://d2lnr5mha7bycj.cloudfront.net/product-image/file/large_84fc3d60-784b-46f6-a9b2-eea2c4761763.jpg",
      "__typename": "Image"
    },
    "tracking_properties": {
      "availability_score": 0.9260391,
      "availability_source": "product_availabilities.availability_score",
      "available_ind": true,
      "blackout": false,
      "element_attributes": {
        "attributes": [],
        "low_stock_label": false
      },
      "element_details": {
        "element_id": "items_142982-16410649",
        "element_type": "item",
        "element_value": "Stouffer's Grandma’S Chicken And Vegetable Rice Bake Family Size Frozen Family Dinners",
        "item_tags": [],
        "product_id": "16410649",
        "retailer_id": "57",
        "retailer_location_id": "142982"
      },
      "external_sku_id": null,
      "item_id": "147870916158",
      "item_name": "Stouffer's Grandma’S Chicken And Vegetable Rice Bake Family Size Frozen Family Dinners",
      "itemsview___layouts___itemsresponsebacked___item": "7981352a-0dcb-4d2f-9f98-8e16ce128e6a",
      "low_stock_label": false,
      "low_stock_variant": "none",
      "on_sale_ind": {
        "buy_one_get_one": false,
        "cpg_coupon": true,
        "on_sale": false,
        "retailer": false
      },
      "product_category_name": "Other Frozen Entrees",
      "product_id": "16410649",
      "restricted_for_targeting_and_sharing": false,
      "stock_level": "highly_in_stock"
    },
    "item_card_rating_variant": "hidden",
    "quantity_attributes_variant": "eachAndWeight",
    "hide_actions_on_cart_item_variant": "true",
    "item_card_hide_quick_add_price_variant": "show",
    "item_card_hide_size_variant": "show",
    "low_stock_variant": "none",
    "bought_x_times_string": null,
    "request_add_string": null,
    "serving_size_string": null,
    "item_string": "Item",
    "retailer_reference_code_string": null,
    "retailer_lookup_code_string": null,
    "variant_dimensions_string": null,
    "tasting_notes_string": null,
    "reward_program_label_string": null,
    "name_string_formatted": {
      "id": "21ef9a7e",
      "sections": [
        {
          "id": "fa99f283",
          "name": "bodymedium2",
          "content": "Stouffer's Grandma’S Chicken And Vegetable Rice Bake Family Size Frozen Family Dinners",
          "__typename": "ViewFormattedStringSection"
        }
      ],
      "__typename": "ViewFormattedString"
    },
    "tax_string_formatted": null,
    "fsa_hsa_eligible_string": null,
    "item_transparent_image": null,
    "__typename": "ItemsResponseBackedItemSection"
  },
  "tags": [],
  "combo_promotions": [],
  "nutritional_attributes": [
    {
      "view_section": {
        "long_label_string": "Sodium",
        "short_label_string": "Sod",
        "unit_string": "mg",
        "value_string": "750",
        "__typename": "ItemsResponseBackedNutritionAttributeSection"
      },
      "__typename": "ItemsNutritionAttribute"
    },
    {
      "view_section": {
        "long_label_string": "Fat",
        "short_label_string": "Fat",
        "unit_string": "g",
        "value_string": "14",
        "__typename": "ItemsResponseBackedNutritionAttributeSection"
      },
      "__typename": "ItemsNutritionAttribute"
    },
    {
      "view_section": {
        "long_label_string": "Sugar",
        "short_label_string": "Sug",
        "unit_string": "g",
        "value_string": "5",
        "__typename": "ItemsResponseBackedNutritionAttributeSection"
      },
      "__typename": "ItemsNutritionAttribute"
    },
    {
      "view_section": {
        "long_label_string": "Protein",
        "short_label_string": "Pro",
        "unit_string": "g",
        "value_string": "18",
        "__typename": "ItemsResponseBackedNutritionAttributeSection"
      },
      "__typename": "ItemsNutritionAttribute"
    }
  ],
  "price": {
    "id": "items_142982-16410649",
    "item_id": "items_142982-16410649",
    "debug_properties": {},
    "view_section": {
      "badge": {
        "generic_sale_label_string": "Sale",
        "action_label_string": "See eligible items",
        "badge_variant": "multiUnitPromotion",
        "offer_label_string": "Spend $30, save $6",
        "apply_coupon_string": "Apply coupon",
        "coupon_applied_string": "Coupon applied",
        "coupon_clipped_variant": "false",
        "multi_unit_clippable_promotion_variant": "nonClippable",
        "eligible_items_ux_variant": "button",
        "offer_sublabel_string": null,
        "offer_reference_string": "6be7e4d4-2b44-4b46-a842-89a92d622ec9/21036786354000876",
        "multiple_promotions_label_string": null,
        "item_multiple_promotions_variant": "pillCarouselWithProgressBar",
        "cpg_promotion_variant": null,
        "ads_solutions_savings_rise_migration_variant": "control",
        "viewable_tracking_event_name": "savings.client.viewport_viewable_item",
        "promotion_clip_client_tracking_event_name": "savings.client.clip_coupon",
        "promotion_click_cta_client_tracking_event_name": "savings.client.click_cta",
        "tracking_properties": {
          "badge_type": "multi_unit_promotion",
          "discount_policy_id": "21036786354000876",
          "price": "$12.99",
          "promotion_id": "21036786354000876",
          "promotion_load_id": "2c46b27d-eb52-4e32-ae45-30b7ce111118",
          "promotion_type": "spend_promotion",
          "save_amount": "Spend $30, save $6"
        },
        "__typename": "ItemsResponseBackedItemPriceBadgeSection"
      },
      "item_promotions": [],
      "item_card": {
        "id": "items_response_backed:fa1a1cba:item_price:0fac455e:item_card",
        "full_price_string": null,
        "price_aria_label_string": "$12.99",
        "price_per_unit_string": null,
        "price_string": "$12.99",
        "pricing_unit_secondary_string": null,
        "pricing_unit_string": "36 oz",
        "tracking_properties": {
          "item_card_impression_id": "284b0c60-fb69-4ef2-89be-03abf71bf195"
        },
        "discount_header_string": null,
        "discount_sub_header_string": "off!",
        "price_suffix_string": "",
        "plain_full_price_string": null,
        "price_screen_reader_string": "Current price: $12.99",
        "full_price_screen_reader_string": null,
        "price_background_variant": "hide",
        "loyalty_program_variant": "hide",
        "loyalty_program_label_string": null,
        "loyalty_program_small_label_string": null,
        "pricing_unit_convergence_variant": "variant",
        "badge_visibility_variant": "hide",
        "price_string_formatted": {
          "id": "a42ad76a",
          "sections": [
            {
              "id": "c2ff1302",
              "name": "small_currency_symbol",
              "content": "$",
              "__typename": "ViewFormattedStringSection"
            },
            {
              "id": "476a8294",
              "name": "dollar",
              "content": "12",
              "__typename": "ViewFormattedStringSection"
            },
            {
              "id": "a09c7024",
              "name": "cents",
              "content": "99",
              "__typename": "ViewFormattedStringSection"
            }
          ],
          "__typename": "ViewFormattedString"
        },
        "offer_label_string_formatted": null,
        "loyalty_price_string_formatted": null,
        "non_loyalty_price_string_formatted": null,
        "loyalty_price_string_position_variant": "control",
        "secondary_top_string_formatted": null,
        "secondary_bottom_string_formatted": null,
        "smart_discount_formatted_attributes_string": null,
        "tax_disclaimer_formatted_attributes_string": null,
        "__typename": "ItemsResponseBackedItemPriceItemCardSection"
      },
      "secondary_promotion": null,
      "item_details": {
        "deal_applied_label_string": null,
        "deal_applied_so_far_message_string": null,
        "full_price_string": null,
        "mix_and_match_items_title_string": "Available Mix & Match items",
        "mix_and_match_items_variant": "hide",
        "price_aria_label_string": "$12.99",
        "price_estimate_variant": "hide",
        "price_per_unit_string": "$0.36/oz",
        "price_string": "$12.99",
        "pricing_unit_secondary_string": null,
        "pricing_unit_string": "36 oz",
        "sale_disclaimer_string": null,
        "add_loyalty_card_string": null,
        "loyalty_program_variant": "hide",
        "secondary_top_string_formatted": null,
        "secondary_bottom_string_formatted": null,
        "tax_disclaimer_formatted_attributes_string": null,
        "__typename": "ItemsResponseBackedItemPriceItemDetailsSection"
      },
      "size_selector": null,
      "full_price_string": null,
      "price_string": "$12.99",
      "price_value_string": "12.99",
      "currency_symbol_string": "$",
      "tracking_properties": {
        "badge_type": "multi_unit_promotion",
        "item_tasks": [],
        "on_sale_ind": {
          "loyalty": false
        },
        "price": "$12.99",
        "price_data_source": "legacy",
        "product_id": "16410649",
        "promotion_event_name": "savings.client.viewport_viewable_item",
        "promotion_id": "21036786354000876",
        "promotion_type": "spend_promotion",
        "save_amount": "Spend $30, save $6"
      },
      "__typename": "ItemsResponseBackedItemPriceSection"
    },
    "par_weight_total_estimate": {
      "id": "46ba7bc4",
      "view_section": {
        "par_weight_string": null,
        "__typename": "ItemsResponseBackedParWeightTotalEstimateSection"
      },
      "__typename": "ItemsParWeightTotalEstimate"
    },
    "great_price": null,
    "__typename": "ItemsItemPrice"
  },
  "from_url": "https://delivery.publix.com/store/publix/s?k=meat&filters=%5B%22order_by%22%2C%22priceAsc%22%2C%22Price%3A+lowest+first%22%2C%22order_by%22%5D"
}
```

The scraper returns 30+ fields per product, structured for analytics and integration:

#### Product Identity

| Field | Purpose |
|---|---|
| `ID` | Unique Publix product identifier |
| `Product ID` | Primary product tracking number |
| `Item Load ID` | Inventory system reference |
| `Legacy ID` / `Legacy V3 ID` | Historical product identifiers for compatibility |
| `Configurable Product ID` | ID for products with variants (sizes, flavors) |
| `Name` | Display product name |

#### Availability & Location

| Field | Purpose |
|---|---|
| `Availability` | Stock status (in stock, out of stock, limited) |
| `In Store Item Location` | Aisle or section code (e.g., "Meat Department") |
| `View Section` | Product category context |

#### Brand & Classification

| Field | Purpose |
|---|---|
| `Brand Name` | Manufacturer or store brand |
| `Brand ID` | Brand identifier |
| `Is Catering` | Indicates catering-size items |
| `Dietary` | Dietary attributes (organic, vegan, gluten-free, etc.) |
| `Tags` | Additional product tags and attributes |

#### Pricing & Promotions

| Field | Purpose |
|---|---|
| `Price` | Current selling price |
| `Combo Promotions` | Multi-item or bundle deals (e.g., "Buy 2, Save $3") |

#### Size & Quantity

| Field | Purpose |
|---|---|
| `Size` | Package size (e.g., "1 lb", "2-pack") |
| `Quantity Attributes` | Detailed quantity specs |
| `Quantity Attributes Each` | Per-unit weight or count |
| `Quantity Attributes Weight` | Package weight in pounds/ounces |

#### Quality & Nutrition

| Field | Purpose |
|---|---|
| `Product Rating` | Customer star rating (1–5) |
| `Nutritional Attributes` | Calories, protein, allergens, etc. |

#### Payment & Eligibility

| Field | Purpose |
|---|---|
| `Item EBT` | EBT/SNAP eligible flag |
| `Item Fresh Funds` | Florida Fresh Funds eligible flag |
| `Item Medicare` | Medicare Flex Card eligible flag |

#### URLs & SEO

| Field | Purpose |
|---|---|
| `Product Canonical URL` | Direct product page link |
| `Evergreen URL` | Long-term stable URL |

#### Variants

| Field | Purpose |
|---|---|
| `Variant Group` | Related product variants grouping |
| `Variant Group ID` | Variant group identifier |
| `Variant Dimension Values` | Available options (size, color, flavor) |

***

### How to Use

**Step 1: Prepare your input**

- Choose URL mode for specific pages or keyword mode for broad searches
- For keyword mode, decide on sorting: price ascending/descending or best match
- Set `max_items_per_url` based on your data needs (higher values = longer runtime)

**Step 2: Configure for reliability**

- Enable `ignore_url_failures: true` for bulk runs to prevent interruptions
- Set `max_retries_per_url: 2` or higher for unstable connections

**Step 3: Run the scraper**

- Submit the configuration and monitor the run log
- The scraper will auto-paginate through search results up to your item limit

**Step 4: Export & analyze**

- Download results as JSON, CSV, or Excel
- Filter by price, availability, or dietary attributes for insights

**Best practices:**

- Start with a small test (e.g., 20 items) to verify data structure
- Use URL mode for large-scale collection (more stable than keyword searches)
- Combine sort options to track price trends over time

***

### Business Applications & Value

- **Price intelligence** — Monitor competitor grocery pricing and promotional timing
- **Product analytics** — Analyze which items sell at different price points
- **BOGO tracking** — Capture limited-time promotions and bundle deals
- **Dietary/nutritional research** — Extract allergen and nutrition data at scale
- **Market research** — Benchmark product availability across retail channels

The scraper transforms static product pages into actionable data, enabling faster decision-making for pricing, purchasing, and marketing teams.

***

### Conclusion

The **Publix Product Search Scraper** delivers comprehensive, structured grocery data from one of America's largest supermarket chains. With 30+ output fields, flexible input modes, and robust error handling, it's the ideal solution for price monitoring, market research, and competitive analysis. Start scraping today and unlock insights into the grocery market.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the product search list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `keyword` (type: `string`):

Enter the keyword to search for items

## `sort_by` (type: `string`):

Sort items by options

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://delivery.publix.com/store/publix/collections/rc-bogo-dry-grocery"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://delivery.publix.com/store/publix/collections/rc-bogo-dry-grocery"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/publix-product-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://delivery.publix.com/store/publix/collections/rc-bogo-dry-grocery"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/publix-product-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://delivery.publix.com/store/publix/collections/rc-bogo-dry-grocery"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/publix-product-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,stealth_mode/publix-product-search-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/FgUoUZ90PbVaLgfns/builds/Lq69t9ARHEwH9Jfbc/openapi.json
