# Petsmart Product Search Scraper (`stealth_mode/petsmart-product-search-scraper`) Actor

Scrape PetSmart product listings with 70+ data fields including pricing, inventory, ratings, and pet-specific attributes. Perfect for price monitoring, competitor analysis, and pet supply market research — extract up to 200 products per search page.

- **URL**: https://apify.com/stealth\_mode/petsmart-product-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, E-commerce
- **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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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

## PetSmart Product Search Scraper: Scrape Pet Supply Data at Scale

**Excerpt:** Scrape PetSmart product listings with 70+ data fields including pricing, inventory, ratings, and pet-specific attributes. Perfect for price monitoring, competitor analysis, and pet supply market research — extract up to 200 products per search page.

---

### What Is PetSmart?

PetSmart is one of North America's largest pet supply retailers, offering everything from food and toys to grooming services for dogs, cats, birds, and exotic pets. With thousands of products across multiple categories, manual data collection is impractical. The **PetSmart Product Search Scraper** automates extraction of product listings from search results, delivering comprehensive, structured data for competitive intelligence, pricing analytics, and market research.

---

### Overview

The **PetSmart Product Search Scraper** extracts product information from PetSmart search result pages, converting unstructured web listings into machine-readable records with 70+ fields. It is designed for:

- **Price intelligence analysts** monitoring pet supply pricing trends
- **Retailers and e-commerce teams** benchmarking against PetSmart
- **Market researchers** studying pet industry product assortment
- **Data scientists** building recommendation or demand forecast models
- **Supply chain professionals** tracking inventory and availability across categories

The scraper handles pagination seamlessly, captures rich product attributes (size, flavor, breed compatibility), shopping options (in-store, BOPIS, subscription), and customer insights (ratings, reviews). With configurable item limits and error tolerance, it scales reliably across large product catalogs.

---

### Input Format

The scraper accepts a JSON configuration object:

