RateMDs Scraper — Doctor Leads, Phone + Rating & Reviews
Pricing
$2.70 / 1,000 per doctor returneds
RateMDs Scraper — Doctor Leads, Phone + Rating & Reviews
Scrape the RateMDs directory by city and specialty — doctor name, specialty, phone, full street address, postal code, star rating, review count and the latest patient reviews. US + Canada. Public data, no login. Export JSON/CSV/Excel.
Pricing
$2.70 / 1,000 per doctor returneds
Rating
0.0
(0)
Developer
Scrapers Delight
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
6
Monthly active users
6.8 hours
Issues response
10 hours ago
Last modified
Categories
Share
RateMDs Scraper — doctor leads with phone, rating & patient reviews
Turn the RateMDs directory into a clean lead list. Pick a specialty and a city, and get one row per doctor: name, specialty, office phone, full street address and postal code, star rating and review count, the doctor's Staff / Punctuality / Helpfulness / Knowledge ratings, and patient reviews — each with its review ID, star rating, the four sub-ratings, date and full text. Get the latest 10 per doctor, or every review a doctor has.
Covers the United States and Canada. Public data, no login, no API key.
What you get (one row per doctor)
| Field | Example |
|---|---|
name | Dr. Gary Weinstein |
specialty | family-gp (the RateMDs specialty you searched) |
telephone | (416) 485-9044 |
streetAddress / city / region / postalCode | 2401 Yonge Street, Suite 210 / Toronto / ON / M4P 3H1 |
country | CA |
latitude / longitude | 43.70… / -79.39… (present on some profiles) |
ratingValue / reviewCount / bestRating | 4.75 / 282 / 5 |
staffRating / punctualityRating / helpfulnessRating / knowledgeRating | 4.71 / 4.7 / 4.78 / 4.8 (the doctor's averages) |
reviews[] | patient reviews — see below |
reviewsIncluded | how many review objects are attached to this row |
imageUrl | profile photo, if any |
doctorId | the numeric RateMDs id, or the canonical profile URL for id-less profiles — the dedupe key |
profileUrl | canonical RateMDs profile URL |
searchSpecialty, searchLocation, sourceListingUrl, scrapedAt | provenance |
Each review in reviews[]
| Field | Example |
|---|---|
reviewId | 5664460 (RateMDs' own review id) |
rating | 5 (the review's overall score) |
staff / punctuality / helpfulness / knowledge | 5 / 5 / 5 / 5 (1-5 each) |
datePublished | 2026-09-04T14:09:15-04:00 |
body | full review text |
author / authorCity / authorRegion | User from Toronto, ON / Toronto / ON |
appointmentType | In-person |
helpfulVotes | 0 |
raterVerified | false |
hasDoctorReply | true when the doctor answered the review |
Input
{"specialties": ["family-gp", "dentist"],"locations": ["Toronto, ON", "Los Angeles, CA"],"maxItems": 200,"maxPagesPerSearch": 5,"includeReviews": true,"maxReviewsPerDoctor": 10,"minRating": "0","minReviewCount": 0,"requirePhone": false,"proxyConfiguration": { "useApifyProxy": false }}
- specialties — everyday name (
Family Doctor,Dentist,Dermatologist) or the exact URL slug. Common slugs:family-gp,dentist,dermatologist,gynecologist-obgyn,pediatrician,cardiologist,psychiatrist,psychologist,optometrist,ophthalmologist,chiropractor,physical-therapist-physiotherapist,ear-nose-and-throat-ent,orthodontist,urologist,neurologist. Each specialty is crossed with each location. - locations —
City, ST(e.g.Toronto, ON,Los Angeles, CA). A city is required; RateMDs organizes listings by city. US states and Canadian provinces are both supported. - startUrls — optionally paste RateMDs URLs directly:
/best-doctors/…listing pages (enumerated and paginated for you) or/doctor-ratings/…profile pages (scraped directly). - maxReviewsPerDoctor — how many reviews per doctor.
10(default) returns the latest page. Set it higher (up to5000) to page through a doctor's reviews 10 at a time, up to all of them — e.g. a doctor with 282 reviews returns all 282.0= no reviews. Each extra 10 reviews is one more page request, so very large review pulls take longer. - Filters —
minRating,minReviewCount,requirePhonedrop rows that don't qualify (you're only billed for rows actually delivered).
How it works
- For each city × specialty it opens the RateMDs listing page
https://www.ratemds.com/best-doctors/{state}/{city}/{specialty}/and follows?page=Npagination, collecting each doctor's profile URL. (Listings genuinely differ per city+specialty —toronto/family-gpandtoronto/dentistreturn disjoint doctor sets.) - Each profile page carries a
schema.orgPhysician JSON-LD block (name, phone, address, rating) and RateMDs' own embedded review data (review id, the four sub-ratings, text, date); the actor reads both as structured data — never a regex over the page. For more than 10 reviews it follows the profile's own?page=Nreview pages up to the doctor's stated total. - Rows are deduplicated on the doctor id, so a doctor reachable from two searches is billed once.
RateMDs puts a browser check in front of its pages; the actor clears it automatically. It connects directly by default and switches itself to Apify RESIDENTIAL proxy if RateMDs refuses a direct request.
Pricing
Pay-per-result: $0.0027 per doctor row delivered (deduplicated), with all the reviews you ask for included. No charge for pages that fail or for duplicates.