RateMDs Physician Review Scraper
Pricing
Pay per usage
RateMDs Physician Review Scraper
Unlock valuable patient insights with this RateMDs scraper! Efficiently extract detailed physician reviews, ratings, and doctor profiles for healthcare market research and reputation management. For seamless and reliable data collection, using residential proxies is highly recommended.
Pricing
Pay per usage
Rating
5.0
(1)
Developer

Shahid Irfan
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Extract comprehensive physician reviews from RateMDs at scale. Collect detailed patient feedback including ratings, comments, dates, and metadata for research, analysis, and sentiment studies. Perfect for healthcare insights and patient experience monitoring.
Features
- Complete review extraction — Collect all patient feedback including ratings, comments, and timestamps.
- Detailed rating breakdown — Capture overall, staff, punctuality, helpfulness, and knowledge ratings.
- Comprehensive metadata — Gather review dates, helpful votes, verification status, and appointment types.
- Pagination support — Automatically continues through review pages to reach your target volume.
- Clean structured output — Get consistent dataset items ready for sentiment analysis and reporting.
- Production-ready operation — Designed for stable large-scale runs with practical defaults.
Use Cases
Patient Experience Analysis
Analyze patient feedback patterns across specialties and regions. Understand common concerns, treatment effectiveness, and satisfaction trends to improve healthcare delivery.
Healthcare Quality Research
Build comprehensive datasets for healthcare quality studies. Track patient sentiment, rating distributions, and feedback themes over time.
Provider Reputation Monitoring
Monitor physician reputation and patient satisfaction metrics. Identify trends in feedback and areas for service improvement.
Market Intelligence
Track patient preferences and treatment outcomes across providers. Support competitive analysis and service positioning strategies.
Sentiment Analysis
Extract review text for natural language processing and sentiment analysis. Build models to understand patient emotions and treatment experiences.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
doctorUrl | String | Yes | — | RateMDs physician profile URL to scrape reviews from. |
startUrl | String | No | — | Alternative way to provide physician profile URL. |
results_wanted | Integer | No | 20 | Target number of reviews to collect. Minimum is 20. |
max_pages | Integer | No | 10 | Maximum review pages to process per run. |
proxyConfiguration | Object | No | Residential proxy preset | Proxy settings for higher reliability at scale. |
Output Data
Each dataset item includes:
| Field | Type | Description |
|---|---|---|
review_id | Integer | Unique review identifier. |
doctor_id | Integer | Physician identifier. |
doctor_name | String | Physician full name. |
doctor_specialty | String | Physician specialty. |
doctor_slug | String | Physician URL slug. |
doctor_url | String | Physician profile URL. |
overall_rating | Number | Overall rating (1-5). |
staff_rating | Number | Staff rating (1-5). |
punctuality_rating | Number | Punctuality rating (1-5). |
helpfulness_rating | Number | Helpfulness rating (1-5). |
knowledge_rating | Number | Knowledge rating (1-5). |
review_text | String | Patient review comment. |
review_date | String | Review submission date. |
helpful_count | Integer | Number of helpful votes. |
flagged | Boolean | Whether review is flagged. |
verified_patient | Boolean | Whether reviewer is verified patient. |
visible | Boolean | Whether review is visible. |
featured | Boolean | Whether review is featured. |
appointment_type | String | Type of appointment (In-person, Virtual, etc.). |
page | Integer | Review page number. |
page_rank | Integer | Position on the page. |
total_pages | Integer | Total review pages available. |
total_reviews | Integer | Total reviews for the physician. |
profile_url | String | Physician profile URL. |
scraped_at | String | ISO timestamp of data extraction. |
Usage Examples
Basic Review Extraction
Extract all reviews from a specific physician profile.
{"doctorUrl": "https://www.ratemds.com/doctor-ratings/zahra-mazanderani-vancouver-bc-ca/","maxConcurrency": 2,"maxRequestsPerCrawl": 10,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Advanced Configuration
Configure timeouts and concurrency for reliable extraction.
{"doctorUrl": "https://www.ratemds.com/doctor-ratings/dr-john-doe-new-york-ny-us/","maxConcurrency": 1,"maxRequestsPerCrawl": 50,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]},"navigationTimeout": 90000,"requestHandlerTimeout": 120000}
Command Line Usage
# Run locallyapify run# Deploy to Apify platformapify push# Run on Apify platformapify call ratemds-physician-review-scraper --input input.json
Sample Output
{"review_id": 1234567,"doctor_id": 987654,"doctor_name": "Zahra Mazanderani","doctor_specialty": "Family Medicine","doctor_slug": "zahra-mazanderani-vancouver-bc-ca","doctor_url": "https://www.ratemds.com/doctor-ratings/zahra-mazanderani-vancouver-bc-ca/","overall_rating": 5,"staff_rating": 5,"punctuality_rating": 5,"helpfulness_rating": 5,"knowledge_rating": 5,"review_text": "Dr. Mazanderani is an excellent physician. She takes the time to listen to her patients and provides thorough care. Highly recommend!","review_date": "2024-01-15","helpful_count": 12,"flagged": false,"verified_patient": true,"visible": true,"featured": false,"appointment_type": "In-person","page": 1,"page_rank": 1,"total_pages": 2,"total_reviews": 20,"profile_url": "https://www.ratemds.com/doctor-ratings/zahra-mazanderani-vancouver-bc-ca/","scraped_at": "2024-01-20T10:30:00.000Z"}
"profile_url": "https://www.ratemds.com/doctor-ratings/dr-zach-olesinski-toronto-on-ca/", "verified": true, "accepting_patients": true, "location": "Toronto, Ontario", "address": "637 College Street West, Toronto ON M6G1B7", "phone": "(416) 402-9217", "website": "https://mahayahealth.com/", "clinic_locations_count": 2, "clinic_hours_count": 5, "page": 1, "page_rank": 2, "total_pages": 2518, "total_results": 25177, "list_page_url": "https://www.ratemds.com/best-doctors/?specialty=acupuncturist", "scraped_at": "2026-02-09T09:29:55.510Z" }
---## Tips for Best Results### Start with Focused Physician URLs- Use specific physician profile URLs from RateMDs.- Test with physicians who have multiple reviews first.- Validate extraction quality before scaling up.### Optimize Review Collection- Use residential proxies for reliable extraction.- Reduce `maxConcurrency` to 1-2 for stable runs.- Increase timeouts for slower connections.### Improve Reliability- Use proxy settings for consistent results.- Monitor for rate limiting and adjust delays.- Split large review extractions into multiple runs if needed.### Proxy ConfigurationFor reliable review extraction:```json{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Integrations
Connect your review dataset with:
- Google Sheets — Analyze patient sentiment and rating trends.
- Airtable — Build searchable review databases and dashboards.
- Make — Automate review analysis and alerting workflows.
- Zapier — Trigger notifications for new reviews or rating changes.
- Webhooks — Send review data directly to CRM or analytics systems.
- BI tools — Power sentiment analysis and physician performance dashboards.
Export Formats
- JSON — For APIs and developer workflows.
- CSV — For spreadsheet-based sentiment analysis.
- Excel — For business reporting and review management.
- XML — For legacy or enterprise review systems.
Frequently Asked Questions
How many reviews can I extract per physician?
You can extract all available reviews for a physician. The actor automatically handles pagination across review pages until all reviews are collected.
Does the actor handle review pagination automatically?
Yes. It continues through review pages until all reviews for the specified physician are extracted.
Why are some review fields empty?
Some reviews may not include all rating categories or metadata. Missing values are returned as null or appropriate defaults.
Can I extract reviews from multiple physicians?
Each run extracts reviews from one physician profile. Run multiple instances with different doctorUrl values for multiple physicians.
What if a physician has no reviews?
The actor will return an empty dataset. Check the physician's profile to confirm they have reviews before running.
How do I handle rate limiting?
Use residential proxies and reduce maxConcurrency to 1-2 for reliable extraction. The actor includes built-in delays between requests.
Can I collect data for multiple specialties or cities?
Yes. Run separate tasks for each specialty-location pair or provide dedicated start URLs per run.
Is review text included?
No. The output keeps review_count and rating metrics while avoiding verbose review text details.
What is included for clinic schedules?
You get structured, deduplicated clinic hours with day/time/timezone information.
Does the actor visit every profile page?
No. It focuses on listing data collection for speed and efficiency.
Support
For issues, improvements, or feature requests, use the Actor issue tracker or Apify Console support channels.
Resources
Legal Notice
This actor is designed for legitimate data collection and analysis use cases. You are responsible for complying with RateMDs terms, local laws, and applicable data-use regulations.