ZocDoc Scraper - Pay Per Result avatar
ZocDoc Scraper - Pay Per Result

Pricing

from $5.00 / 1,000 results

Go to Apify Store
ZocDoc Scraper - Pay Per Result

ZocDoc Scraper - Pay Per Result

Pay-per-result ZocDoc scraper at $0.05 per result. Scrape doctors, patient reviews, and appointment availability without login. Search by specialty, location, and insurance. No compute costs - only pay for data you receive.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

by SilentFlow

Pay-per-result ZocDoc scraper. Only pay for the data you actually receive - $0.05 per result. Scrape doctors, patient reviews, and appointment availability without login. No compute costs, proxies included.

Why Pay Per Result?

FeatureStandardPay Per Result
Pricing modelCompute time + proxyPer result only
Cost per resultVariableFixed $0.05
Proxy costsExtraIncluded
Failed runsStill chargedNo charge
Budget controlHard to predictPredictable

Cost examples

ScenarioResultsCost
20 doctors from search20$1.00
1 doctor + 50 reviews51$2.55
100 doctors + reviews + availability300$15.00

Use cases

IndustryApplication
Healthcare analyticsAnalyze doctor ratings, wait times, and patient satisfaction
Market researchMap healthcare provider distribution across regions
Insurance analysisTrack which providers accept specific insurance plans
Patient experienceMonitor review sentiment and bedside manner ratings
Competitor intelligenceBenchmark practice performance against competitors
Appointment trackingMonitor availability trends for popular specialties

Input parameters

URL scraping

ParameterTypeDescription
startUrlsarrayZocDoc 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
ParameterTypeDescription
searchesarraySpecialty names to search (e.g., "Dentist", "Dermatologist")
locationstringCity, state, or zip code (default: "New York, NY")
insurancestringInsurance carrier name (optional)

Sorting & filtering

ParameterTypeDefaultOptions
sortstringDefaultDefault, BestMatch, HighestRated, SoonestAvailable
dayFilterstringAnyDayAnyDay, Today, Tomorrow, NextThreeDays, NextTwoWeeks
genderstring-1-1 (Any), 1 (Male), 2 (Female)
offersTelehealthbooleanfalseOnly telehealth providers
seesChildrenbooleanfalseOnly pediatric providers

Limits

ParameterTypeDefaultDescription
maxItemsinteger50Maximum total items to save
maxDoctorsinteger20Maximum doctors per search
maxReviewsinteger10Maximum reviews per doctor

Options

ParameterTypeDefaultDescription
scrapeProfilesbooleantrueVisit doctor profiles for detailed data
skipReviewsbooleanfalseSkip review extraction
skipAvailabilitybooleanfalseSkip availability extraction

Advanced

ParameterTypeDefaultDescription
scrollTimeoutinteger30Request timeout in seconds
debugModebooleanfalseEnable detailed logging
proxyobjectresidentialProxy 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"
}

Pricing

$0.05 per result - each doctor, review, or availability slot counts as one result.

  • Proxies are included in the price
  • You are not charged for failed runs
  • You only pay for data successfully delivered to your dataset

Integrations

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("silentflow/zocdoc-scraper-ppr").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-ppr').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}`);
}
});

Tips for best results

  1. Use specific specialties: Target specific specialties for focused results
  2. Set realistic limits: Start with maxItems: 50 to test before large scrapes
  3. Skip what you don't need: Use skipReviews and skipAvailability to reduce costs
  4. Disable profile scraping: Set scrapeProfiles: false for quick, low-cost search-only results
  5. Control costs: Set maxItems to cap your spending

FAQ

Q: How am I charged? A: $0.05 per result item saved to your dataset. Each doctor, review, or availability slot = 1 result.

Q: What if the run fails? A: You only pay for results successfully delivered. No charge on failure.

Q: Can I estimate costs before running? A: Yes! Set maxItems to limit results. Cost = maxItems × $0.05. Example: 100 items = $5.00 max.

Q: Are proxies included? A: Yes, residential proxies are included in the per-result price.

Q: How does PPR compare to standard? A: PPR is simpler and more predictable. Standard may be cheaper for very large scrapes, but PPR has no surprise costs.

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