```json
{
  "urls": [
    "https://www.petsmart.com/dog/food?page=2",
    "https://www.petsmart.com/cat/litter?page=1"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

| Parameter | Type | Description |
|---|---|---|
| `urls` | Array | Direct links to PetSmart product search result pages. Use category filters (dog, cat, bird, etc.) and pagination parameters (`?page=N`) for granular control. |
| `max_items_per_url` | Integer | Maximum products extracted per search page (default: 20, max recommended: 200). Higher values capture full pages; lower values speed up runs. |
| `ignore_url_failures` | Boolean | If `true`, the scraper skips failed URLs and continues; if `false`, it halts on errors. Recommended: `true` for large batches. |

> **Best practice:** Use category-specific URLs (e.g., `/dog/food`, `/cat/toys`) to focus on relevant products and reduce clutter.

***

### Output Format

### Example Output

Here's a sample record for a dog food product:

```json
{
  "id": 5360305,
  "meta": {
    "title": "",
    "description": ""
  },
  "master_product_id": null,
  "name": "Authority® Sensitive Stomach & Skin Adult Dog Dry Food - Lamb & Rice",
  "primary_category_id": "100246",
  "primary_category_name": "Dry Food",
  "short_description": "AU D ADLT SSS LMB 45 LB               23",
  "images": {
    "large": "https://s7d2.scene7.com/is/image/PetSmart/5360305?$sclp-prd-main_large$",
    "small": "https://s7d2.scene7.com/is/image/PetSmart/5360305?$sclp-prd-main_small$"
  },
  "personalization": {
    "style_options": {},
    "text_locations": {}
  },
  "merchandising_hierarchy": {
    "category": "D Dry Authority DF",
    "class": "D Authority DF",
    "department": "D Science",
    "division": "D Cons",
    "vice_president_id": 3,
    "vice_president_name": "Consumables"
  },
  "custom_case_quantity": 1,
  "has_hazmat_code": false,
  "shopping_options_is_bopis_eligible": null,
  "last_modified_millis": 1783153681022,
  "size": {
    "solid_size": "45 Lb"
  },
  "flavor": {
    "value": "Lamb & Rice",
    "displays": "Lamb"
  },
  "dimensions_and_weight": {
    "carton_height": 7.4,
    "carton_length": 26,
    "carton_weight": 45.25,
    "carton_width": 17.75
  },
  "package": {
    "height": 7.4,
    "length": 26,
    "weight": 45.25,
    "width": 17.75
  },
  "brand": "Authority",
  "custom_category": "Dry Food",
  "long_description": "<p><strong>DESCRIPTION</strong></p>\r\n<p>Authority&reg; veterinarian recommended products reflect decades of research and experience, all aimed at delivering next-level nutrition. Which is key, because we believe that's the foundation for a healthy, active, rewarding life for your pet. Only at PetSmart.</p>\r\n<p><strong>Key Benefits:</strong></p>\r\n<ul>\r\n<li>Sensitive formula made with ingredients that are gentle on the stomach and with omega fatty acids to nourish skin and coat</li>\r\n<li>Adult formula with optimal levels of protein, fat, and fiber</li>\r\n<li>Provides dental support with the Ora-Shield System&reg; unique formula and texture to help reduce plaque and tartar</li>\r\n<li>#1 ingredient is lamb</li>\r\n<li>No added artificial colors, flavors, or preservatives</li>\r\n</ul>\r\n<p><strong>Item Number:&nbsp;</strong>5360305<br /><strong>Brand:&nbsp;</strong>Authority&reg;<br /><strong>Food Type:&nbsp;</strong>Dry Dog Food<br /><strong>Life Stage:&nbsp;</strong>Adult (Ages 1+)<br /><strong>Health Consideration:&nbsp;</strong>Sensitive Stomach &amp; Skin<br /><strong>Flavor:&nbsp;</strong>Lamb &amp; Rice Formula<br /><strong>Weight:&nbsp;</strong>Net Weight 45 LBS (20.4 kg)</p>\r\n<p><strong>NUTRITIONAL INFORMATION</strong></p>\r\n<p><strong>Ingredients: </strong>Lamb, Fish Meal, Brown Rice, Wheat, Wheat Germ Meal, Soybean Meal, Canola Oil (Preserved With Mixed Tocopherols), Brewers Rice, Corn Protein Concentrate, Natural Flavor, Rice Bran, Oatmeal, Flaxseed, Salt, Fish Oil (Preserved with Mixed Tocopherols), Calcium Carbonate, Sodium Hexametaphosphate, Dicalcium Phosphate, Potassium Chloride, Minerals (Zinc Sulfate, Ferrous Sulfate, Manganese Sulfate, Copper Sulfate, Sodium Selenite), Vitamins (Vitamin E Supplement, Vitamin A Supplement, Niacin Supplement, d-Calcium Pantothenate, Riboflavin Supplement, Thiamine Mononitrate, Biotin, Vitamin B12 Supplement, Pyridoxine Hydrochloride, Vitamin D3 Supplement, Calcium Iodate, Folic Acid), L-Threonine, Choline Chloride, Taurine, Citric Acid (A Preservative), Mixed Tocopherols (A Preservative), Rosemary Extract</p>\r\n<p><strong>Guaranteed Analysis:</strong></p>\r\n<p><span>Crude Protein (min) 26.0% </span><br /><span>Crude Fat (min) 14.0% </span><br /><span>Crude Fiber (max) 5.0% </span><br /><span>Moisture</span> (max) 10.0%<span> &nbsp; </span><br />Linoleic Acid (min) 1.3% <br /><span>Zinc (min) 175 mg/kg </span><br /><span>Selenium (min) 0.35 mg/kg </span><br /><span>Vitamin A (min) 15,000 IU/kg </span><br /><span>Vitamin E (min) 225 IU/kg <br />Taurine* (min) 0.1%</span><br /><span>Omega-6 Fatty Acids* (min)</span><span> 2.0%</span><span> &nbsp; </span><br /><span>Omega-3 Fatty Acids* (min) 0.4%</span></p>\r\n<p>*Not recognized as an essential nutrient by the AAFCO Dog Food Nutrient Profiles</p>\r\n<p><strong>Calorie Content (ME Calculated):</strong>&nbsp;3,620 kcal/kg, 405 kcal/cup</p>\r\n<p><strong>FEEDING INSTRUCTIONS</strong></p>\r\n<p><strong>Transition Instructions:&nbsp;</strong>Whenever there is a change to a pet's food, it is important to make the change gradually. Mix a small amount of new food with current food and gradually increase the new food over the course of a week.</p>\r\n<p><strong>Feeding Guidelines: </strong><span>Adult Dogs: Begin with the recommendations provided and adjust to maintain body weight. Dogs may be fed once or twice per day. Feed Authority&reg; dog food either dry or moistened with water. Provide your dog with a clean container of fresh water daily. An individual dog's requirement may be different from this guide. Always consult your veterinarian with any health questions. See speciï¬c daily feeding instructions on package.</span><sup></sup></p>",
  "online_from": 1743379200000,
  "online_to": 4102444799000,
  "dog_lifestages": [
    "Adult"
  ],
  "food_pounds_size_displays": [
    "24 Lb and Over"
  ],
  "custom_health_consideration": [
    "Sensitive Skin",
    "Sensitive Stomach"
  ],
  "kibble_sizes": [
    "All Breeds"
  ],
  "pet_type_breeds": null,
  "custom_pet": [
    "Dog"
  ],
  "product_availability_locations": [
    "In Store"
  ],
  "avalara_tax_code": "EEE",
  "bv_average_rating": 4.5,
  "bv_review_count": 961,
  "conversion_rate": 65,
  "custom_bv_average_rating": 4,
  "manufacturer_name": "ALPHIA INC....",
  "manufacturer_sku": "50010353",
  "ship_to_home_is_ca_supported": null,
  "shopping_options_is_in_store_available": null,
  "shopping_options_is_in_store_only": null,
  "shopping_options_is_in_store_pick_up": null,
  "shopping_options_is_sold_online_only": null,
  "is_in_stock_in_store": true,
  "upc": "196481089488",
  "is_searchable_flag": true,
  "is_sku_available": null,
  "price": {
    "number": 71.99,
    "strikethrough-number": null,
    "valid_until": "",
    "formatted": {
      "primary": "$17.99-$71.99"
    },
    "display_type": "range"
  },
  "variations": [
    "4 Sizes",
    "1 Flavor"
  ],
  "categories": [
    [
      {
        "id": "6000030",
        "name": {
          "default": "Auto ship"
        }
      },
      {
        "id": "6000000",
        "name": {
          "default": "Featured Shops"
        }
      }
    ],
    [
      {
        "id": "60080122",
        "name": {
          "default": "Timezone Test"
        }
      },
      {
        "id": "6000000",
        "name": {
          "default": "Featured Shops"
        }
      }
    ],
    [
      {
        "id": "100246",
        "name": {
          "default": "Dry Food"
        }
      },
      {
        "id": "100409",
        "name": {
          "default": "Food"
        }
      },
      {
        "id": "100000",
        "name": {
          "default": "Dog"
        }
      }
    ],
    [
      {
        "id": "5000003",
        "name": {
          "default": "Dog"
        }
      },
      {
        "id": "5000002",
        "name": {
          "default": "Authority"
        }
      },
      {
        "id": "5000000",
        "name": {
          "default": "Featured Brands"
        }
      }
    ],
    [
      {
        "id": "JUE-01",
        "name": {
          "default": "July Event"
        }
      },
      {
        "id": "sale",
        "name": {
          "default": "Sale"
        }
      }
    ],
    [
      {
        "id": "JULY-001",
        "name": {
          "default": "10x Large Bags"
        }
      },
      {
        "id": "JULY",
        "name": {
          "default": "4th of July Sale"
        }
      },
      {
        "id": "sale",
        "name": {
          "default": "Sale"
        }
      }
    ],
    [
      {
        "id": "6007000",
        "name": {
          "default": "Same Day Delivery"
        }
      },
      {
        "id": "6000000",
        "name": {
          "default": "Featured Shops"
        }
      }
    ],
    [
      {
        "id": "sv-dog",
        "name": {
          "default": "Dog"
        }
      },
      {
        "id": "smartvalue",
        "name": {
          "default": "Smart Value"
        }
      }
    ],
    [
      {
        "id": "60000060",
        "name": {
          "default": "Curbside and In Store Pickup"
        }
      },
      {
        "id": "6000000",
        "name": {
          "default": "Featured Shops"
        }
      }
    ],
    [
      {
        "id": "0824-SameDayDelivery-Sale",
        "name": {
          "default": "Save on Same Day Delivery"
        }
      },
      {
        "id": "Product-Assortments",
        "name": {
          "default": "PA"
        }
      }
    ],
    [
      {
        "id": "0824-Same-Day-Delivery-Sale",
        "name": {
          "default": "Same Day Delivery Sale"
        }
      },
      {
        "id": "Product-Assortments",
        "name": {
          "default": "PA"
        }
      }
    ],
    [
      {
        "id": "JE01",
        "name": {
          "default": "June Event"
        }
      },
      {
        "id": "sale",
        "name": {
          "default": "Sale"
        }
      }
    ],
    [
      {
        "id": "TEST---Spend-75-get-15-off",
        "name": {
          "default": "Spend $75+ get $15 off"
        }
      },
      {
        "id": "6000000",
        "name": {
          "default": "Featured Shops"
        }
      }
    ],
    [
      {
        "id": "SFY26-SDD",
        "name": {
          "default": "Same Day Delivery"
        }
      },
      {
        "id": "sale",
        "name": {
          "default": "Sale"
        }
      }
    ],
    [
      {
        "id": "6008103",
        "name": {
          "default": "Save 20% and Save 30% and Save 50%"
        }
      },
      {
        "id": "6000000",
        "name": {
          "default": "Featured Shops"
        }
      }
    ],
    [
      {
        "id": "5000002",
        "name": {
          "default": "Authority"
        }
      },
      {
        "id": "5000000",
        "name": {
          "default": "Featured Brands"
        }
      }
    ]
  ],
  "custom_category_names": [
    "Dog",
    "Dog > Food",
    "Dog > Food > Dry Food",
    "Featured Brands",
    "Featured Brands > Authority",
    "Featured Brands > Authority > Dog",
    "Featured Shops",
    "Featured Shops > Auto ship",
    "Featured Shops > Curbside and In Store Pickup",
    "Featured Shops > Same Day Delivery",
    "Featured Shops > Save 20% and Save 30% and Save 50%",
    "Featured Shops > Spend $75+ get $15 off",
    "Featured Shops > Timezone Test",
    "PA",
    "PA > Same Day Delivery Sale",
    "PA > Save on Same Day Delivery",
    "Sale",
    "Sale > 4th of July Sale",
    "Sale > 4th of July Sale > 10x Large Bags",
    "Sale > July Event",
    "Sale > June Event",
    "Sale > Same Day Delivery",
    "Smart Value",
    "Smart Value > Dog"
  ],
  "sku": 5360305,
  "inventory": [
    "ps_us_web_inv",
    1072,
    255,
    391,
    2352
  ],
  "shopping_options_is_in_store_only_override": null,
  "alternate_images": [
    "5360305_alt1",
    "5360305_alt2",
    "5360305_alt3",
    "5360305_alt4",
    "5360305_alt5",
    "5360305_alt6",
    "5360305_alt7"
  ],
  "custom_scheduled_delivery_eligible": true,
  "is_subscription_enabled": true,
  "eligible_promotions": [
    {
      "promo_id": "75e57e18-4dba-45bf-8a4e-05f0d267c515",
      "promo_key": "20260626_DOGLRGBGS_10X",
      "promo_text": "Earn 10X points (20% back in savings) on ALL large dry dog food bags 20+ lbs",
      "promo_start": "2026-06-26T09:30:00.000Z",
      "promo_end": "2026-07-06T09:30:00.000Z",
      "order": 3.1778709248647
    },
    {
      "promo_id": "20f0fd74-cc28-4c82-bdc7-43ae0b853278",
      "promo_key": "US-0626-15-OFF-50-SDD_FW21-22",
      "promo_text": "Save 15% when you spend $50+ on FREE Same-Day Delivery",
      "promo_start": "2026-06-26T09:30:00.000Z",
      "promo_end": "2026-07-06T09:30:00.000Z",
      "order": 5.1780441906092
    },
    {
      "promo_id": "3761cb2c-2451-4487-9a00-37ad9b94489b",
      "promo_text": "Save 35% On Your First Autoship Order!",
      "promo_key": "US-AUTOSHIP-DEFAULT-35P-DONOTTOUCH",
      "promo_start": "2025-07-28T12:00:00.000Z",
      "type": "autoship",
      "default": true,
      "discount_display": "35%",
      "order": 21.1753227940048
    },
    {
      "promo_id": "aecfe5c6-e1b3-4ea6-8c94-649cc272195a",
      "promo_key": "EG-Free-Same-Day-Delivery-US",
      "promo_text": "Free Same-Day Delivery, No Order Minimum!",
      "order": 74.1744726346766
    },
    {
      "promo_id": "841ea8be-a613-4244-ac72-e2218fbc12f1",
      "promo_key": "EG-Free-Ship-Over-49-US-OLD",
      "promo_text": "Sign In & Enjoy Free Shipping Over $49",
      "promo_end": "2026-02-03T23:00:00.000Z",
      "order": 75.1744725984125
    },
    {
      "promo_id": "c77b871e-74df-46ea-950b-343c39e86e13",
      "promo_key": "EG-Free-Ship-Over-49-US",
      "promo_text": "Sign In & Enjoy Free Shipping Over $49",
      "promo_start": "2026-02-03T23:00:00.000Z",
      "order": 75.1770059684803
    },
    {
      "promo_id": "f0a9e94f-a233-4606-9ff6-9771d3b21ea5",
      "promo_text": "",
      "promo_key": "US-AUTOSHIP-MAX20-DONOTTOUCH",
      "type": "autoship",
      "default": true,
      "discount_display": "$20",
      "order": 1744911064577
    },
    {
      "promo_id": "53a913f6-15e3-4d74-a2a4-b4485db2ed94",
      "promo_text": "",
      "promo_key": "US-AUTOSHIP-DEFAULT-5P-EXISITINGCUSTOMER-DONOTTOUCH",
      "promo_start": "2025-07-29T00:00:00.000Z",
      "type": "autoship",
      "default": true,
      "discount_display": "5%",
      "order": 1753284423130
    }
  ],
  "states_restriction_enabled": false,
  "as_override": null,
  "nutritional_options": [
    "None"
  ],
  "video": null,
  "max_order_qty": null,
  "custom_category_list": [
    "Dry Food"
  ],
  "variation_data": [
    {
      "type": "Flavor",
      "value": "Lamb & Rice",
      "online_from": 1629676800000
    },
    {
      "type": "Size",
      "value": "34 Lb",
      "online_from": 1629676800000
    },
    {
      "type": "Size",
      "value": "6 Lb",
      "online_from": 1629676800000
    },
    {
      "type": "Size",
      "value": "18 Lb",
      "online_from": 1710115200000
    },
    {
      "type": "Size",
      "value": "45 Lb",
      "online_from": 1743379200000
    }
  ],
  "upc_list": [
    "196481089488"
  ],
  "price_data": {
    "list": 71.99,
    "current": 71.99,
    "list_range": [
      17.99,
      71.99
    ]
  },
  "flavor_list": [
    "Lamb",
    "Rice"
  ],
  "object_id": null,
  "from_url": "https://www.petsmart.com/dog/food?page=2"
}
```

Each scraped product returns a rich record with 70+ fields across multiple categories:

#### Core Product Identity

| Field | Meaning |
|---|---|
| `ID` | Unique internal PetSmart product identifier |
| `Object ID` | Alternative object reference ID |
| `SKU` | Stock Keeping Unit for inventory tracking |
| `Master Product ID` | Parent product ID for variant grouping |
| `UPC` | Universal Product Code for the item |
| `UPC List` | List of all UPCs associated with the product |
| `Manufacturer SKU` | SKU assigned by the product manufacturer |
| `Name` | Official product name as listed on PetSmart |

#### Categorization

| Field | Meaning |
|---|---|
| `Primary Category ID` | Main category identifier (e.g., dog food) |
| `Primary Category Name` | Main category name (e.g., "Dog Food & Treats") |
| `Categories` | All category paths the product belongs to |
| `Custom Category` | Retailer-specific product grouping |
| `Custom Category Names` | Human-readable custom category labels |
| `Custom Category List` | Full list of custom categories |
| `Merchandising Hierarchy` | Internal merchandising classification structure |

#### Product Details & Description

| Field | Meaning |
|---|---|
| `Short Description` | Brief product summary (typically 1-2 sentences) |
| `Long Description` | Comprehensive product description with features and benefits |
| `Brand` | Manufacturer or brand name |
| `Manufacturer Name` | Official manufacturer entity |
| `Meta` | Additional metadata or system notes |

#### Product Attributes (Pet-Specific)

| Field | Meaning |
|---|---|
| `Size` | Product size (e.g., "15 lbs", "small") |
| `Flavor` | Flavor variant (e.g., "chicken", "salmon") |
| `Flavor List` | All available flavor options for this product |
| `Dog Lifestages` | Applicable dog lifestages (puppy, adult, senior) |
| `Pet Type Breeds` | Specific pet types and breeds (e.g., "large breed dogs") |
| `Custom Pet` | Custom pet categorization |
| `Kibble Sizes` | For pet food: kibble size options |
| `Custom Health Consideration` | Health-focused attributes (e.g., "grain-free", "organic") |
| `Nutritional Options` | Nutritional benefits or certifications |

#### Physical Properties

| Field | Meaning |
|---|---|
| `Dimensions And Weight` | Physical dimensions and product weight |
| `Package` | Packaging type and details |
| `Custom Case Quantity` | Bulk purchase case sizes |

#### Pricing & Inventory

| Field | Meaning |
|---|---|
| `Price` | Current retail price |
| `Price Data` | Structured pricing information including historical or tiered pricing |
| `Inventory` | Stock level and availability status |
| `Is In Stock In Store` | Boolean: product currently in stock at physical locations |
| `Is SKU Available` | Boolean: SKU is available for purchase |
| `Product Availability Locations` | Which store locations have inventory |
| `Max Order Qty` | Maximum quantity a customer can order in one transaction |

#### Shopping Options & Fulfillment

| Field | Meaning |
|---|---|
| `Shopping Options Is BOPIS Eligible` | Buy Online, Pick up In Store availability |
| `Shopping Options Is In Store Available` | Available for in-store purchase |
| `Shopping Options Is In Store Only` | Can only be purchased in physical stores |
| `Shopping Options Is In Store Only Override` | Overridden in-store-only status |
| `Shopping Options Is In Store Pick Up` | Eligible for store pickup |
| `Shopping Options Is Sold Online Only` | Exclusive to online channel |
| `Ship To Home Is CA Supported` | Shipped to Home available in Canada |
| `Custom Scheduled Delivery Eligible` | Eligible for scheduled/subscription delivery |
| `Is Subscription Enabled` | Available for recurring subscription orders |

#### Promotions & Marketing

| Field | Meaning |
|---|---|
| `Eligible Promotions` | List of active promotions/discounts on the product |
| `Personalization` | Customization options available |
| `VIP` or premium placement flags | Special merchandising or loyalty program status |

#### Images & Media

| Field | Meaning |
|---|---|
| `Images` | Primary product image URLs |
| `Alternate Images` | Additional product photos from different angles |
| `Video` | Product video URL (if available) |

#### Ratings & Reviews

| Field | Meaning |
|---|---|
| `BV Average Rating` | Bazaarvoice average customer rating (0-5 scale) |
| `BV Review Count` | Total customer reviews via Bazaarvoice |
| `Custom BV Average Rating` | Alternative or cached rating metric |
| `Conversion Rate` | Purchase conversion percentage for the product |

#### Compliance & Restrictions

| Field | Meaning |
|---|---|
| `Has Hazmat Code` | Boolean: contains hazardous materials requiring special shipping |
| `Avalara Tax Code` | Tax classification code for sales tax compliance |
| `States Restriction Enabled` | Product shipping restrictions by state/region |
| `Is Searchable Flag` | Boolean: product appears in search results |

#### Availability Windows

| Field | Meaning |
|---|---|
| `Online From` | Product went live online (start date) |
| `Online To` | Product discontinued online (end date) |
| `Last Modified Millis` | Unix timestamp of last data update |

#### Variants & Related Data

| Field | Meaning |
|---|---|
| `Variations` | Size/flavor/other variant combinations available |
| `Variation Data` | Detailed variant specifications and attributes |
| `As Override` | Attribute/value override flag for special cases |

***

***

### How to Use

1. **Identify search URLs** — Navigate to PetSmart.com, filter by category (dog food, cat toys, etc.), and copy the search result page URL. Add pagination (`?page=1`, `?page=2`, etc.) for multiple pages.

2. **Build the input JSON** — Paste URLs into the `urls` array:

```json
   {
     "urls": [
       "https://www.petsmart.com/dog/food?page=1",
       "https://www.petsmart.com/dog/food?page=2"
     ],
     "max_items_per_url": 100,
     "ignore_url_failures": true
   }
