RateMDs Doctor Review & Rating Scraper
Pricing
Pay per event
RateMDs Doctor Review & Rating Scraper
Scrape doctor profiles, ratings, and patient reviews from RateMDs.com. Extract physician names, specialties, addresses, phone numbers, overall/staff/punctuality/helpfulness/knowledge ratings, and full review text. Covers the United States and Canada.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
Scrape doctor profiles and patient reviews from RateMDs.com. Returns names, specialties, addresses, phone numbers, multi-dimensional ratings (overall plus Staff, Punctuality, Helpfulness, Knowledge), and recent reviews for ~1M US and Canadian physicians.
RateMDs Scraper Features
- Browses by country, state or province, city, and specialty — any combination works
- Accepts direct profile URLs when you already know which doctors you want, which saves a listing walk
- Extracts aggregate rating plus the four per-category sub-ratings (Staff, Punctuality, Helpfulness, Knowledge) where the profile is RateMDs-native
- Returns recent reviews with date, rating, and full text — flattened into
YYYY-MM-DD | rating | bodystrings so they drop cleanly into a spreadsheet - Captures affiliated clinics with lat/long coordinates from embedded JSON-LD
- Covers both the United States and Canada, including Canadian provincial codes like ON, BC, QC
- Uses residential US proxies with Cloudflare-aware rendering — required, because RateMDs is behind a JS challenge
- Pay-per-event pricing — roughly $0.003 per doctor record plus a flat $0.10 actor-start fee
Who Uses RateMDs Doctor Data?
- Healthcare marketers — build outreach lists segmented by specialty, city, and patient rating bands
- Reputation-management firms — track client doctors' review counts and sentiment over time, which is most of the job
- Patient-acquisition platforms — seed provider directories with verified contact details and ratings
- Cross-border healthcare analysts — compare US and Canadian provider density or rating distributions in a single run
- Competitive-intelligence teams — map practice footprints by specialty across metro areas
How RateMDs Scraper Works
- You pick a mode. Either provide filters (countries, states, city, specialty) to browse the
/best-doctors/listings, or hand the scraper a list of direct/doctor-ratings/profile URLs. - A Playwright browser session loads each page behind the Cloudflare challenge. Anti-detection hooks and a US residential proxy do the heavy lifting so the page actually renders.
- On listing pages the scraper harvests every unique profile link and follows
?page=Npagination untilmaxItemsis reached. Profile URLs are deduplicated across specialty and geography filters, so the same doctor does not get scraped twice. - On profile pages the scraper reads the embedded JSON-LD — Physician schema plus Place entries for each clinic — merges in the per-category rating tiles and languages list from the DOM, and writes a single flat record to the dataset.
Input
Browse by specialty and country
{"countries": ["us"],"specialty": "dermatologist","maxItems": 50,"sp_intended_usage": "Dermatology lead gen for a medical device vendor","sp_improvement_suggestions": "n/a"}
Narrow by state and city
{"countries": ["ca"],"states": ["ON"],"city": "toronto","specialty": "chiropractor","maxItems": 100,"sp_intended_usage": "Market sizing for a Canadian chiropractic SaaS","sp_improvement_suggestions": "n/a"}
Scrape specific doctor profiles directly
{"profileUrls": [{ "url": "https://www.ratemds.com/doctor-ratings/3540782/Dr-Michael-Robbins-Markham-ON.html/" },{ "url": "https://www.ratemds.com/doctor-ratings/dr-angelo-ayar-tamarac-fl-us/" }],"maxItems": 10,"sp_intended_usage": "Profile verification","sp_improvement_suggestions": "n/a"}
Input Parameters
| Field | Type | Default | Description |
|---|---|---|---|
| countries | string[] | ["us"] | Country codes: us, ca. Controls the default browse scope when no states are given. |
| states | string[] | — | Two-letter US state or Canadian province codes (e.g. CA, NY, ON, BC). |
| city | string | — | City slug as used on RateMDs (e.g. los-angeles, new-york, toronto). Works best with a state filter. |
| specialty | string | All specialties | Specialty slug (e.g. cardiologist, dermatologist, family-gp). Leave empty to default to a rotating basket of common specialties. |
| profileUrls | array | — | Direct RateMDs profile URLs. When provided, all browse filters are ignored. |
| maxItems | integer | 15 | Maximum doctor records to return. Set to 0 for unlimited. |
| proxyConfiguration | object | US residential Apify proxy | Proxy settings. Residential is required — RateMDs blocks datacenter IPs. |
| sp_intended_usage | string | — | Required. Describe how you plan to use the data. |
| sp_improvement_suggestions | string | — | Required. Feedback on what could be improved. |
Supported specialties: Acupuncturist, Addiction Medicine, Allergist/Immunologist, Anesthesiologist, Audiologist, Bariatric/Weight Loss, Cardiologist, Cardiothoracic Surgeon, Chiropractor, Colorectal/Proctologist, Cosmetic/Plastic Surgeon, Dentist, Dermatologist, Dietitian, ENT/Otolaryngologist, Emergency/Critical Care, Endocrinologist, Endodontist, Family/GP, Gastroenterologist, Geneticist, Gynecologist/OBGYN, Homeopath, Infectious Disease, Internist/Geriatrician, Massage Therapist, Naturopath, Nephrologist, Neurologist, Neurosurgeon, Nurse Practitioner, Occupational Therapist, Oncologist, Ophthalmologist, Optician, Optometrist, Oral/Maxillofacial Surgeon, Orthodontist, Orthopedic Surgeon, Osteopath, Pain Management, Pathologist, Pediatrician, Periodontist, Physical Therapist, Physiatrist, Plastic Surgeon, Podiatrist, Psychiatrist, Psychologist, Pulmonologist, Radiologist, Respirologist, Rheumatologist, Sports Medicine, Surgeon, Urologist, Vascular Surgeon.
RateMDs Scraper Output Fields
{"doctor_name": "Dr. Michael Robbins","specialty": "Chiropractor","practice_name": "Dr. Michael G. Robbins","street_address": "326 Main Street North","city": "Markham","state": "ON","zip": "L3P 1Z1","country": "ca","phone": "(905) 471-6696","website": "http://markhamchiropractic.com/","photo_url": "https://cdn1.ratemds.com/media/doctors/doctor/image/doctor-michael-robbins-chiropractor.jpg","latitude": 43.887057,"longitude": -79.263348,"overall_rating": 4.99,"staff_rating": 5,"punctuality_rating": 5,"helpfulness_rating": 5,"knowledge_rating": 5,"review_count": 866,"reviews": ["2024-07-27 | 5.0 | Dr. Robbins is a great chiropractor and a wonderful person. Very knowledgeable and his treatments are very effective.","2024-07-16 | 4.0 | It was a nice experience and friendly staff. Thank you"],"clinics": ["Dr. Michael G. Robbins | Markham, ON | https://www.ratemds.com/clinic/ca-on-markham-dr-michael-g-robbins/"],"opening_hours": [],"languages": ["English"],"breadcrumb_trail": "Doctors > Ontario > Markham > Chiropractor","profile_url": "https://www.ratemds.com/doctor-ratings/3540782/Dr-Michael-Robbins-Markham-ON.html/","scraped_at": "2026-04-18T01:33:08.209Z"}
| Field | Type | Description |
|---|---|---|
| doctor_name | string | Full doctor name including title (e.g. Dr. Angelo Ayar) |
| specialty | string | Primary medical specialty |
| practice_name | string | Primary clinic or practice name |
| street_address | string | Street address of the primary practice |
| city | string | Practice city |
| state | string | Two-letter state or province code |
| zip | string | Postal code |
| country | string | us or ca |
| phone | string | Practice phone number |
| website | string | External practice website, if listed |
| photo_url | string | Doctor headshot URL |
| latitude | number | Latitude of the primary practice |
| longitude | number | Longitude of the primary practice |
| overall_rating | number | Aggregate rating on a 0–5 scale |
| staff_rating | number | Staff rating (native RateMDs profiles only, else null) |
| punctuality_rating | number | Punctuality rating (native profiles only) |
| helpfulness_rating | number | Helpfulness rating (native profiles only) |
| knowledge_rating | number | Knowledge rating (native profiles only) |
| review_count | number | Total number of patient reviews |
| reviews | string[] | Recent reviews, each formatted as YYYY-MM-DD | rating | text |
| clinics | string[] | Affiliated clinics, each formatted as Clinic Name | City, State | URL |
| opening_hours | string[] | Weekly opening hours in schema.org format (e.g. Mo 08:00-16:00) |
| languages | string[] | Languages spoken by the doctor |
| breadcrumb_trail | string | Country > State > City > Specialty trail |
| profile_url | string | Full RateMDs profile URL |
| scraped_at | string | ISO-8601 timestamp for when the record was collected |
FAQ
How many doctors does the RateMDs Scraper cover?
RateMDs Scraper can reach roughly 1 million physician profiles across the US and Canada, given enough maxItems and wide enough filters. A single-specialty national crawl can return tens of thousands of records in a single run; a national crawl across all specialties is a multi-hour job.
Does the RateMDs Scraper need residential proxies?
Yes. RateMDs sits behind a Cloudflare managed challenge that blocks datacenter IPs. The actor defaults to US Apify residential proxies, which is the correct setup. Running without residential proxies will stall on "Just a moment..." pages and return nothing.
Why are some per-category ratings null?
The RateMDs Scraper returns staff_rating, punctuality_rating, helpfulness_rating, and knowledge_rating only for native RateMDs profiles. Partner-served profiles (for example, those backed by doctor.com) expose only the aggregate rating, so those four sub-fields are null. This is a RateMDs data limitation, not a scraper limitation.
Can I scrape a specific list of doctors?
Yes. Drop their RateMDs profile URLs into the profileUrls field and the actor will visit each one directly, skipping the browse step entirely. This is the fastest path when you have known targets — verification, enrichment, monitoring.
How much does it cost to run the RateMDs Scraper?
Pay-per-event: roughly $0.003 per doctor record plus a flat $0.10 per actor start. A 1,000-record run is about $3.10. Actual cost depends on run duration and memory — check your Apify usage dashboard for exact numbers.
Is it legal to scrape RateMDs?
The RateMDs Scraper collects publicly available information from RateMDs. You are responsible for ensuring your use of the data complies with applicable laws, including HIPAA where relevant. The actor does not access any private account data, patient records, or protected health information.
Need More Features?
Need additional fields, bulk national exports, or a different review platform? Get in touch.
Why Use RateMDs Scraper?
- Multi-dimensional ratings — Returns the four per-category scores RateMDs exposes (Staff, Punctuality, Helpfulness, Knowledge), not just the aggregate. Most competitors drop these.
- US plus Canada in one actor — Query Canadian provinces the same way you query US states. If you need a single healthcare dataset that covers both markets, this is it.
- Priced per record — You pay $0.003 for every doctor that comes back, which means a small test run costs pocket change and a production crawl is still cheaper than writing the scraper yourself.