Zocdoc Scraper [Only $3.5/1K💰] | Doctor Ratings & Availability avatar

Zocdoc Scraper [Only $3.5/1K💰] | Doctor Ratings & Availability

Pricing

from $3.20 / 1,000 results

Go to Apify Store
Zocdoc Scraper [Only $3.5/1K💰] | Doctor Ratings & Availability

Zocdoc Scraper [Only $3.5/1K💰] | Doctor Ratings & Availability

Scrape Zocdoc doctors by specialty and location for healthcare lead generation: doctor names, specialties, ratings, reviews, insurance flags, next-available appointment slots, addresses, phone numbers and coordinates. Fast API-based scraping — no browser, no login.

Pricing

from $3.20 / 1,000 results

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

7 days ago

Last modified

Categories

Share

Zocdoc Scraper — Doctor Profiles, Ratings & Appointment Availability Data

Scrape Zocdoc.com doctors by specialty and location for physician lead generation, healthcare market research and provider directory building: name, specialty, rating, review count + review snippet, insurance acceptance flags, next-available appointment slot, address/phone, geo-coordinates and profile URL — at $3.5 per 1,000 results. No login, no browser.

Main Use Cases

  • Healthcare lead generation — build doctor and dentist lead lists by specialty and metro for medical marketing agencies, healthtech and staffing teams.
  • Insurance network & panel building — collect in-network provider lists by specialty and location using the acceptsInNetwork / acceptsOutOfNetwork / acceptsSelfPay flags.
  • Provider directory & app data — power doctor-finder apps and directories with live profile data, geo-coordinates, distance and profile URLs.
  • Appointment availability monitoring — track next-available appointment slots per provider over a configurable window (default 14 days, up to 90).
  • Competitor & ranking research — compare provider ratings, review counts and bedside-manner/wait-time scores across practices and metros.
  • Medical recruiting & market analysis — map specialist supply (dermatologists, dentists, therapists, primary care) by city and state.

How It Works

The actor calls Zocdoc's own internal directory GraphQL API (POST api.zocdoc.com/directory/v3/gql) — the same endpoint its React frontend uses. It resolves the specialty name to Zocdoc's internal ID at runtime, pages through provider search results, and optionally enriches each doctor with next-available timeslots. Pure HTTP (roughly 2 requests per 20 doctors) at 256 MB, so runs are fast and cheap compared to browser-based scraping. The public www.zocdoc.com site is protected by DataDome (it blocks datacenter IPs and challenges browsers), but the directory API itself is open and needs no auth cookies or tokens.

Build a Doctor Database Without the Zocdoc Partner API

Zocdoc does publish a partner API for appointment booking and calendar integration, but it requires partner onboarding and is designed around scheduling flows — not bulk directory exports. This actor instead reads Zocdoc's publicly listed directory data and returns it as structured JSON/CSV/Excel for any specialty and location, or programmatically via the Apify API. Schedule weekly runs to keep ratings, reviews and availability current, and route new providers to your pipeline through webhooks, Zapier or Make.

Input

FieldTypeRequiredDefaultNotes
specialtystringNoDentistDoctor specialty name (e.g. Dentist, Dermatologist, Primary Care Doctor, Therapist). Resolved to Zocdoc's internal specialty ID automatically.
specialtyIdstringNoZocdoc internal specialty ID (e.g. 98 = Dentist). If set, skips the name lookup.
locationstringNoNew York, NYCity + state or ZIP code (e.g. New York, NY, 10001).
maxResultsintegerNo50Maximum doctor profiles to return (max 1000; free users capped at 10).
includeAvailabilitybooleanNotrueFetch next-available appointment slots per doctor (one extra API call per page of 20).
availabilityDaysintegerNo14How many days ahead to scan for appointment slots (max 90).
proxyobjectNooffStandard Apify proxy picker. The API endpoint needs no proxy — enable only if you hit rate limits.

Output

Each dataset item is one doctor profile. Example:

{
"name": "Dr. Jenny Armstrong, DDS, FAGD",
"firstName": "Jenny",
"lastName": "Armstrong",
"specialty": "Dentist",
"allSpecialties": ["Dentist", "Cosmetic Dentist"],
"rating": 4.92,
"reviewCount": 528,
"reviewSnippet": "Amazing experience, highly recommend…",
"bedsideMannerRating": 5,
"waitTimeRating": 4.9,
"highlyRecommendPct": 98,
"acceptsInNetwork": true,
"acceptsOutOfNetwork": false,
"acceptsSelfPay": true,
"nextAvailableDate": "2026-09-18T09:00:00",
"nextAvailableSlot": "2026-09-18T09:00:00",
"slotsFoundNextDays": 12,
"address": "241 W 37th St",
"city": "New York",
"state": "NY",
"zip": "10018",
"phone": "(212) 730-4440",
"latitude": 40.7523,
"longitude": -73.9903,
"distanceMiles": 1.4,
"isVirtual": false,
"profileUrl": "https://www.zocdoc.com/dentist/jenny-armstrong-dds-fagd-441155",
"photoUrl": "https://cdn.zocdoc.com/...",
"zocdocProviderId": "441155",
"zocdocLocationId": "1299442",
"scrapedAt": "2026-09-16T12:00:00.000Z"
}

Field reference

FieldDescription
name / firstName / lastNameProvider display and split names.
specialty / allSpecialtiesPrimary and all listed specialties.
rating / bedsideMannerRating / waitTimeRating / highlyRecommendPct0–5 score metrics.
reviewCount / reviewSnippetTotal review count and one representative review text.
acceptsInNetwork / acceptsOutOfNetwork / acceptsSelfPayInsurance acceptance flags.
nextAvailableDate / nextAvailableSlot / slotsFoundNextDaysAvailability enrichment.
address / city / state / zip / phonePractice location and phone.
latitude / longitude / distanceMiles / isVirtualGeo and visit type.
profileUrl / photoUrlLinks.
zocdocProviderId / zocdocLocationIdStable Zocdoc IDs (use to join availability or deduplicate).
npi / education / languages / insurancesAcceptednull/[] — not exposed by Zocdoc's public directory API (see FAQ).

Example Input

{
"specialty": "Dentist",
"location": "New York, NY",
"maxResults": 50,
"includeAvailability": true,
"availabilityDays": 14
}

To skip the availability enrichment (fewer requests, cheaper):

{
"specialty": "Dermatologist",
"location": "Los Angeles, CA",
"maxResults": 100,
"includeAvailability": false
}

Integrations & Automation

  • Apify API — run the actor and fetch datasets programmatically from your app or data pipeline.
  • Webhooks / Zapier / Make — push new provider records to your CRM or directory as a run completes.
  • Scheduling — schedule weekly runs to refresh ratings, review counts and availability (recurring runs also improve Apify Store recommendations for this actor).

FAQ

Why use this actor instead of the official Zocdoc API?

Zocdoc's official API is a partner API for scheduling and calendar integration — it requires partner onboarding/credentials and is built around booking flows, not bulk provider-directory exports. This actor reads Zocdoc's publicly listed directory data (the same public data the website shows) with no auth and returns it as a downloadable dataset or a per-result API feed.

What are alternatives to this actor?

  • Other Zocdoc actors on Apify (see Related Actors — typical rates range from $0.00433 to $0.009 per result vs $0.0035 here).
  • Healthgrades / WebMD / NPPES (NPI registry) for other provider datasets.
  • Official partner API if you only need booking/availability integration.

How can I build a list of dentists accepting new patients?

Run the actor with specialty: "Dentist" and your location. Every provider Zocdoc shows is open to new patients, and each record includes nextAvailableDate (the soonest bookable slot) plus address, phone and profile URL — filter on nextAvailableDate != null to keep only actively bookable providers.

How do I monitor doctor appointment availability over time?

