# Wholefoodsmarket Product Search Scraper (`stealth_mode/wholefoodsmarket-product-search-scraper`) Actor

Scrape Whole Foods Market search results and extract 25+ product fields including brand, nutrition facts, pricing, availability, and dietary badges. Perfect for price monitoring, market research, and product aggregation in the organic grocery segment.

- **URL**: https://apify.com/stealth\_mode/wholefoodsmarket-product-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Stats:** 2 total users, 1 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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Whole Foods Market Product Search Scraper: Extract Organic Grocery Data at Scale

***

### What Is Whole Foods Market?

Whole Foods Market is one of North America's largest premium organic and natural grocery retailers, with thousands of locations and an extensive e-commerce platform. The company's website lists hundreds of thousands of products across categories like produce, meat, dairy, prepared foods, and specialty items. Extracting product data manually is labor-intensive — the **Whole Foods Market Product Search Scraper** automates collection of detailed product information from search results, enabling competitive analysis, pricing research, and market intelligence.

***

### Overview

The **Whole Foods Product Search Scraper** extracts comprehensive product data from Whole Foods Market search result pages. It supports two scraping modes:

1. **URL-based scraping** — Paste specific search result URLs directly
2. **Keyword-based scraping** — Define search criteria (keyword, sort order, price range) and auto-generate URLs

Key features include:

- Up to 200 items per search result
- Configurable sorting (relevance, price, newest, best sellers)
- Price range filtering (under $10 to $50+)
- Resilient error handling via `ignore_url_failures`
- Rich product metadata across 25+ fields

Ideal for **price monitoring**, **competitive research**, **product aggregators**, and **market analysis** in the organic/natural foods segment.

***

### Input Format

The scraper accepts configuration in two modes:

#### Mode 1: Scrape by URLs

```json
{
  "urls": [
    "https://www.wholefoodsmarket.com/grocery/search?k=meat&s=price-desc-rank&rh=p_72%3A1248897011%2Cp_n_deal_type%3A23566065011%2Cp_36%3A3000-5000"
  ],
  "max_items_per_url": 200,
  "ignore_url_failures": true
}
```

| Field | Description |
|---|---|
| `urls` | Direct links to Whole Foods search result pages. Paste your custom-filtered URLs here — they preserve all price, category, and sorting parameters. |
| `max_items_per_url` | Maximum products to extract per URL (e.g., `200`). |
| `ignore_url_failures` | If `true`, skips failed URLs instead of stopping the entire run. |

#### Mode 2: Scrape by Search Filters

```json
{
  "keyword": "meat",
  "sort_by": "price-desc-rank",
  "price_range": "3000-5000",
  "max_items_per_url": 200
}
```

| Field | Options | Description |
|---|---|---|
| `keyword` | Any product name | Search term (e.g., "meat", "organic cheese", "gluten-free pasta") |
| `sort_by` | `relevanceblender` | `price-asc-rank` | `price-desc-rank` | `date-desc-rank` | `get-it-fast-rank` | `most-purchased-rank` | `low-prices-rank` | `exact-aware-popularity-rank` | **Relevance** (default), **Price: Low to High**, **Price: High to Low**, **Newest Arrivals**, **Get it fast**, **Most purchased**, **Low prices**, **Best Sellers** |
| `price_range` | `-1000` | `1000-2000` | `2000-3000` | `3000-5000` | `5000-` | **Under $10**, **$10–$20**, **$20–$30**, **$30–$50**, **$50 & Above** |
| `max_items_per_url` | Integer | Maximum items per search result page |

> **Tip:** Use Mode 1 (URLs) when you have pre-built filter URLs; use Mode 2 (filters) for simple keyword searches. When using Mode 2, leave the URLs array empty.

***

### Output Format

**Sample output**

