ZocDoc Scraper
Pricing
$29.99/month + usage
ZocDoc Scraper
Scrape ZocDoc doctors, patient reviews, and appointment availability without login. Search by specialty, location, and insurance. Extract ratings, reviews, availability slots, and full provider profiles.
Pricing
$29.99/month + usage
Rating
0.0
(0)
Developer

SilentFlow
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
by SilentFlow
Unlimited ZocDoc web scraper to crawl doctors, patient reviews, and appointment availability without login. Search by specialty, location, insurance, and more.
Why use this scraper?
- No login required: Scrape all public ZocDoc data without authentication
- Comprehensive data: Doctors, reviews, ratings, availability, and full provider profiles
- Flexible input: Scrape by URL or search by specialty and location
- Advanced filtering: Sort by rating, filter by telehealth, gender, day, and insurance
- High reliability: Built-in retry logic and residential proxy support
Use cases
| Industry | Application |
|---|---|
| Healthcare analytics | Analyze doctor ratings, wait times, and patient satisfaction |
| Market research | Map healthcare provider distribution across regions |
| Insurance analysis | Track which providers accept specific insurance plans |
| Patient experience | Monitor review sentiment and bedside manner ratings |
| Competitor intelligence | Benchmark practice performance against competitors |
| Appointment tracking | Monitor availability trends for popular specialties |
Input parameters
URL scraping
| Parameter | Type | Description |
|---|---|---|
startUrls | array | ZocDoc URL(s) to scrape (search pages, doctor profiles, practice pages) |
Supported URL types:
- Search pages:
https://www.zocdoc.com/search?address=New+York&dr_specialty=dentist - Doctor profiles:
https://www.zocdoc.com/doctor/john-smith-do-123456 - Practice pages:
https://www.zocdoc.com/practice/downtown-dental-12345
Specialty search
| Parameter | Type | Description |
|---|---|---|
searches | array | Specialty names to search (e.g., "Dentist", "Dermatologist") |
location | string | City, state, or zip code (default: "New York, NY") |
insurance | string | Insurance carrier name (optional) |
Sorting & filtering
| Parameter | Type | Default | Options |
|---|---|---|---|
sort | string | Default | Default, BestMatch, HighestRated, SoonestAvailable |
dayFilter | string | AnyDay | AnyDay, Today, Tomorrow, NextThreeDays, NextTwoWeeks |
gender | string | -1 | -1 (Any), 1 (Male), 2 (Female) |
offersTelehealth | boolean | false | Only telehealth providers |
seesChildren | boolean | false | Only pediatric providers |
Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
maxItems | integer | 50 | Maximum total items to save |
maxDoctors | integer | 20 | Maximum doctors per search |
maxReviews | integer | 10 | Maximum reviews per doctor |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
scrapeProfiles | boolean | true | Visit doctor profiles for detailed data |
skipReviews | boolean | false | Skip review extraction |
skipAvailability | boolean | false | Skip availability extraction |
Advanced
| Parameter | Type | Default | Description |
|---|---|---|---|
scrollTimeout | integer | 30 | Request timeout in seconds |
debugMode | boolean | false | Enable detailed logging |
proxy | object | residential | Proxy configuration |
Output data
Doctor example
{"id": "123456","url": "https://www.zocdoc.com/doctor/john-smith-do-123456","name": "John Smith, DO","firstName": "John","lastName": "Smith, DO","title": "DO","specialty": "Dentist","specialties": ["Dentist", "Cosmetic Dentistry"],"address": "123 Main St, Suite 200","city": "New York","state": "NY","zipCode": "10001","phone": "(212) 555-0100","latitude": 40.7128,"longitude": -74.006,"overallRating": 4.8,"bedsideMannerRating": 4.9,"waitTimeRating": 4.6,"reviewCount": 142,"profilePhotoUrl": "https://d1k13df5m14swc.cloudfront.net/photos/...","education": ["NYU College of Dentistry - DDS"],"boardCertifications": ["American Board of Dentistry"],"languages": ["English", "Spanish"],"insurancesAccepted": ["Aetna", "Blue Cross", "Cigna", "United Healthcare"],"gender": "Male","yearsOfExperience": 15,"practiceName": "Downtown Dental Care","bio": "Dr. Smith specializes in...","isAcceptingNewPatients": true,"offersTelehealth": false,"nextAvailableDate": "2024-06-15","scrapedAt": "2024-06-14T10:30:00Z","dataType": "doctor"}
Review example
{"id": "review-1","doctorName": "John Smith, DO","doctorUrl": "https://www.zocdoc.com/doctor/john-smith-do-123456","reviewRating": 5.0,"reviewBedsideManner": 5.0,"reviewWaitTime": 4.0,"reviewText": "Dr. Smith was excellent. Very thorough and took the time to explain everything.","reviewDate": "2024-05-20","isVerified": true,"scrapedAt": "2024-06-14T10:30:00Z","dataType": "review"}
Availability example
{"doctorName": "John Smith, DO","doctorUrl": "https://www.zocdoc.com/doctor/john-smith-do-123456","date": "2024-06-15","timeSlots": ["9:00 AM", "10:30 AM", "2:00 PM", "3:30 PM"],"appointmentType": "in-person","locationName": "Downtown Dental Care","address": "123 Main St, Suite 200","scrapedAt": "2024-06-14T10:30:00Z","dataType": "availability"}
Data fields
| Category | Fields |
|---|---|
| Identity | id, url, name, firstName, lastName, title |
| Specialty | specialty, specialties, boardCertifications |
| Location | address, city, state, zipCode, phone, latitude, longitude |
| Ratings | overallRating, bedsideMannerRating, waitTimeRating, reviewCount |
| Profile | profilePhotoUrl, education, languages, bio, gender, yearsOfExperience |
| Practice | practiceName, insurancesAccepted, isAcceptingNewPatients, offersTelehealth |
| Availability | nextAvailableDate, date, timeSlots, appointmentType, locationName |
| Reviews | reviewRating, reviewBedsideManner, reviewWaitTime, reviewText, reviewDate, isVerified |
| Meta | scrapedAt, dataType |
Examples
Search for dentists in New York
{"searches": ["Dentist"],"location": "New York, NY","maxItems": 50,"maxDoctors": 20,"maxReviews": 10,"sort": "HighestRated"}
Search for therapists with telehealth
{"searches": ["Therapist"],"location": "Los Angeles, CA","offersTelehealth": true,"maxItems": 100,"maxDoctors": 50}
Scrape a specific doctor profile
{"startUrls": [{"url": "https://www.zocdoc.com/doctor/john-smith-do-123456"}],"maxReviews": 50}
Search multiple specialties
{"searches": ["Dermatologist", "Primary Care Doctor", "Pediatrician"],"location": "Chicago, IL","sort": "SoonestAvailable","dayFilter": "NextThreeDays","maxItems": 200,"maxDoctors": 30}
Integrations
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("silentflow/zocdoc-scraper").call(run_input={"searches": ["Dentist"],"location": "New York, NY","maxItems": 50,"maxDoctors": 20,"maxReviews": 10,"sort": "HighestRated"})for item in client.dataset(run["defaultDatasetId"]).iterate_items():if item["dataType"] == "doctor":print(f"[{item['overallRating']}] {item['name']} - {item['specialty']}")elif item["dataType"] == "review":print(f" ⭐ {item['reviewRating']}: {item['reviewText'][:80]}")elif item["dataType"] == "availability":print(f" 📅 {item['date']}: {', '.join(item['timeSlots'])}")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('silentflow/zocdoc-scraper').call({searches: ['Dermatologist'],location: 'San Francisco, CA',maxItems: 100,sort: 'HighestRated'});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => {if (item.dataType === 'doctor') {console.log(`[${item.overallRating}] ${item.name} - ${item.specialty}`);}});
Performance & limits
| Metric | Value |
|---|---|
| Results per page | up to 10 |
| Pages per search | up to 10 (ZocDoc limit) |
| Max doctors per search | ~100 |
| Supported content | Doctors, Reviews, Availability |
Tips for best results
- Use specific specialties: Target specific specialties for focused results
- Set realistic limits: Start with
maxItems: 50to test before large scrapes - Use residential proxy: Enabled by default for best reliability with ZocDoc
- Skip what you don't need: Use
skipReviewsandskipAvailabilityfor faster scraping - Disable profile scraping: Set
scrapeProfiles: falsefor quick search-only results - Filter by day: Use
dayFilterto find doctors with immediate availability
FAQ
Q: Can I scrape all doctors in a city? A: ZocDoc limits search results to ~10 pages per specialty. Search multiple specialties for broader coverage.
Q: Why are some fields empty?
A: Not all doctors have complete profiles. Enable scrapeProfiles for maximum data.
Q: How often can I run the scraper? A: No limits on frequency. Use residential proxies for best results.
Q: What happens if ZocDoc blocks the scraper? A: The scraper automatically rotates proxies and retries. If all attempts fail, try again later.
Q: Can I filter by insurance?
A: Yes, use the insurance parameter with the carrier name.
Support
Need help? We're here for you:
- Bug reports: Open an issue on the actor page
- Questions: Message us via Apify console
- Feature requests: Let us know what you need
- Custom solutions: Contact us for enterprise integrations or high-volume needs
Check out our other scrapers: SilentFlow on Apify