Reviews.io Reviews Scraper
Pricing
Pay per event
Reviews.io Reviews Scraper
Extract public Reviews.io company reviews, ratings, reviewer names, dates, replies, and aggregate reputation metrics for monitoring.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract public customer reviews from Reviews.io company pages into a clean Apify dataset.
Reviews.io is used by ecommerce brands, travel companies, agencies, and service businesses to collect public customer feedback. This actor turns those public review pages into structured data you can export to CSV, JSON, Excel, Google Sheets, BI tools, or your own data warehouse.
What does Reviews.io Reviews Scraper do?
Reviews.io Reviews Scraper collects review records from public Reviews.io company review pages.
It reads pages such as:
https://www.reviews.io/company-reviews/store/loveholidays-com- Any other public Reviews.io
/company-reviews/store/...page - Plain store keys such as
loveholidays-com
For each review, it saves the rating, reviewer name, date, review text, source URL, company-level rating, and other traceability fields.
Who is it for?
This actor is useful for teams that need repeatable review monitoring.
- 🛍️ Ecommerce operators tracking customer sentiment
- 📈 SEO teams building reputation reports
- 🧑💼 Agencies monitoring many client brands
- 🧪 Product teams analyzing review themes
- 🧾 Compliance teams archiving public feedback
- 🏨 Travel and hospitality analysts comparing public ratings
- 🤖 AI teams feeding review text into summarization or classification workflows
Why use this actor?
Manual review collection is slow and error-prone. Reviews.io pages are readable in a browser, but exports are not always available for competitive research, public reputation monitoring, or multi-brand reporting.
This actor gives you:
- Structured rows instead of copied text
- Repeatable runs for daily or weekly monitoring
- A simple input format: URLs or store keys
- Low-cost HTTP scraping without a browser
- Dataset output that works with Apify integrations
What data can you extract?
| Field | Description |
|---|---|
storeKey | Reviews.io store slug from the URL |
companyName | Company or store name from page metadata |
companyUrl | Company website URL when exposed |
sourceUrl | First Reviews.io page requested for the store |
pageUrl | Exact page URL where the review was found |
pageNumber | Pagination counter used by the actor |
aggregateRating | Company-level average rating |
totalReviewCount | Company-level public review count |
reviewerName | Reviewer display name |
reviewDate | Review publication date |
rating | Review star rating |
reviewTitle | Review title or headline when present |
reviewText | Review body text |
verified | Verification signal when visible near the review |
companyReplyText | Public company response text when detected |
companyReplyDate | Public company response date when detected |
scrapedAt | Actor run timestamp |
How much does it cost to scrape Reviews.io reviews?
The actor uses pay-per-event pricing.
- A small start event is charged once per run.
- A review event is charged for each saved review.
- You control spend with
maxReviewsandmaxPagesPerCompany.
Typical first tests should use 10-25 reviews. Larger recurring monitoring runs can increase the limit after you confirm the target pages contain the data you need.
How to use Reviews.io Reviews Scraper
- Open the actor on Apify.
- Paste one or more Reviews.io company review URLs.
- Set
maxReviewsto the number of reviews you want. - Optionally set
maxPagesPerCompanyto limit pagination. - Run the actor.
- Download results from the dataset tab.
Input example
{"startUrls": [{ "url": "https://www.reviews.io/company-reviews/store/loveholidays-com" }],"maxReviews": 25,"maxPagesPerCompany": 3}
Input fields
startUrls
Paste full Reviews.io company review URLs. This is the recommended input for most users.
storeKeys
Optional list of plain store keys. Use this when you already know the Reviews.io slug and do not want to paste full URLs.
maxReviews
Total number of review records to save across all companies in the run.
maxPagesPerCompany
Pagination safety limit for each company page. Increase it when you need more historical reviews.
Output example
{"storeKey": "loveholidays-com","companyName": "loveholidays.com","companyUrl": "https://www.loveholidays.com/","sourceUrl": "https://www.reviews.io/company-reviews/store/loveholidays-com","pageUrl": "https://www.reviews.io/company-reviews/store/loveholidays-com","pageNumber": 1,"aggregateRating": 3.04,"totalReviewCount": 5081,"reviewerName": "Anonymous","reviewDate": "2026-05-26 07:34:13","rating": 5,"reviewTitle": null,"reviewText": "Everything went well...","verified": true,"companyReplyText": null,"companyReplyDate": null,"scrapedAt": "2026-05-26T09:00:00.000Z"}
Tips for best results
- Start with a low
maxReviewsvalue to validate the target store. - Use full Reviews.io URLs when possible.
- Run on a schedule to monitor new reviews over time.
- Keep the
pageUrlfield when deduplicating historical exports. - Combine
storeKeyandreviewDatewith review text for deduplication.
Common use cases
- Daily review monitoring for your own brand
- Competitive reputation reports
- Negative-review alerting workflows
- Customer sentiment analysis
- Support quality audits
- Product feedback clustering
- Public review archiving
Integrations
Apify datasets can be connected to many downstream systems.
- Google Sheets for stakeholder reports
- Slack or email alerts for low ratings
- BigQuery or Snowflake for analytics
- Make and Zapier automations
- Webhooks for review monitoring pipelines
- LLM summarization for weekly sentiment briefs
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/reviews-io-scraper').call({startUrls: [{ url: 'https://www.reviews.io/company-reviews/store/loveholidays-com' }],maxReviews: 25,maxPagesPerCompany: 3,});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/reviews-io-scraper').call(run_input={'startUrls': [{'url': 'https://www.reviews.io/company-reviews/store/loveholidays-com'}],'maxReviews': 25,'maxPagesPerCompany': 3,})print(run['defaultDatasetId'])
cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~reviews-io-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"startUrls":[{"url":"https://www.reviews.io/company-reviews/store/loveholidays-com"}],"maxReviews":25,"maxPagesPerCompany":3}'
MCP usage
Use this actor from MCP-compatible tools through Apify MCP Server.
MCP URL:
https://mcp.apify.com/?tools=automation-lab/reviews-io-scraper
Claude Code setup:
$claude mcp add apify-reviews-io https://mcp.apify.com/?tools=automation-lab/reviews-io-scraper
Claude Desktop JSON config:
{"mcpServers": {"apify-reviews-io": {"url": "https://mcp.apify.com/?tools=automation-lab/reviews-io-scraper"}}}
Example prompts:
- "Scrape the latest 25 Reviews.io reviews for this company URL."
- "Run the Reviews.io scraper and summarize the top complaints."
- "Compare average rating and recent review text for these two store keys."
Scheduling
You can schedule the actor in Apify Console.
Suggested schedules:
- Daily for active reputation monitoring
- Weekly for agency reporting
- Monthly for competitor snapshots
Data quality notes
The actor extracts public information exposed in the page HTML and JSON-LD. Some optional fields, such as company replies or verification badges, may not appear on every page or every review.
If a target page has no public reviews, the actor may finish with fewer rows than requested.
FAQ
Why did I get fewer reviews than requested?
The store may have fewer public reviews available in the fetched pages, or maxPagesPerCompany may be too low. Increase the page limit and run again.
Why is companyReplyText empty?
Not every review has a public company reply. The field is populated only when a response is visible and detected near the review.
Why does my URL fail?
Make sure the URL is a public Reviews.io company review page containing /company-reviews/store/.
Legality and ethical use
This actor is designed for public web data. Always use the data responsibly, respect applicable laws, and follow the terms that apply to your use case. Do not use scraped data for spam, harassment, or unlawful profiling.
Related scrapers
You may also be interested in other automation-lab reputation and review actors:
- https://apify.com/automation-lab/trustpilot-scraper
- https://apify.com/automation-lab/google-maps-reviews-scraper
- https://apify.com/automation-lab/yelp-scraper
Limitations
- The actor does not log in to private Reviews.io dashboards.
- It does not bypass access controls.
- It extracts what is publicly visible in the page response.
- Optional fields depend on what Reviews.io exposes for each store.
Version notes
Version 0.1 focuses on public company review pages, JSON-LD review extraction, pagination, and clean dataset output.
Support
If a public Reviews.io company page does not work as expected, share the run ID and input with support so the extractor can be checked against the current page structure.