WebMD Doctor Scraper 🩺 avatar

WebMD Doctor Scraper 🩺

Pricing

from $1.49 / 1,000 results

Go to Apify Store
WebMD Doctor Scraper 🩺

WebMD Doctor Scraper 🩺

Efficiently extract detailed doctor profiles, practice locations, and medical ratings from WebMD. This lightweight actor is optimized for speed and data accuracy. To ensure smooth operation and prevent blocking, using residential proxies is highly recommended.

Pricing

from $1.49 / 1,000 results

Rating

5.0

(3)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

1

Bookmarked

22

Total users

4

Monthly active users

2 days ago

Last modified

Share

What does WebMD Doctor Scraper do?

WebMD Doctor Scraper collects physician and healthcare provider records from the public WebMD doctor directory. Enter a specialty, state, or city, or paste a WebMD directory URL, and the Actor returns structured provider data with names, specialties, ratings, locations, contact details, and profile links.

Use it to build healthcare lead lists, research provider coverage, enrich CRM records, or refresh a provider dataset on a schedule without manual copy-paste.

Why use WebMD Doctor Scraper?

  • Structured provider data - Get clean records instead of copying details from individual profile pages.
  • Location targeting - Collect providers by specialty, state, and city, or start from a specific directory URL.
  • Automatic pagination - Continue across result pages until your requested count or page limit is reached.
  • Duplicate control - Avoid repeated providers when multiple pages return overlapping results.
  • Automatic recovery - Temporary request failures are retried, and runs stop with a clear error when a real problem occurs.
  • Export-ready output - Download the dataset as JSON, CSV, Excel, XML, or connect it to your workflow.
  • Scheduling and integrations - Refresh data on a schedule and send results to sheets, CRMs, or webhooks.

What data can you extract from WebMD?

FieldDescription
nameFull provider name
specialtyPrimary medical specialty
addressFull practice address
phonePractice phone number when published
ratingOverall patient rating when available
reviewCountNumber of patient reviews
npiNational Provider Identifier when available
urlDirect WebMD profile URL
latitudePractice latitude when available
longitudePractice longitude when available

The Actor also returns degrees, gender, profile type, specialty IDs, insurance values, education, awards, appointment links, campaign labels, and location metadata when WebMD publishes them.

How to use WebMD Doctor Scraper

  1. Open the Actor on Apify Store.
  2. Enter a medical specialty and optionally a state or city.
  3. Set results_wanted and max_pages for the run size.
  4. Choose a proxy configuration if you plan larger collections.
  5. Run the Actor.
  6. Open the dataset to preview, filter, or export the results.

You can also paste one or more WebMD directory URLs in startUrls to control the starting pages directly.

Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlsArray of StringNo-WebMD directory URLs to scrape. When provided, these override specialty, state, and city.
specialtyStringNo"family-medicine"Medical specialty slug such as family-medicine, cardiology, dermatology, or pediatrics. When no state or city is provided, the Actor uses the first available state listing for that specialty.
stateStringNo""State slug such as california, texas, or new-york.
cityStringNo""City slug such as los-angeles or houston.
locationStringNo""Legacy location input for older tasks.
results_wantedIntegerNo50Maximum number of provider records to save.
max_pagesIntegerNo10Maximum number of listing pages to visit per listing URL.
proxyConfigurationObjectNo{ "useApifyProxy": true }Proxy configuration for the run. Apify Proxy is recommended for larger collections.

Output Data

Each dataset item can include the following fields.

FieldTypeDescription
providerIdStringUnique provider identifier.
profileRecordIdStringListing record identifier.
npiStringNational Provider Identifier when available.
nameStringFull provider name.
firstNameStringFirst name.
middleNameStringMiddle name when available.
lastNameStringLast name.
suffixStringName suffix when available.
degreeStringDegree abbreviation when available.
genderStringGender label when available.
specialtyStringPrimary specialty.
specialtiesArray of StringSpecialty list from the listing.
specialtyIdsArraySpecialty ID list when available.
profileTypeStringProfile tier or type label.
addressStringFull formatted address.
address_streetStringStreet address.
address_cityStringCity.
address_stateStringState code.
address_zipStringZIP code.
stateFullNameStringFull state name when available.
stateSlugStringState slug.
citySlugStringCity slug.
phoneStringPractice phone number when available.
websiteStringPractice website when available.
appointmentUrlStringAppointment link when available.
ratingNumberOverall rating when available.
rating_1NumberFirst rating component.
rating_2NumberSecond rating component.
rating_3NumberThird rating component.
rating_4NumberFourth rating component.
reviewCountNumberNumber of patient reviews.
bioStringProvider summary text.
bio_textStringCleaned summary text.
graduationYearNumberGraduation year when available.
educationArray of StringParsed education values when available.
insuranceArray of StringAccepted insurance values when available.
awardsArrayProvider awards when available.
campaignTextStringCampaign label when available.
campaignLogoStringCampaign logo URL when available.
imageStringProvider image URL.
urlStringProvider profile URL.
locationIdStringLocation identifier.
locationEntityIdStringLocation entity identifier.
locationMedicalGroupStringMedical group name when available.
acceptsMedicareBooleanMedicare acceptance when available.
acceptsMedicaidBooleanMedicaid acceptance when available.
acceptsNewPatientsBooleanNew patient acceptance when available.
distanceMilesNumberDistance value from the listing when available.
latitudeNumberPractice latitude when available.
longitudeNumberPractice longitude when available.
sourceStringSource domain label.