Enable includeAvailability: true and set availabilityDays (up to 90). Schedule a recurring task (e.g. daily) and compare nextAvailableDate / slotsFoundNextDays per zocdocProviderId to track availability shifts.

Why are NPI, education, languages and full insurance lists null?

Zocdoc's public directory API does not expose those fields — they live on DataDome-protected profile pages. The actor returns null/[] for them and always includes profileUrl so you can enrich profiles separately (e.g. with a residential-proxy browser run).

Does the actor get the full review text?

No. The API exposes one representative review snippet per doctor plus the total review count — not the full review feed.

How much does it cost to scrape Zocdoc?

A 50-doctor run makes roughly 8 lightweight JSON requests at 256 MB and finishes in under a minute. Pricing is $3.5 per 1,000 results on the free tier (less on higher tiers) plus a small start event; free-plan users get 10 profiles per run as a preview. Turning off includeAvailability reduces requests further.

Competitive Positioning

CapabilityOther Zocdoc actorsThis actor
Price per 1,000 results$4.33–$9.00 (crawlerbros $4.33, scrapersdelight $4.50, silentflow $5.00, getdataforme $9.00)$3.50 (free tier)
Specialty by nameRequired on several actors as searches/specialty + city/statespecialty name resolved live to Zocdoc's ID automatically
Availability windowNot always configurableincludeAvailability + availabilityDays (1–90)
No browser / no loginVaries (some use Playwright + residential proxies)Pure HTTP GraphQL API, no browser

SEO Keywords

zocdoc scraper, zocdoc api alternative, doctor database, physician directory data, healthcare provider data, doctor lead generation, dentist lead list, doctors accepting new patients, dermatologist list by city, primary care doctor list, therapist directory data, pediatrician list, doctor ratings data, zocdoc doctor profiles, next available appointment data, insurance accepted doctor data, in-network dentist data, telehealth providers list, healthcare market research data, medical marketing leads

For AI Agents & LLM Apps

Purpose: Returns one JSON record per provider from Zocdoc for a given specialty + location, including rating, review count, insurance flags, next-available appointment and location/contact data.

Minimal input:

{ "specialty": "Dentist", "location": "New York, NY", "maxResults": 20 }

Cheaper variant (no availability enrichment):

{ "specialty": "Dermatologist", "location": "10001", "maxResults": 50, "includeAvailability": false }

Output fields: name, firstName, lastName, specialty, allSpecialties, rating, bedsideMannerRating, waitTimeRating, highlyRecommendPct, reviewCount, reviewSnippet, acceptsInNetwork, acceptsOutOfNetwork, acceptsSelfPay, nextAvailableDate, nextAvailableSlot, slotsFoundNextDays, address, city, state, zip, phone, latitude, longitude, distanceMiles, isVirtual, profileUrl, photoUrl, zocdocProviderId, zocdocLocationId, npi, education, insurancesAccepted, languages, scrapedAt.

Behaviors an agent should know:

  • If specialtyId is set it takes priority and skips the specialty-name lookup; otherwise specialty is resolved live.
  • includeAvailability: true (default) adds one extra API request per page of 20 doctors — set it false when availability isn't needed to reduce time and cost.
  • availabilityDays caps at 90; default is 14.
  • maxResults max is 1000; free-plan runs are capped at 10 profiles.
  • npi, education, languages, insurancesAccepted come back null/[] by design (not exposed by the public directory API).
  • Billing is pay-per-result: $3.5 per 1,000 results (free tier).

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Zocdoc, Inc. It accesses only publicly listed provider directory data through Zocdoc's own public directory endpoint — it does not access patient records, is not a covered-entity integration, and does not book appointments. Users are responsible for complying with Zocdoc's Terms of Use and applicable law, including data-protection rules and healthcare-marketing regulations (e.g., HIPAA does not cover business contact/listing data, but any downstream use of provider or patient data is the user's responsibility). Data returned is provider directory information; NPI, education and full insurance details are not exposed. This summary is not legal advice.