```

3. **Configure limits** — Set `max_items_per_url` (recommended: 100–200 for full pages).

4. **Run the scraper** — Start the actor and monitor progress. Logs will show items extracted and any skipped URLs.

5. **Download results** — Export output as JSON, CSV, or Excel. All 70+ fields are preserved.

**Troubleshooting tips:**

- If products are missing, verify the URL loads products in your browser.
- Check that `max_items_per_url` is not too low for your page size.
- Use `ignore_url_failures: true` to handle temporary network issues gracefully.

***

### Use Cases & Business Value

- **Price monitoring:** Track competitor pricing across pet food and supplies in real-time.
- **Product assortment analysis:** Understand PetSmart's category depth, brand mix, and new product launches.
- **Demand forecasting:** Analyze which flavors, sizes, and attributes drive high review counts and conversion.
- **Market research:** Study pricing strategies for premium, mid-range, and budget pet product lines.
- **Aggregator platforms:** Feed PetSmart data into multi-retailer price comparison tools.

By automating product data collection, you unlock insights that manual browsing cannot deliver, supporting data-driven decisions in retail, supply chain, and marketing.

***

### Conclusion

The **PetSmart Product Search Scraper** is a powerful tool for anyone needing structured pet supply product data. With 70+ fields covering pricing, availability, pet attributes, and customer reviews, it transforms unstructured search results into actionable intelligence. Start scraping today and stay ahead of market trends.

# 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.

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

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.petsmart.com/dog/food?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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.petsmart.com/dog/food?page=2"
    ],
    "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/petsmart-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.petsmart.com/dog/food?page=2"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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.petsmart.com/dog/food?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/petsmart-product-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=stealth_mode/petsmart-product-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Petsmart Product Search Scraper",
        "description": "Scrape PetSmart product listings with 70+ data fields including pricing, inventory, ratings, and pet-specific attributes. Perfect for price monitoring, competitor analysis, and pet supply market research — extract up to 200 products per search page.",
        "version": "0.0",
        "x-build-id": "f37byzqv34WINyihV"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~petsmart-product-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-petsmart-product-search-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/stealth_mode~petsmart-product-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-petsmart-product-search-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/stealth_mode~petsmart-product-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-petsmart-product-search-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": {
                    "urls": {
                        "title": "URLs of the product search list urls to scrape",
                        "type": "array",
                        "description": "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.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "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
                                    }
                                }
                            },
                            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
