Petco Product Scraper — Prices, Autoship & Ratings
Pricing
from $4.00 / 1,000 product extracteds
Petco Product Scraper — Prices, Autoship & Ratings
Track Petco prices with this Petco product scraper: list, sale and autoship prices, ratings, review counts and SKUs for pet brands, sellers and analysts.
Pricing
from $4.00 / 1,000 product extracteds
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
Petco Product Scraper collects Petco prices, sale prices, autoship prices, star ratings, review counts, SKUs and delivery options from Petco search terms, category pages or product URLs, and returns one clean record per product. It is built for pet brands, online sellers and price analysts who need Petco product data in a spreadsheet, database or AI workflow.
The Actor reads the same public product-search data that powers Petco's own search and category pages, over plain HTTP. It needs no browser, no login and no cookies, so a small run finishes in a few seconds of compute.
Price: $5.00 per 1,000 products on the FREE tier ($4.00 on GOLD and above), plus a $0.00649 start fee per run. Up to 500 products per run on every Apify plan.
What Petco product data do you get?
One dataset record per unique Petco product:
| Field | What it means |
|---|---|
title | Product name including size or variant, as shown on Petco |
brand | Brand name |
price | Regular (list) price in USD |
salePrice | Current online price when it is below the list price, otherwise null |
autoshipPrice | Petco Autoship (repeat delivery) price in USD |
currency | Always USD |
rating | Average star rating (0–5) |
reviewCount | Number of customer reviews |
sku | Petco item number (the number at the end of the product URL) |
productId | Petco catalog ID of the returned variant |
variantCount | Number of sizes or variants listed for the product |
availability | InStoreOnly for in-store-only items, otherwise null (stock levels are not published) |
inStoreOnly | Sold in stores only |
autoshipEligible | Can be ordered with Autoship |
sameDayDeliveryEligible | Eligible for same-day delivery |
pickupInStoreEligible | Eligible for buy online, pick up in store |
category | Petco's internal category path, for example `Consumables |
description | Product description from Petco's search data |
productUrl | Link to the Petco product page |
imageUrl, imageUrls | Main product image URL |
inputType, input | Which search term or URL produced the record (search, category or product) |
scrapedAt | When the record was collected (ISO timestamp) |
source | Always petco.com |
When to use this Petco scraper
- Track Petco prices for chosen products or a whole category, including sale prices and the Autoship price.
- Pet food price comparison: collect Petco dog food prices and cat food prices on a schedule and compare them with your own catalog or other retailers.
- Brand and review monitoring: follow ratings and review counts for your brand and competing brands.
- Petco catalog snapshot: export a category's assortment, brands, SKUs and fulfilment options for assortment research.
- Feed tools and agents: send structured records to a database, BI tool, spreadsheet or AI agent, with the product URL kept for verification.
It is a focused ecommerce scraper for one retailer. Do not use it for:
- Customer review text (only the average rating and review count are returned).
- Stock counts or prices for a specific store or ZIP code (it returns Petco's US online catalog prices).
- Petco services such as grooming, vet care or pet insurance.
- Retailers other than petco.com.
Input
Use any mix of search terms, category URLs and product URLs.
| Field | Default | What it does |
|---|---|---|
searchTerms | prefilled dog food | Petco searches such as dog food or cat litter. A term with no keyword match returns no products instead of loosely related suggestions. |
categoryUrls | [] | Petco category URLs (https://www.petco.com/category/dry-dog-food, legacy /shop/en/petcostore/category/... links) or search URLs (https://www.petco.com/search?query=cat%20litter). Filters in the URL query are ignored. |
productUrls | [] | Petco product URLs such as https://www.petco.com/product/<product-slug>-3748364. The size or variant in the URL is returned. |
maxProducts | 20 (prefill 3) | Run-wide maximum number of unique products returned and charged, 1–500. |
maxPagesPerSearch | 3 | Result pages per search term or category, 1–20. One page holds up to 100 products. |
requestTimeoutSecs | 30 | Timeout for each product-search request, 10–180 seconds. |
Inputs are processed a few at a time (product URLs first, then categories, then searches) until maxProducts is reached, so with several inputs and a small cap the first inputs can use the whole allowance. If you add URLs and leave the prefilled dog food search unchanged, that search is skipped and a warning is added to OUTPUT.
Petco dog food and cat food prices:
{"searchTerms": ["dog food", "cat food"],"maxProducts": 100,"maxPagesPerSearch": 1}
A category plus specific products:
{"categoryUrls": ["https://www.petco.com/category/dry-dog-food"],"productUrls": ["https://www.petco.com/product/purina-pro-plan-sensitive-skin-and-stomach-salmon-and-rice-formula-dry-dog-food-40-lbs-3748364"],"maxProducts": 25}
Petco API: run it from your code
The Actor works as a Petco product data API through the Apify API. JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/petco-product-scraper').call({searchTerms: ['dog food'],maxProducts: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
cURL, returning the products in one call:
curl -X POST "https://api.apify.com/v2/acts/muhammadafzal~petco-product-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchTerms": ["cat litter"], "maxProducts": 10}'
You can also run it from Apify Console, schedules, webhooks, Make, Zapier, n8n, or the hosted Apify MCP server for AI agents.
Output example
A real record from a dog food search (description shortened):
{"productId": "2503505","title": "Taste of the Wild Pacific Stream Grain-Free with Smoke-Flavored Salmon Dry Dog Food, 28 lbs.","brand": "Taste of the Wild","productUrl": "https://www.petco.com/product/taste-of-the-wild-pacific-stream-grain-free-dry-dog-food-with-smoked-salmon-28-lbs-2998871","imageUrl": "https://assets.petco.com/petco/image/upload/f_auto,q_auto,w_190/dpr_auto/2998871-center-1","imageUrls": ["https://assets.petco.com/petco/image/upload/f_auto,q_auto,w_190/dpr_auto/2998871-center-1"],"price": 59.99,"salePrice": 58.99,"autoshipPrice": 56.04,"currency": "USD","availability": null,"inStoreOnly": false,"autoshipEligible": true,"sameDayDeliveryEligible": true,"pickupInStoreEligible": true,"rating": 4.71,"reviewCount": 1951,"category": "Consumables|Food|Household Pet","description": "Taste of the Wild Pacific Stream with SMOKE-FLAVORED SALMON dry dog food; REAL FISH is the #1 ingredient; ...","sku": "2998871","variantCount": 3,"inputType": "search","input": "dog food","scrapedAt": "2026-10-25T13:56:21.861Z","source": "petco.com"}
Each run also writes one OUTPUT record with the outcome (DATA, EMPTY, BLOCKED, REJECTED or FAILED), products delivered and charged, the status of every input (data, empty, not-found, skipped, blocked or failed), the stop reason, request counts and warnings:
{"outcome": "DATA","productsReturned": 3,"chargedProducts": 3,"stopReason": "the product limit of 3 was reached","inputs": [{ "inputType": "search", "input": "dog food", "status": "data", "products": 3, "pages": 1, "totalAvailable": 2492 }],"warnings": []}
Pricing
Pay per event, with Apify platform usage included in the prices (no separate usage fee is passed to you). Your tier follows your Apify subscription plan.
| Event | FREE | BRONZE (2.5% off) | SILVER (5% off) | GOLD, PLATINUM, DIAMOND (20% off) | Charged when |
|---|---|---|---|---|---|
Product extracted (product-extracted, primary) | $0.005001 | $0.004875 | $0.00475 | $0.004 | Once per unique product written to the dataset |
Actor start (apify-actor-start) | $0.00649 | $0.006327 | $0.006165 | $0.005192 | Once per run per started GB of allocated memory; the default 256 MB run (512 MB maximum) is one start event |
Every Apify plan, the free plan included, can request up to 500 products per run with maxProducts.
Worked examples:
- FREE tier, prefilled input (3 products): $0.00649 + 3 × $0.005001 = $0.021493.
- FREE tier, 500 products: $0.00649 + 500 × $0.005001 = $2.50699.
- SILVER, default 20 products: $0.006165 + 20 × $0.00475 = $0.101165.
- BRONZE, 100 products: $0.006327 + 100 × $0.004875 = $0.493827.
- GOLD, 500 products: $0.005192 + 500 × $0.004 = $2.005192.
Duplicate, unmatched and failed items are never charged. Empty, rejected and blocked runs pay only the start fee. The lowest maximum total charge you can set is $0.011491 (one start event plus one product), and the run stops cleanly when your maximum total charge is reached.
Reliability, limits and failure modes
- Access: direct HTTP requests to Petco's public product search. If Petco repeatedly refuses requests, the Actor retries them automatically through a residential network route. Rate limits (HTTP 429) are retried with backoff.
- Blocked or failed runs end with a clear status message, an
OUTPUToutcome ofBLOCKEDorFAILED, and no product charges. After three inputs in a row fail, the run stops instead of spending more time. - Empty results are truthful: unmatched searches, empty categories and unknown product URLs are reported in
OUTPUTasemptyornot-found; no placeholder records are created. - Stock: Petco search data does not include stock levels.
availabilityisInStoreOnlyfor in-store-only items and otherwisenull; use the delivery and pickup flags for fulfilment options. - Images:
imageUrlsholds the main product image only. - Category filters (brand, price, facets in the URL query) are not applied; the whole category is paginated in Petco's relevance order.
- Market: the US Petco store, prices in USD.
- Time limits: the default run timeout is 300 seconds. When the timeout is near, the Actor stops early, keeps every product already delivered and says so in the status message.
Legal and data-protection note
The Actor collects public product information only: names, prices, ratings, review counts and product details. It does not access accounts, carts or checkout, and it does not collect customer names, review text or other personal data. Use the data in line with Petco's terms and the laws that apply to you, and verify prices on Petco before making high-impact decisions.
FAQ
Is there a Petco API for product data?
This Actor gives you programmatic access to Petco product data: call it through the Apify API, a client library or the Apify MCP server, and receive JSON records with prices, ratings, SKUs and product URLs.
Can I export Petco prices to CSV or Excel?
Yes. Open the run's dataset in Apify Console and export CSV, Excel, JSON, XML or RSS, or download the same records through the dataset API.
How do I monitor Petco price and rating changes over time?
Save your input as a Task, add an Apify schedule (for example daily or weekly), and compare price, salePrice, autoshipPrice, rating and reviewCount by sku between runs. A webhook or integration can process each new dataset automatically.
Does it collect Petco customer reviews?
No. Each product includes the average rating and the reviewCount, but not the text of individual reviews.
Does it show Petco prices near me or for a specific store?
No. It returns the prices that Petco's US online catalog shows. It does not look up prices for a specific store or ZIP code; the inStoreOnly and pickupInStoreEligible flags show how an item can be bought.
Does it show the Petco Autoship price?
Yes. autoshipPrice is the repeat-delivery price from Petco's search data, and autoshipEligible shows whether Autoship is available. In our October 2026 sample run, Autoship prices were 5% below the current list or sale price. First-order Autoship promotions are not returned as a separate field.
Support
When reporting a problem, include the Actor run ID, a redacted input, the expected result and a public example URL when applicable. Never post API tokens, cookies or personal data in an issue.
Last verified: 2026-11-04