```json
{
  "brand_name": "ORGANIC RANCHER",
  "name": "Organic Rancher, Organic Ground Beef 93% Lean/7% Fat, 100% Grass Fed & Grass Finished, USDA Organic, Pasture Raised Free Range, 16 oz",
  "asin": "B09439SKW3",
  "program_type": "GROCERY",
  "description": "From pasture to plate, Organic Rancher ensures that every product upholds the highest standards of quality, flavor, and nutrition your body deserves.",
  "about": [
    "USDA Certified Organic Beef: Organic Rancher ground beef comes from cattle raised on certified organic pastures with lifetime traceability. Free from antibiotics, added hormones, synthetic chemicals, and GMOs",
    "100% Grass Fed & Grass Finished: Our animals are raised entirely on open, grassy pastures and are never confined to feedlots. G.A.P. Step 4 Animal Welfare Certified with annual independent audits. Vegetarian fed, no animal by-products",
    "93/7 Lean Ground Beef: This lean grind is perfect for tacos, meatballs, chili, meat sauce, stuffed peppers, and any recipe where you want great beef flavor with less fat. One pound of premium organic ground beef per package",
    "Available Exclusively at Whole Foods Market: Organic Rancher follows responsible farming practices that are kind to animals and kind to the earth"
  ],
  "snap_ebt": "SNAP EBT eligible",
  "product_images": [
    "https://m.media-amazon.com/images/I/51RI18TBBrL.jpg",
    "https://m.media-amazon.com/images/I/51KZgdDtTmL.jpg",
    "https://m.media-amazon.com/images/I/51RI18TBBrL.jpg"
  ],
  "availability": "IN_STOCK",
  "ingredients": null,
  "pdp_type": "STANDARD",
  "reheating_tag": null,
  "reheating_instructions": null,
  "variations_list": null,
  "bundle_details": null,
  "offer_details": {
    "price": {
      "currency_code": "USD",
      "price_amount": 11.49,
      "basis_price_amount": null,
      "savings": {
        "currency_code": null,
        "savings_amount": null,
        "percent_savings": null
      },
      "prime_benefit": {
        "is_applied": null,
        "text": null,
        "currency_code": null,
        "price_amount": null,
        "savings_amount": null
      }
    },
    "unit_price": {
      "base_unit": "lb",
      "currency_code": "USD",
      "price_amount": 11.49
    },
    "offer_listing_id": "byC7NpK146hTHLSMjSpz%2FEyUL%2F%2FLdktjovGVxOdSYYcl4tvsyW2%2F%2FcqIxHOyFq4VC7%2Ff64RMj99OhHWF8t6GjZTVq0DB9T9SqugqEpTtE9PKwXzVjWVfz%2BOX7m1zb9wviHPaDGJzkk667elV98IWFxlywSouTR5ddiRmEFhPC%2FQmoG1J4D5foNd1MnCsWPMZ",
    "max_order_quantity": 34,
    "is_max_quantity_restricted": true
  },
  "nutrition_facts": {
    "calories_amount": "170",
    "servings_per_container": "4 servings per container",
    "serving_size": "4 OZ (112g)",
    "macronutrients": [
      {
        "name": "Total Fat",
        "amount": "8g",
        "percent": "12%",
        "level": "TOP"
      },
      {
        "name": "Saturated Fat",
        "amount": "3.5g",
        "percent": "18%",
        "level": "SUB"
      },
      {
        "name": "Trans Fat",
        "amount": "0g",
        "percent": "",
        "level": "SUB"
      },
      {
        "name": "Sodium",
        "amount": "60mg",
        "percent": "",
        "level": "TOP"
      },
      {
        "name": "Total Carbohydrate",
        "amount": "0g",
        "percent": "0%",
        "level": "TOP"
      },
      {
        "name": "Dietary Fiber",
        "amount": "0g",
        "percent": "0%",
        "level": "SUB"
      },
      {
        "name": "Sugars",
        "amount": "0g",
        "percent": "",
        "level": "SUB"
      },
      {
        "name": "Protein",
        "amount": "25g",
        "percent": "",
        "level": "TOP"
      }
    ],
    "vitamins_and_minerals": []
  },
  "variable_unit_of_measure": {
    "pricing_uom": {
      "dimension": "COUNT",
      "unit": "UNITS"
    },
    "selling_uom": {
      "dimension": "COUNT",
      "unit": "UNITS"
    },
    "selector_item_list": [
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 11.49
        },
        "selector_selling_quantity_string": "1",
        "selector_selling_quantity_value": 1
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 22.98
        },
        "selector_selling_quantity_string": "2",
        "selector_selling_quantity_value": 2
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 34.47
        },
        "selector_selling_quantity_string": "3",
        "selector_selling_quantity_value": 3
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 45.96
        },
        "selector_selling_quantity_string": "4",
        "selector_selling_quantity_value": 4
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 57.45
        },
        "selector_selling_quantity_string": "5",
        "selector_selling_quantity_value": 5
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 68.94
        },
        "selector_selling_quantity_string": "6",
        "selector_selling_quantity_value": 6
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 80.43
        },
        "selector_selling_quantity_string": "7",
        "selector_selling_quantity_value": 7
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 91.92
        },
        "selector_selling_quantity_string": "8",
        "selector_selling_quantity_value": 8
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 103.41
        },
        "selector_selling_quantity_string": "9",
        "selector_selling_quantity_value": 9
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 114.9
        },
        "selector_selling_quantity_string": "10",
        "selector_selling_quantity_value": 10
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 126.39
        },
        "selector_selling_quantity_string": "11",
        "selector_selling_quantity_value": 11
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 137.88
        },
        "selector_selling_quantity_string": "12",
        "selector_selling_quantity_value": 12
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 149.37
        },
        "selector_selling_quantity_string": "13",
        "selector_selling_quantity_value": 13
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 160.86
        },
        "selector_selling_quantity_string": "14",
        "selector_selling_quantity_value": 14
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 172.35
        },
        "selector_selling_quantity_string": "15",
        "selector_selling_quantity_value": 15
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 183.84
        },
        "selector_selling_quantity_string": "16",
        "selector_selling_quantity_value": 16
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 195.33
        },
        "selector_selling_quantity_string": "17",
        "selector_selling_quantity_value": 17
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 206.82
        },
        "selector_selling_quantity_string": "18",
        "selector_selling_quantity_value": 18
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 218.31
        },
        "selector_selling_quantity_string": "19",
        "selector_selling_quantity_value": 19
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 229.8
        },
        "selector_selling_quantity_string": "20",
        "selector_selling_quantity_value": 20
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 241.29
        },
        "selector_selling_quantity_string": "21",
        "selector_selling_quantity_value": 21
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 252.78
        },
        "selector_selling_quantity_string": "22",
        "selector_selling_quantity_value": 22
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 264.27
        },
        "selector_selling_quantity_string": "23",
        "selector_selling_quantity_value": 23
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 275.76
        },
        "selector_selling_quantity_string": "24",
        "selector_selling_quantity_value": 24
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 287.25
        },
        "selector_selling_quantity_string": "25",
        "selector_selling_quantity_value": 25
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 298.74
        },
        "selector_selling_quantity_string": "26",
        "selector_selling_quantity_value": 26
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 310.23
        },
        "selector_selling_quantity_string": "27",
        "selector_selling_quantity_value": 27
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 321.72
        },
        "selector_selling_quantity_string": "28",
        "selector_selling_quantity_value": 28
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 333.21
        },
        "selector_selling_quantity_string": "29",
        "selector_selling_quantity_value": 29
      },
      {
        "selector_price": {
          "base_unit": null,
          "currency_code": "USD",
          "price_amount": 344.7
        },
        "selector_selling_quantity_string": "30",
        "selector_selling_quantity_value": 30
      }
    ]
  },
  "cooking_tag": null,
  "cta_tag": "UNRECOGNIZED_SIGN_IN",
  "seasonal_holiday_badge": null,
  "past_interactions_badge": null,
  "best_seller_badge": null,
  "diet_types": [
    "paleo"
  ],
  "delivery_promise_html": "<div data-cy=\"delivery-block\" class=\"a-section a-spacing-none a-padding-none udm-delivery-block\"><div class=\"a-row a-size-small a-color-base udm-primary-delivery-message\"><div class=\"a-column a-span12\">$9.95 delivery <span id=\"WVCRIAFWG\" class=\"a-text-bold\">Today 1 PM - 3 PM</span> with Prime</div></div></div>",
  "category": {
    "product_type": "MEAT",
    "gl_product_group_symbol": "gl_fresh_perishable",
    "display_name": "Grocery"
  },
  "customizability": null,
  "from_url": "https://www.wholefoodsmarket.com/grocery/search?k=meat"
}
```

