PetSmart Product Reviews Scraper
Pricing
from $0.01 / 1,000 review extracteds
PetSmart Product Reviews Scraper
🐾 Extract public PetSmart product ratings, review text, reviewer context, media, helpfulness, and aggregate rating statistics by product ID.
Pricing
from $0.01 / 1,000 review extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Collect public PetSmart product reviews as clean, structured data.
Use product IDs from PetSmart URLs and receive review text, star ratings, reviewer context, helpfulness, media, dates, recommendation flags, and product-level rating statistics.
No PetSmart account, browser, cookies, or proxy setup is required.
What does PetSmart Product Reviews Scraper do?
PetSmart Product Reviews Scraper reads PetSmart's public review feed for one or more products.
It can:
- 🐾 collect reviews for up to 50 product IDs in one run;
- ⭐ filter between minimum and maximum star ratings;
- 📅 filter by submission date;
- 🔃 sort newest, oldest, or most helpful first;
- 🖼️ preserve public review photos and videos;
- 📊 add product review totals and average ratings;
- 🧾 export records to JSON, CSV, Excel, XML, or RSS through Apify.
Each dataset row represents one review.
Who is it for?
Pet brands
Monitor feedback about food, toys, grooming products, and accessories sold through PetSmart.
Marketplace and retail teams
Compare customer sentiment, recurring complaints, and launch response across products.
Product and quality teams
Feed recent low-star reviews into issue-tracking or voice-of-customer workflows.
Consumer researchers
Build reproducible datasets for category, recommendation, rating, and language analysis.
Data teams
Schedule collection and load normalized review records into a warehouse or dashboard.
Why use this PetSmart review extractor?
Manual review collection is slow and difficult to repeat.
This Actor gives you:
- predictable review-level JSON;
- stable product attribution;
- automatic pagination;
- review ID deduplication;
- bounded retry handling;
- optional date and rating boundaries;
- direct source URLs for verification;
- Apify scheduling, API, webhook, and integration support.
The implementation uses a lightweight public JSON route rather than rendering full product pages.
How to find a PetSmart product ID
Open a PetSmart product page.
Most PetSmart product URLs end with a number before .html.
For example:
https://www.petsmart.com/dog/food/.../product-name-1095.html
The product ID is:
1095
Paste that value into productIds.
Use strings so leading zeros are preserved if PetSmart introduces them.
How to scrape PetSmart product reviews
- Open the Actor input page.
- Add one or more values to PetSmart product IDs.
- Choose a small maximum for your first run.
- Optionally set rating or submission-date filters.
- Select newest, oldest, or most helpful order.
- Click Start.
- Open the Dataset tab when the run finishes.
- Preview or download the review records.
The default input collects 20 recent written reviews for product 1095.
Input
| Field | Type | Default | Description |
|---|---|---|---|
productIds | string[] | ["1095"] | PetSmart product IDs to collect |
maxReviewsPerProduct | integer | 20 | Maximum matching reviews saved for each product |
sort | string | newest | newest, oldest, or helpful |
minRating | integer | none | Minimum star rating from 1 to 5 |
maxRating | integer | none | Maximum star rating from 1 to 5 |
submittedAfter | string | none | ISO date or date-time lower bound |
submittedBefore | string | none | ISO date or date-time upper bound |
includeRatingsOnly | boolean | false | Include submissions without written text |
A single run accepts up to 50 product IDs.
Input examples
Recent reviews
{"productIds": ["1095"],"maxReviewsPerProduct": 50,"sort": "newest"}
Critical feedback monitor
{"productIds": ["1095", "51031"],"maxReviewsPerProduct": 200,"minRating": 1,"maxRating": 3,"submittedAfter": "2026-01-01","sort": "newest"}
Five-star media research
{"productIds": ["1095"],"maxReviewsPerProduct": 100,"minRating": 5,"maxRating": 5,"includeRatingsOnly": false}
Output data
| Field | Description |
|---|---|
reviewId | Stable public review identifier |
productId | PetSmart product identifier |
productName | Product name from the public feed |
productUrl | Canonical product page when available |
brand | Product brand |
rating | Overall star rating |
ratingRange | Maximum rating value, normally 5 |
title | Review headline |
text | Written review body |
reviewerNickname | Public display nickname |
reviewerLocation | Public location when supplied |
submittedAt | Review submission date-time |
modifiedAt | Last public modification date-time |
isRecommended | Whether the reviewer recommends the product |
isRatingsOnly | Whether no written text was submitted |
isVerified | Verified-purchaser badge when exposed |
isSyndicated | Whether the review came from another source |
syndicationSource | Public syndication source when available |
helpfulVotes | Positive feedback votes |
unhelpfulVotes | Negative feedback votes |
totalFeedbackVotes | Total feedback votes |
badges | Public review badges |
context | Public contextual answers |
secondaryRatings | Quality, value, or other sub-ratings |
media | Public photo and video records |
productReviewCount | Product-wide review count |
productAverageRating | Product-wide average rating |
matchingReviewCount | Reviews matching this run's filters |
sourceUrl | Source page for verification |
scrapedAt | UTC extraction timestamp |
Output example
{"reviewId": "252840442","productId": "1095","productName": "Freshpet Vital Grain Free Beef & Bison Adult Dog Food","rating": 5,"ratingRange": 5,"title": "Fresh Product","text": "I started buying this product a few months ago and my doggo loves it!","reviewerNickname": "Autumn","submittedAt": "2026-07-15T19:10:16.000+00:00","isRatingsOnly": false,"isSyndicated": false,"helpfulVotes": 0,"unhelpfulVotes": 0,"totalFeedbackVotes": 0,"badges": [],"context": {},"secondaryRatings": {},"media": [],"productReviewCount": 803,"productAverageRating": 4.74346201743462,"matchingReviewCount": 644,"sourceUrl": "https://www.petsmart.com/dog/food/...-1095.html","scrapedAt": "2026-07-16T00:00:00.000Z"}
Optional fields are omitted when PetSmart does not publish them.
How much does it cost to scrape PetSmart reviews?
The Actor uses pay-per-event pricing.
A small one-time start charge covers run initialization, then each saved review is charged as one review event.
The BRONZE rate is $0.000022152 per saved review, with tiered rates from $0.000025475 on FREE down to $0.00001 on PLATINUM and DIAMOND, plus a $0.005 start event.
You are not charged a review event for records that are not saved.
Check the live Actor pricing tab for the authoritative rate for your Apify plan.
Scheduling a PetSmart review monitor
Review monitoring is more useful when repeated.
Create an Apify schedule with:
- a stable list of product IDs;
sortset tonewest;- a recent
submittedAftervalue; - a webhook that forwards completed datasets.
Use reviewId as the deduplication key in your destination.
Update the date boundary periodically or deduplicate downstream.
Integrations
Google Sheets
Send new review rows to a shared product or reputation dashboard.
Slack or Microsoft Teams
Trigger alerts when low-star reviews appear for monitored products.
Zapier and Make
Route review records to support, CRM, or issue-tracking workflows without custom infrastructure.
Webhooks
Notify your own service when a scheduled dataset is ready.
Data warehouses
Load JSON or CSV exports into BigQuery, Snowflake, Redshift, or PostgreSQL.
JavaScript API usage
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/petsmart-product-reviews-scraper').call({productIds: ['1095'],maxReviewsPerProduct: 50,sort: 'newest',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python API usage
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/petsmart-product-reviews-scraper').call(run_input={'productIds': ['1095'],'maxReviewsPerProduct': 50,'sort': 'newest',})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL API usage
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~petsmart-product-reviews-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"productIds":["1095"],"maxReviewsPerProduct":50,"sort":"newest"}'
Read the returned run object, wait for completion, then fetch its default dataset.
Use with Apify MCP
Claude Code setup
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/petsmart-product-reviews-scraper"
Claude Desktop setup
Add the server under Settings → Developer → Edit Config.
Cursor setup
Add the same server under Settings → Tools & MCP → Add custom MCP.
VS Code setup
Add an HTTP MCP server to your workspace MCP configuration.
Claude Desktop and Cursor can use this mcpServers JSON:
{"mcpServers": {"apify-petsmart-reviews": {"url": "https://mcp.apify.com?tools=automation-lab/petsmart-product-reviews-scraper"}}}
Authorize your Apify account when the client opens the sign-in flow.
Example prompts:
- “Collect the 50 newest reviews for PetSmart product 1095.”
- “Find one- to three-star feedback since January for these product IDs.”
- “Summarize recurring quality complaints and include source review IDs.”
- “Compare average product ratings and recommendation signals.”
MCP results can feed directly into analysis while the full records remain in the Apify dataset.
Tips for better results
- Start with 20 reviews while validating a product ID.
- Use a date filter for recurring monitors.
- Use
oldestwhen creating a historical timeline. - Use
helpfulto prioritize reviews endorsed by other shoppers. - Keep rating-only records disabled for text analysis.
- Enable rating-only records for rating-distribution research.
- Store
reviewIdin downstream systems for deduplication. - Review source URLs before making business decisions.
Data freshness and completeness
The Actor reads the public review feed available at run time.
Moderation, deletion, syndication, and product-catalog changes are controlled by PetSmart and its review provider.
matchingReviewCount reflects the active input filters.
productReviewCount can be larger because it represents product-wide aggregate statistics.
Date and rating filters may naturally return no records.
Limitations
- V1 accepts product IDs, not arbitrary search terms.
- Product URL parsing is not performed automatically.
- Only publicly exposed review fields are returned.
- Some reviews omit text, recommendation, location, badges, or media.
- PetSmart or its review provider can change public client configuration.
- A review removed upstream cannot be recovered by a later run.
- The Actor does not infer sentiment or product quality.
Is scraping PetSmart reviews legal?
This Actor accesses publicly displayed product-review data.
Public availability does not remove every legal or contractual obligation.
Use the data for a legitimate purpose, collect only what you need, and comply with applicable law, PetSmart's terms, and your organization's policies.
Do not use reviewer information for harassment, identity resolution, discrimination, or unsolicited targeting.
The Actor emits public display nicknames and public context only; it does not request private accounts or credentials.
Troubleshooting
The dataset is empty
Verify the product ID and remove restrictive rating or date filters.
A valid product can also have no matching reviews.
The run says the product ID is invalid
Pass only the identifier, not a full URL.
Allowed IDs contain letters, numbers, underscores, or hyphens.
minRating fails
Use an integer from 1 through 5 and ensure it does not exceed maxRating.
A date filter fails
Use an ISO value such as 2026-01-01 or 2026-01-01T00:00:00Z.
Counts differ from the product page
The written-review filter excludes rating-only submissions by default, while product-wide totals may include them.
Related scrapers
Build a broader product-review workflow with other Automation Lab actors:
Use separate source-specific actors because each retailer exposes different identifiers, fields, and collection routes.
Frequently asked questions
Can I collect multiple products in one run?
Yes. Add up to 50 values to productIds. The review limit applies separately to each product.
Does it require a PetSmart login?
No. The minimum workflow uses a public anonymous review feed.
Does it need a proxy?
No proxy is required for the current public API route.
Can I retrieve only negative reviews?
Yes. Set minRating to 1 and maxRating to 2 or 3.
Can I retrieve only reviews with text?
Yes. Leave includeRatingsOnly set to false, which is the default.
How do I avoid duplicates?
The Actor deduplicates review IDs during each run. Use reviewId to deduplicate across scheduled runs.
Can I export to Excel?
Yes. Open the dataset and select Excel, CSV, JSON, XML, or another supported format.
Is sentiment analysis included?
No. Export review text to your preferred NLP, LLM, or analytics workflow.
Support
If a run fails, share the run URL and the non-sensitive portion of your input through the Actor issue form.
Include the affected product ID, expected filter behavior, and whether the product page currently displays reviews.
Do not post Apify tokens or other credentials.