Fields appear only when WebMD publishes the value for that provider.

Usage Examples

Basic specialty collection

Collect the first 50 family medicine providers. Because no state or city is supplied, the Actor selects the first available state listing for the specialty.

{
"specialty": "family-medicine",
"results_wanted": 50
}

State and city targeting

Collect pediatric providers in Houston, Texas, with room for multiple pages.

{
"specialty": "pediatrics",
"state": "texas",
"city": "houston",
"results_wanted": 130,
"max_pages": 3
}

Multiple directory URLs

Collect from more than one WebMD directory page in the same run.

{
"startUrls": [
"https://doctor.webmd.com/providers/specialty/psychiatry/arizona/phoenix",
"https://doctor.webmd.com/providers/specialty/cardiology/texas/austin"
],
"results_wanted": 80,
"max_pages": 1
}

Sample Output

{
"providerId": "2DE4F1BC-66BC-4747-8B84-42733E79E18F",
"profileRecordId": "4613564",
"npi": "1992975957",
"name": "Susan Jung Lee",
"firstName": "Susan",
"middleName": "Jung",
"lastName": "Lee",
"degree": "MD",
"gender": "Female",
"specialty": "Family Medicine",
"specialties": ["Family Medicine"],
"specialtyIds": [29259],
"profileType": "Basic",
"address": "27231 La Paz Rd Ste A, Laguna Niguel, CA, 92677",
"address_street": "27231 La Paz Rd Ste A",
"address_city": "Laguna Niguel",
"address_state": "CA",
"address_zip": "92677",
"stateFullName": "California",
"stateSlug": "california",
"citySlug": "laguna-niguel",
"rating": 5,
"rating_1": 5,
"reviewCount": 334,
"bio": "Dr. Susan Lee brings 20 years of experience to her family medicine practice at Providence Mission Hospital.",
"bio_text": "Dr. Susan Lee brings 20 years of experience to her family medicine practice at Providence Mission Hospital.",
"graduationYear": 2006,
"campaignText": "Yext basic campaign",
"campaignLogo": "http://img.webmd.com/lhd/provider_prod/logo/yext.png",
"image": "https://img.lb.wbmdstatic.com/lhd/provider/1114262_79c6c258-4ce9-451e-94ed-16c283603bc2.jpg",
"url": "https://doctor.webmd.com/doctor/susan-lee-2de4f1bc-66bc-4747-8b84-42733e79e18f-overview",
"locationId": "A9112880",
"locationEntityId": "9115132",
"acceptsMedicare": true,
"acceptsNewPatients": false,
"distanceMiles": 0,
"latitude": 33.568891,
"longitude": -117.708067,
"source": "webmd.com"
}

Tips for Best Results

  • Add state or city when you need a focused local dataset.
  • Provider titles such as dermatologist, cardiologist, or pediatrician are mapped to the matching WebMD specialty automatically.
  • Start with 25 to 100 results to check field coverage before running a large collection.
  • Increase max_pages when your target count is larger than a single page.
  • Use Apify Proxy for larger runs and long schedules.
  • Optional fields such as phone, insurance, and awards are not present for every provider.
  • Directory pages change over time. If a run returns fewer fields or no records, check the run log and report the issue through the Issues tab.

Integrations

  • Google Sheets - Send provider lists to a spreadsheet for review and sharing.
  • Airtable - Build searchable healthcare lead tables.
  • Make or Zapier - Start enrichment and follow-up workflows automatically.
  • Webhooks - Push run results to your own systems.
  • Apify API - Access dataset items from your applications.

Export Formats

  • JSON - Application workflows and APIs.
  • CSV - Spreadsheet analysis.
  • Excel - Business reporting.
  • XML - System integration pipelines.

Frequently Asked Questions

Does the run stop at my requested result count?

Yes. The Actor stops once results_wanted records are saved or the page limit is reached.

What happens if I only provide a specialty?

WebMD's specialty-only page is a directory index rather than a provider list. The Actor follows the first state listing shown on that page so the run returns real providers. Add state or city for full control.

Can I scrape by city only?

Yes. Provide city together with a matching state for the most reliable local results.

Can I scrape more than one directory page?

Yes. Add multiple entries in startUrls. The Actor processes them in order until the result target is reached.

Why are some fields missing in some records?

WebMD does not publish every field for every provider. Optional values appear only when the source data includes them.

Can I collect large datasets?

Yes. Increase results_wanted and max_pages, and use Apify Proxy for larger collections.

Can I run this Actor on a schedule?

Yes. Schedule it in Apify Console to refresh provider data hourly, daily, weekly, or at another interval.

Can I export the data to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML, and other supported formats.

What happens if WebMD changes its page layout?

The Actor validates each response and looks for provider records by their data shape. It falls back to profile links if structured data is missing, and it reports a clear error instead of silently finishing with an empty dataset.

Is this Actor suitable for non-technical users?

Yes. You can run it from Apify Console with form inputs and download the results without writing code.

This Actor collects publicly available directory data. You are responsible for complying with applicable laws, WebMD's terms, and privacy rules in your jurisdiction.

Support

For issues, feature requests, or custom Actor work, use the Issues tab on the Actor page or contact the developer through Apify.

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by WebMD. It is designed for legitimate collection of publicly available data. Users are responsible for using the data responsibly and complying with applicable laws and website terms.