Petco Scraper: Online Prices, Autoship & Pickup Eligibility
Pricing
from $3.20 / 1,000 products
Petco Scraper: Online Prices, Autoship & Pickup Eligibility
Get Petco online prices for dog food, cat litter and pet supplies, with regular prices, Autoship prices, sale groups, size variants and pickup eligibility. Search, categories or product links. About $0.004 per product: 1,000 products cost $4. No login. Store stock is not included.
Pricing
from $3.20 / 1,000 products
Rating
0.0
(0)
Developer
mogged
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
For retail price analysts, pet brands and comparison services monitoring Petco's national online catalog. Collect distinct size and flavor SKUs with their current online price, regular price, recurring Autoship price, sale flag and fulfillment eligibility. $0.004 per delivered product, or $0.08 for 20 products, plus a minimum $0.00005 Actor start charge. No retailer login or customer account is required.
Search dog food, cat litter or aquarium filters, browse a category, or monitor known SKUs. Export the common US retail fields to JSON, CSV or Excel. Every row states priceScope: "online".
What you get
Each distinct size or flavor SKU is one product. Overlapping inputs return and charge a SKU once within a run.
| Field | Meaning |
|---|---|
verdict | Readable product name, online price and recurring Autoship price when supplied. |
retailer, country, currency | Petco, US and USD. |
storeId, storeName, location | Null on national online product rows. Requested store directory context is in SUMMARY. |
productId, sku, variantId | Petco's public numeric part number for the exact size or flavor. |
gtin | Common barcode field, retained as null in this catalog feed. |
title, brand, size | Product title, supplied brand and a package-size label parsed from the title where explicit. |
price, regularPrice, onSale | Current online price, source list price and whether current is lower than list. |
promoText, promoType | Online markdown explanation or supplied deal-group membership. |
promoStart, promoEnd | Null when the catalog supplies no promotion dates. |
memberPrice, memberProgram | Null. Petco Perks membership is separate from recurring Autoship pricing. |
unitPrice, unitOfMeasure | Null; an estimated unit price is not substituted for a retailer-supplied unit price. |
inStock, stockLevel | Null. Channel eligibility alone does not establish stock. |
rating, reviewCount | Aggregate rating and review count supplied for the catalog product family. |
category, taxonomy | Supplied merchandising taxonomy as a string and an array. |
url, imageUrl, scrapedAt | Variant product URL, supplied image URL and UTC observation timestamp. |
Additional fields make channel and subscription comparisons clearer:
| Field | Meaning |
|---|---|
autoshipPrice, autoshipTerms | Published recurring Autoship price and enrollment scope. |
pickupEligible | Whether the catalog marks the variant as eligible for pickup somewhere. |
sameDayDeliveryEligible, autoshipEligible | Catalog eligibility flags for those channels. |
inStoreOnly | The retailer's in-store-only catalog flag when supplied. |
pickupPrice, storePrice, shelfPrice, stockScope | Null because the catalog response does not verify these values. |
priceScope | Always online for delivered prices. |
catEntryId, parentProductId | Internal catalog-entry ID and product-family ID, distinct from the public SKU. |
species, lifeStage, packCount | Explicit facets or count labels where present; otherwise null. |
dealGroupIds, isDeal | Deal or clearance category membership and combined deal flag. |
facets | Supplied product facets, including brand, flavor and dietary attributes where available. |
details | Optional public catalog description and the scope of that description. |
sourceType, source, sourceUrl | Input type, input value and the public catalog request supplying the observation. |
The overview view follows the retail-family price columns with explicit scope. The deals view exposes promotion fields. The free DEALS output contains delivered deals; large exports link to JSON parts.
Use it in three steps
- Enter search terms, category links or exact Petco SKUs.
- Set
maxItemsPerSearchand the globalmaxItemscap. Add ZIP codes only when you want nearby-store directory context. - Start the Actor, inspect SUMMARY for coverage, then export or read the dataset through the API.
On November 5, 2026, the prefill resolved ZIP 10003 and delivered 20 variants in 11 seconds, with 20 product charges and no source failures. Two additional cloud runs each delivered 1,100 unique variants across several inputs, without duplicates or source failures.
Inputs and examples
The primary input names match the US retail family so the same automation can call sibling retailer Actors.
| Input | Example and behavior |
|---|---|
searchTerms | ["dog food", "cat litter"]; ordinary Petco searches. |
startUrls | Optional HTTPS category, deals category, search or full product links from petco.com. |
productIds | ["3748364", "2998871"]; exact public SKUs, checked against the returned variant. |
locations | ["10003", "90210"]; ZIP codes for nearest-store metadata in SUMMARY. |
storeIds | ["3741"]; public store numbers, overriding ZIP selection for directory lookup. |
maxItemsPerSearch | New SKU rows from each search or category, default 20, maximum 1,000. |
maxItems | Global unique-SKU cap, default 20, maximum 10,000. |
dealsOnly | Keep online markdowns and catalog deal or clearance memberships. |
includeDetails | Add the available catalog description, without an additional product fee. |
proxyConfiguration | Default datacenter routing first, then US residential retries when necessary. |
postalCodes, categoryUrls | Optional aliases; use locations and startUrls for family compatibility. |
A basket comparison across two searches:
{"searchTerms": ["dog food", "cat litter"],"maxItemsPerSearch": 50,"maxItems": 100}
A category watch:
{"startUrls": ["https://www.petco.com/category/dog/dog-food/dry-dog-food"],"maxItemsPerSearch": 200,"maxItems": 200,"dealsOnly": false}
An exact-product watch with store directory context:
{"productIds": ["3748364", "2998871"],"locations": ["10003", "90210"],"maxItems": 2}
That last example delivers up to two national online observations. The two ZIPs add directory metadata in SUMMARY and do not multiply the product count or product charge. An exact SKU that cannot be found returns no substitute size. Full product URLs must include the numeric SKU at the end.
Category links use the final category group. Limits count delivered variant SKUs. With no sources supplied, the default search is dog food. Searches with zero keyword matches exclude the retailer's recommendation fallback and have no product charge. Parseable invalid input produces a free note and summary.
Reading the price fields
price is the national one-time online price for that SKU. regularPrice is the supplied list price. onSale requires a current price below list.
autoshipPrice is the supplied recurring delivery price. First-order incentives, minimum-spend offers and account promotions are separate. The Actor does not enroll customers or calculate a checkout basket.
Petco Perks, pickup discounts and Autoship are separate programs. A pickup-eligible product does not establish units at a store. General banners do not become product-specific discounts. Unknown values stay null.
dealsOnly includes markdowns and deal/clearance memberships. Membership can reflect a qualifying offer or seasonal collection without a lower price. Use onSale to isolate numeric markdowns. Autoship eligibility alone does not qualify.
Real output example
Selected fields from the November 5, 2026 prefill:
{"retailer": "Petco","country": "US","currency": "USD","productId": "3748364","sku": "3748364","title": "Purina Pro Plan Sensitive Skin and Stomach Salmon and Rice Formula Dog Food, 40 lbs.","price": 97.99,"regularPrice": 97.99,"onSale": false,"autoshipPrice": 93.09,"priceScope": "online","pickupEligible": true,"storeId": null,"inStock": null,"gtin": null}
Every run saves SUMMARY with delivered products, resolved stores, deals found, free failures, duplicate exclusions, source outcomes and spending-limit status. Product rows have recordType: "PRODUCT". Free explanatory rows have recordType: "NOTE"; filter recordType when importing a dataset into a numeric table.
Pricing and spending controls
Base price is $0.004 per delivered product. Bronze is $0.0038, Silver $0.0036 and Gold $0.0032. A minimum $0.00005 Actor start charge is retained. Notes, summaries, duplicate SKUs, missing exact products and failed requests have no product charge. Optional catalog descriptions have no extra charge.
| Delivered products | Base | Bronze | Silver | Gold |
|---|---|---|---|---|
| 20 | $0.08 | $0.076 | $0.072 | $0.064 |
| 100 | $0.40 | $0.38 | $0.36 | $0.32 |
| 1,000 | $4.00 | $3.80 | $3.60 | $3.20 |
Add the small start charge. Apify's maximum total charge limits the run. The Actor checks available product capacity before delivering additional rows and records a spending-limit stop in SUMMARY. A run cap limits delivered products; it does not guarantee that many matches exist.
Monitor prices every day
Save a task with the exact SKUs, search terms or category links you want to monitor. In Apify Console, create a schedule, select that task, choose the schedule and timezone, and connect its completed-run webhook to your database or workflow.
Use retailer + priceScope + sku as the observation key and scrapedAt as observation time. Preserve identifiers as text, separate one-time and subscription prices, and retain null availability. resolvedStores supplies directory context only.
Every scheduled run creates a new snapshot and charges for its delivered products again. Save snapshots in your database for history. Read SUMMARY before accepting them as complete: empty searches, source failures and spending-limit stops have different meanings. Make, Zapier, n8n, Sheets and webhooks can consume the completed outputs.
API and automation
Use your own Apify token. Start a run, wait for completion, then read its dataset and SUMMARY:
curl -X POST \'https://api.apify.com/v2/acts/moggedhq~petco-scraper/runs' \-H 'Authorization: Bearer YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"searchTerms":["cat litter"],"maxItems":20}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("moggedhq/petco-scraper").call(run_input={"productIds": ["3748364", "2998871"], "maxItems": 2})rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('moggedhq/petco-scraper').call({searchTerms: ['dog food'], maxItems: 20});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Use with AI agents (MCP)
Connect to https://mcp.apify.com. Ask for Petco online prices, regular prices, recurring Autoship prices and pickup eligibility for your keywords or SKUs. Supply a cap and ask the assistant to inspect SUMMARY and retain online price scope. Locations add directory context.
Limits
This Actor covers the public national online catalog. Verified local store prices, shelf prices, selected-store stock counts and pickup availability at a specific store are outside coverage. Product rows keep store and inventory fields null. ZIP and store selection resolve public directory metadata only.
The catalog does not supply verified UPCs, advertised unit prices, promotion start/end dates, first-order Autoship offer amounts, personalized Petco Perks offers, product-page ingredients, guaranteed analysis or feeding directions through this route. Those fields stay null. includeDetails adds a catalog description only. Ratings can be shared across related sizes and flavors.
Pickup and same-day flags are catalog eligibility signals. They are not a promise that a selected store can fulfill an order. Taxes, shipping, basket conditions and checkout discounts are outside the observed online price. Prices and catalog availability can change after collection; the source's search index can also update at a different moment from a product page.
Requests are sequential and paced, with fresh sessions on retries. Saved page snapshots, dataset rows and billing receipts support reboot recovery. Source refusals and outages can still prevent complete output. The Actor does not log in, use customer account cookies, solve CAPTCHAs or call paid unblocking services. Store directory metadata used for exact store-number lookups can be reused for up to seven days and is timestamped in SUMMARY.
FAQ
Does each size have its own row? Yes. Each distinct priced variant SKU is a separate product. The parentProductId keeps related sizes together.
Does a ZIP change the price? No. ZIPs resolve nearby-store directory context in SUMMARY. Product prices remain explicitly national online observations.
Can I monitor an exact bag size? Yes. Supply the SKU from that size's product URL in productIds. A missing SKU never becomes a sibling-size result.
Is the Autoship price the first-order promotion? No. It is the published recurring catalog price. Initial-order incentives and account eligibility are separate.
Why is a field null? This route does not supply a verified value for that field. Unknown stock is not treated as out of stock.
Petco is a trademark of its respective owner. This independently developed tool is not affiliated with or endorsed by Petco.