Each product record returns 25+ fields of structured data:

#### Core Product Identity

| Field | Meaning |
|---|---|
| `Brand Name` | The manufacturer or brand (e.g., "Organic Valley", "Grass-Fed Beef Co.") |
| `Name` | Product title as displayed on the listing (e.g., "Grass-Fed Ground Beef, 85/15") |
| `ASIN` | Amazon Standard Identification Number — unique product identifier across Amazon/Whole Foods platforms |
| `PDP Type` | Product Detail Page type (indicates if it's a standard item, bundle, variable product, or special category) |
| `Category` | Product classification (e.g., "Meat & Seafood", "Produce", "Dairy") |

#### Availability & Fulfillment

| Field | Meaning |
|---|---|
| `Availability` | Current stock status (in stock, limited availability, out of stock, pre-order) |
| `Delivery Promise HTML` | HTML-formatted delivery estimate (e.g., "Whole Foods delivery", "Get it by Friday") |
| `Variable Unit of Measure` | Unit of sale (lb, oz, count, package, etc.) — important for price comparison |

#### Product Information

| Field | Meaning |
|---|---|
| `Description` | Full product description, benefits, and use cases |
| `About` | Additional narrative or brand story about the product |
| `Ingredients` | Complete ingredient list (critical for dietary filtering) |
| `Nutrition Facts` | Standardized nutritional information (calories, macros, allergens) |
| `Diet Types` | Dietary badges (organic, vegan, gluten-free, keto, non-GMO, etc.) |

#### Special Tags & Badges

| Field | Meaning |
|---|---|
| `Seasonal Holiday Badge` | Flag if product is seasonal (e.g., "Holiday Special") |
| `Past Interactions Badge` | Indicates if customer has previously viewed or purchased |
| `Best Seller Badge` | Highlights top-selling items in the category |
| `SNAP EBT` | Whether the product qualifies for SNAP/EBT eligibility |
| `Cooking Tag` | Preparation instructions or cooking method hints |
| `Reheating Tag` | If applicable, indicates whether product requires reheating |
| `Reheating Instructions` | Specific reheating guidance (microwave, oven, stovetop) |

#### Product Variants & Bundles

| Field | Meaning |
|---|---|
| `Variations List` | Available size/flavor/option variants (e.g., sizes: 1 lb, 2 lb, 5 lb) |
| `Bundle Details` | If product is part of a bundle or multi-pack, details on component items |
| `Offer Details` | Promotions, discounts, or loyalty program information (e.g., "Prime Member Exclusive", "$5 off") |

#### Media & Display

| Field | Meaning |
|---|---|
| `Product Images` | URLs to product photography (primary and gallery images) |
| `Customizability` | Whether the product can be customized (e.g., deli cuts, special packaging) |

#### Unique Identifiers

| Field | Meaning |
|---|---|
| `Program Type` | Special program affiliation (e.g., "Whole Foods 365", "Local Producer") |

***

### How to Use

#### Method 1: Direct URL Scraping

1. Go to wholefoodsmarket.com and search for your desired products (e.g., "organic beef")
2. Apply filters: price range, dietary attributes, sort order
3. Copy the full URL from your browser address bar
4. Paste URL(s) into the `urls` array
5. Set `max_items_per_url` (recommend 200 for comprehensive results)
6. Run the scraper

#### Method 2: Keyword-Based Scraping

1. Enter a product `keyword` (e.g., "chicken", "dairy-free milk")
2. Select a `sort_by` option (e.g., "price-desc-rank" for highest to lowest)
3. Choose a `price_range` (e.g., "$30–$50")
4. Set `max_items_per_url` to your desired limit
5. Run the scraper — it will automatically generate and search URLs

**Best practices:**

- For bulk runs, set `ignore_url_failures: true` to avoid interruptions
- Use keyword mode for exploratory research; use URL mode for precise, repeatable searches
- Monitor first-run performance with a small `max_items_per_url` (e.g., 20) before scaling to 200

***

### Use Cases & Business Value

- **Price monitoring** — Track competitor pricing across organic/premium grocery segments
- **Market research** — Analyze product trends, dietary preferences, and premium brand positioning
- **Private label analysis** — Compare Whole Foods house brands (365, Everyday Essentials) against national brands
- **Supply chain intelligence** — Identify local producer partnerships and sourcing information
- **Product aggregators** — Feed Whole Foods inventory into multi-retailer price comparison tools
- **Content creation** — Gather product data for recipe blogs, nutrition databases, or food media
- **Inventory forecasting** — Track product availability and seasonal trends for purchasing decisions

The Whole Foods Product Search Scraper eliminates manual browsing and copy-paste work, delivering clean, structured product intelligence ready for analysis in spreadsheets, databases, or BI platforms.

***

### Conclusion

The **Whole Foods Market Product Search Scraper** is an efficient solution for accessing premium organic product data at scale. With flexible input modes, rich 25+ field output, and robust error handling, it accelerates competitive research, pricing analysis, and market intelligence in the natural foods space. Start scraping today and unlock insights that inform pricing strategy, product curation, and consumer trend analysis.

# 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

## `price_range` (type: `string`):

Price range to filter by

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

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.wholefoodsmarket.com/grocery/search?k=meat&s=price-desc-rank&rh=p_72%3A1248897011%2Cp_n_deal_type%3A23566065011%2Cp_36%3A3000-5000"
  ],
  "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://www.wholefoodsmarket.com/grocery/search?k=meat&s=price-desc-rank&rh=p_72%3A1248897011%2Cp_n_deal_type%3A23566065011%2Cp_36%3A3000-5000"
    ],
    "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/wholefoodsmarket-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://www.wholefoodsmarket.com/grocery/search?k=meat&s=price-desc-rank&rh=p_72%3A1248897011%2Cp_n_deal_type%3A23566065011%2Cp_36%3A3000-5000"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/wholefoodsmarket-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://www.wholefoodsmarket.com/grocery/search?k=meat&s=price-desc-rank&rh=p_72%3A1248897011%2Cp_n_deal_type%3A23566065011%2Cp_36%3A3000-5000"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/wholefoodsmarket-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/wholefoodsmarket-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/xxaNWVfhkdi9vNSDj/builds/ft61hDj67JbBIUBwX/openapi.json
