# Petco Product Scraper (`axlymxp/petco-product-scraper`) Actor

Scrape Petco products by keyword, category or URL — price, autoship price, ratings, reviews, brand, images, ingredients, specs and stock as clean JSON or CSV. Built for price monitoring, catalog tracking and brand research. Pay only for the results you get.

- **URL**: https://apify.com/axlymxp/petco-product-scraper.md
- **Developed by:** [axly](https://apify.com/axlymxp) (community)
- **Categories:** E-commerce, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 dataset items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Petco Product Scraper

Extract **Petco (petco.com) product data at scale** — by keyword search, category
browse, or direct product URL — and export it as clean JSON, CSV, or Excel. Get
pricing (including **Repeat Delivery / autoship** prices), ratings and review
counts, brand, images, taxonomy and fulfillment flags for every product, plus
optional **full detail** (variants, ingredients, specifications, guaranteed
analysis, live inventory) and **customer reviews**.

It talks to Petco's own product API directly — no browser, no HTML parsing — so it
is fast, reliable, and returns a richer, cleaner schema than page scrapers.

### Who it's for

- **Pricing & e-commerce analysts** — track prices, list vs. autoship prices,
  ratings and assortment across the Petco catalog for competitive intelligence.
- **CPG / pet brands & vendors** — monitor your own SKUs on Petco: price, stock,
  ratings, ingredients and guaranteed analysis, and review sentiment.
- **Developers & AI builders** — a stable JSON schema and MCP-callable actor to
  power price-comparison, deal-alert, or pet-product data products.
- **Market researchers** — measure category coverage, brand share and review volume.

### What you get (output fields)

| Field                                                                          | Type   | Description                                                                                                        |
| ------------------------------------------------------------------------------ | ------ | ------------------------------------------------------------------------------------------------------------------ |
| `sku`                                                                          | string | Petco SKU / catalog id (variant level)                                                                             |
| `product_id`                                                                   | int    | Parent product id (matches review ProductId)                                                                       |
| `name`                                                                         | string | Product name                                                                                                       |
| `brand`                                                                        | string | Brand / manufacturer                                                                                               |
| `url`                                                                          | string | Product page URL                                                                                                   |
| `image`                                                                        | string | Main product image URL                                                                                             |
| `description`                                                                  | string | Short description                                                                                                  |
| `price`                                                                        | number | Current price (USD)                                                                                                |
| `list_price`                                                                   | number | List / strike-through price (USD)                                                                                  |
| `autoship_price`                                                               | number | Repeat Delivery (autoship) price (USD)                                                                             |
| `rating`                                                                       | number | Average rating (0–5)                                                                                               |
| `review_count`                                                                 | number | Total number of reviews                                                                                            |
| `taxonomy`                                                                     | string | Category path, e.g. `Consumables\|Food\|Household Pet`                                                             |
| `in_store_only` / `bopus_eligible` / `autoship_eligible` / `same_day_eligible` | bool   | Availability & fulfillment flags                                                                                   |
| `detail`                                                                       | object | **(optional)** variants, ingredients, specifications, guaranteed analysis, directions, inventory, breadcrumbs, UPC |
| `reviews`                                                                      | array  | **(optional)** first page of customer reviews (rating, title, text, author, verified purchaser, pros/cons, photos) |
| `reviews_total`                                                                | int    | **(optional)** total review count                                                                                  |
| `source`                                                                       | string | Which input produced the row (`search:…`, `category:…`, `url:…`)                                                   |
| `scraped_at`                                                                   | string | ISO-8601 UTC scrape timestamp                                                                                      |

### Use cases

- **Competitive price monitoring** — schedule a daily run over your categories and
  diff `price` / `autoship_price` to react to Petco's pricing and promotions.
- **Brand shelf monitoring** — filter by `brands` to watch your own SKUs' price,
  stock and ratings, and get alerted when items go out of stock or lose rating.
- **Product intelligence** — turn on full detail to capture ingredients and
  guaranteed analysis for formulation and compliance comparisons across the market.
- **Review mining** — pull ratings, review counts and the latest reviews to track
  sentiment and surface product issues.
- **Catalog & feed building** — browse categories or feed product URLs to build a
  normalized Petco product feed for your app or marketplace.

### Input parameters

| Field                   | Type   | Default     | Description                                                                     |
| ----------------------- | ------ | ----------- | ------------------------------------------------------------------------------- |
| `searchQueries`         | array  | `[]`        | Keywords to search (e.g. `dog food`, `cat litter`)                              |
| `categories`            | array  | `[]`        | Category slugs to browse (e.g. `dog`, `cat`, `fish`)                            |
| `productUrls`           | array  | `[]`        | Direct product URLs / slugs (always returned with full detail)                  |
| `maxItems`              | int    | `100`       | Stop after this many rows (total)                                               |
| `maxItemsPerQuery`      | int    | `1000`      | Cap per query / category                                                        |
| `includeDetails`        | bool   | `false`     | Add variants, ingredients, specs, guaranteed analysis, inventory                |
| `includeReviews`        | bool   | `false`     | Add the first page of customer reviews + total count                            |
| `sortBy`                | enum   | `relevance` | `relevance`, `TopSold`, `AverageRating`, `offerprice`, `startDate`, `item_name` |
| `sortOrder`             | enum   | auto        | `ascending` / `descending`                                                      |
| `brands`                | array  | `[]`        | Restrict to these brands (Primary Brand facet)                                  |
| `minPrice` / `maxPrice` | number | —           | Keep products within this price range                                           |
| `minRating`             | number | —           | Keep products at or above this rating                                           |
| `proxyConfiguration`    | object | Apify Proxy | Egress proxy (optional; the search API is ungated)                              |

At least one of `searchQueries`, `categories`, or `productUrls` is required.

#### Example input

```json
{
    "searchQueries": ["dog food", "cat litter"],
    "brands": ["Purina Pro Plan"],
    "sortBy": "AverageRating",
    "includeDetails": true,
    "includeReviews": true,
    "maxItems": 200
}
```

#### Example output row

```json
{
    "sku": "143014",
    "product_id": 2026049,
    "name": "Lafeber's Premium Daily Diet for Parrots, 5 lbs.",
    "brand": "Lafeber's",
    "url": "https://www.petco.com/product/lafebers-premium-daily-diet-for-parrots",
    "image": "https://assets.petco.com/petco/image/upload/f_auto,q_auto/143014-center-1",
    "price": 33.99,
    "list_price": 41.99,
    "autoship_price": 32.29,
    "rating": 4.8,
    "review_count": 47,
    "taxonomy": "Bird|Bird Food|Household Pet",
    "autoship_eligible": true,
    "same_day_eligible": true,
    "detail": {
        "variant_axes": [{ "name": "Weight", "values": ["5 LBS", "25 LBS"] }],
        "variants": [
            {
                "sku": "143014",
                "price": 33.99,
                "inventory_status": "Available"
            },
            {
                "sku": "2125122",
                "price": 99.99,
                "inventory_status": "Available"
            }
        ],
        "ingredients": "Ground Corn, Soybean Meal, …",
        "guaranteed_analysis": "Crude Protein (min) 12.5% …"
    },
    "reviews": [
        {
            "rating": 5,
            "title": "My conure loves it",
            "author": "Craig",
            "verified_purchaser": true
        }
    ],
    "reviews_total": 47,
    "source": "search:parrot food",
    "scraped_at": "2026-08-27T18:20:00Z"
}
```

### Scheduling & integrations

- **Schedule** runs (hourly/daily) from the Apify Console to keep a price/stock
  feed fresh.
- **Webhooks** can push each finished run to your endpoint, or fan out to
  **Make**, **Zapier**, Google Sheets, or S3.
- Export the dataset as **JSON, CSV, Excel, or XML** via the API or Console.

### Use it from an AI agent (MCP)

This actor is callable from AI assistants through the Apify MCP server, so an agent
can fetch live Petco product data as a tool. Point your MCP-compatible client at
Apify's MCP server and call `axlymxp/petco-product-scraper` with the same input
JSON shown above.

### FAQ

**Do I need proxies or API keys?** No. Search and category browse work out of the
box. Full detail and reviews are fetched through a built-in residential path; you
can optionally supply your own Zyte API key.

**How many results can I get per query?** Petco's search window tops out around
10,000 results per query; use categories and multiple queries to go wider.

**How fresh is the data?** Every field is fetched live from Petco at run time.

**How many reviews are returned?** The first page (up to ~10) of the most helpful
reviews is embedded in each product page, along with the total review count. Petco
does not expose deeper review pages without a private key.

**Is scraping this legal?** The actor collects publicly available product
information. You are responsible for complying with Petco's Terms and applicable
laws; do not collect personal data.

**Something broke or a field is missing?** Open an issue on the actor page — issues
are monitored and fixes shipped quickly.

***

*Not affiliated with or endorsed by Petco. "Petco" is a trademark of its owner and
is used here only to describe the data source.*

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search on Petco (e.g. 'dog food', 'cat litter'). Each query is paginated up to 'Max items per query'.

## `categories` (type: `array`):

Petco category / collection slugs to browse (e.g. 'dog', 'cat', 'fish', 'autoship-eligible-products'). Use the last path segment of a Petco category URL.

## `productUrls` (type: `array`):

Direct Petco product page URLs (or product slugs). These are always returned with full detail (and reviews if enabled).

## `maxItems` (type: `integer`):

Stop the whole run after this many product rows.

## `maxItemsPerQuery` (type: `integer`):

Cap on rows collected per search query / category before moving to the next. Petco's search window tops out around 10,000 results per query.

## `includeDetails` (type: `boolean`):

Fetch each product's page for variants, ingredients, specifications, guaranteed analysis, inventory status and breadcrumbs. Adds a per-product enrichment charge. Direct product URLs are always detailed.

## `includeReviews` (type: `boolean`):

Include the first page of Bazaarvoice customer reviews (up to ~10) embedded in each product page, plus the total review count. Requires a product-page fetch, so it adds the per-product enrichment charge.

## `sortBy` (type: `string`):

Sort order for search & category results.

## `sortOrder` (type: `string`):

Ascending or descending. Leave on 'Auto' to use the sensible default for the chosen sort (e.g. price low→high, rating high→low).

## `brands` (type: `array`):

Restrict results to these brands (Petco 'Primary Brand' facet, e.g. 'Purina Pro Plan', 'Blue Buffalo').

## `minPrice` (type: `integer`):

Only keep products at or above this price.

## `maxPrice` (type: `integer`):

Only keep products at or below this price.

## `minRating` (type: `integer`):

Only keep products with an average rating at or above this value (0–5).

## `zyteApiKey` (type: `string`):

Optional: use your own Zyte API key for the product-page (detail / reviews) fetches. Leave blank to use the built-in residential fetch.

## `proxyConfiguration` (type: `object`):

Egress proxy for the product API. Petco's search API is ungated and works from most IPs; the default Apify Proxy provides a stable egress.

## Actor input object example

```json
{
  "searchQueries": [
    "dog food",
    "cat litter"
  ],
  "categories": [
    "dog",
    "cat"
  ],
  "productUrls": [
    "https://www.petco.com/product/lafebers-premium-daily-diet-for-parrots"
  ],
  "maxItems": 100,
  "maxItemsPerQuery": 1000,
  "includeDetails": false,
  "includeReviews": false,
  "sortBy": "relevance",
  "sortOrder": "",
  "brands": [
    "Purina Pro Plan"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "searchQueries": [
        "dog food"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("axlymxp/petco-product-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 = { "searchQueries": ["dog food"] }

# Run the Actor and wait for it to finish
run = client.actor("axlymxp/petco-product-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 '{
  "searchQueries": [
    "dog food"
  ]
}' |
apify call axlymxp/petco-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,axlymxp/petco-product-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/imOKWFqxw46DBw0J5/builds/zSWKQbCBbedqrWWzm/openapi.json
