WebMD Scraper — Doctors, Reviews & Provider Leads
Pricing
from $12.00 / 1,000 provider scrapeds
WebMD Scraper — Doctors, Reviews & Provider Leads
Scrape WebMD doctors & healthcare providers by specialty and location. Get NPI, specialties, ratings, patient reviews, board certifications, accepted insurance, all practice locations, phones, fax & leads — plus optional practice-email enrichment and monitoring. No login, no key, no browser.
Pricing
from $12.00 / 1,000 provider scrapeds
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
WebMD Scraper — Doctors, Reviews & Provider Leads (NPI, Insurance, Phones & Emails)
Extract complete doctor & healthcare-provider data from the WebMD physician directory — search by specialty and location (or paste profile URLs) and get 86 fields per provider: NPI, specialty and sub-specialties, star rating and review counts, WebMD's own AI review summary and monthly star trends, biography, board certifications, state licenses, languages, conditions treated and procedures performed (with patient counts), accepted insurance, FAQs, telehealth and online-booking status, every practice location with phone and geo, hospital affiliations and patients'-perspective scores. Optionally turn each provider into a ready-to-contact lead by crawling their practice website for emails, phone numbers and social links.
No login, no API key, no browser — fast JSON extraction straight from WebMD's own page data, reliable through the default Apify proxy.
Why this WebMD scraper?
Most "doctor scrapers" return a name, a rating and not much else. This actor reads WebMD's full embedded provider state and ships every field it publishes, then adds the lead-gen layer competitors skip.
| Data | Typical scrapers | This actor |
|---|---|---|
| NPI number | ❌ | ✅ 100% |
| Specialty + practicing name, slug, sub-specialties | partial | ✅ 100% |
| Star rating + rating count + written-review count | ✅ | ✅ 100% |
| Full patient reviews (text, rating, date, reply) | ❌ | ✅ opt-in — see the review note below |
| WebMD's AI review summary + monthly star trends | ❌ | ✅ providers with written reviews |
| Patients'-perspective scores (correctly labelled) | ❌ | ✅ providers with rated reviews |
| Biography | ❌ | ✅ ~100% |
| Board certifications + state licenses | ❌ | licenses ✅ ~90% · certifications where WebMD holds them |
| Conditions treated + procedures with patient counts | ❌ | ✅ 100% |
| Accepted insurance (named plans) + Medicare/Medicaid | ❌ | ✅ where the practice supplied plans |
| Every practice location (address, phone, hours, geo) | partial | ✅ 100% |
| Hospital affiliations | ❌ | ✅ where declared |
| Telehealth, online booking & FAQs | ❌ | ✅ |
| Practice website + contact emails (lead wedge) | ❌ | ✅ opt-in — website is published for claimed/sponsored listings only |
| Lead score (0–100) | ❌ | ✅ |
| Monitor mode — only new providers | ❌ | ✅ |
What WebMD does not publish (so you know before you buy)
We would rather tell you up front than ship you blank columns:
- Fax — WebMD exposes a fax key on every location and it is
nullfor essentially every provider. We emitnullrather than invent one. - Phone — 100% on physician searches (25/25 cardiology, 30/30 family medicine), but WebMD suppresses the phone on some unclaimed listings: a Houston dentistry search returned 45%. Verified at source — the phone fields are empty and no number is rendered on the page at all. Telehealth-only providers have no phone or street address by design. Full postal address and geo are always emitted.
- Practice website — published only for claimed, Enhanced or sponsored listings (~a quarter of a typical result set). This is also the gate on email enrichment: providers with no website are skipped and never billed.
- Written reviews — most WebMD ratings are star-only. A provider showing 89 ratings can have 0 with text. Every record tells you exactly where it stands:
reviewCount(all ratings),textReviewCount(how many have text),reviewsRetrieved(how many you got). WebMD's page data embeds at most 10 written reviews per provider, somaxReviewsPerProviderabove 10 has no effect — butreviewSummary,reviewTrendsandpatientExperienceare computed by WebMD across all reviews and cost nothing extra. - Sub-specialty expertise, intro video, booking link, telehealth flags — self-declared, so present on Enhanced/sponsored profiles and absent on Basic ones.
Full, field-by-field reasoning lives in coverage-exceptions.json in the source.
Use cases
- Healthcare lead generation — medical practices buy EHR/RCM software, medical supplies, marketing, staffing, insurance and equipment. Score providers by reputation and contactability (
leadScore), reach them directly (phoneFormatted,contactEmails), and sort byisSponsoredto find the practices already spending on marketing. - Provider network & directory building — power referral apps, "find a doctor" tools and insurance directories with structured, NPI-keyed provider data for any specialty and city.
- Market & competitive intelligence — map provider density, ratings, accepted insurance and accepting-new-patients status by specialty and metro.
- Reputation & review monitoring — track ratings and patient reviews for a specialty or a specific provider over time.
- Recruiting — find physicians by specialty, sub-specialty, location, languages and credentials.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the WebMD Scraper, enter specialties and locations (or paste WebMD URLs), and click Start.
- Watch results stream into the dataset table.
- Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.
Input
{"specialties": ["cardiovascular-disease", "Dentist"],"locations": ["texas/austin", "Miami, FL"],"maxResults": 200,"acceptingNewPatientsOnly": true,"includeProviderDetails": true,"includeReviews": true,"enrichPracticeEmails": true,"monitorMode": false}
- specialties — friendly names (
Cardiology,Dentist,OB-GYN,Psychiatry) or WebMD slugs (cardiovascular-disease,family-medicine,dermatology,pediatrics,psychology,orthopaedic-surgery, …). Combined with every location. - locations —
state/city(texas/austin), a plainCity, ST(Austin, TX), or a whole state (texas). City-level searches return the most providers. - startUrls — direct WebMD doctor profiles (
/doctor/…-overview) or browse pages (/providers/specialty/…). - acceptingNewPatientsOnly / minRating / gender — filters.
- includeProviderDetails (default true) — fetch each profile for the full record (bio, certifications, licenses, languages, conditions, procedures, insurance, all locations, hospital affiliations, FAQs, review summary & trends). One extra page per provider.
- includeReviews (default false) — collect written patient reviews. See the review note above: most WebMD ratings are star-only and at most 10 written reviews are available per provider.
- reviewOutput (default
nested) —nestedkeeps one row per provider with areviewsarray (best for CSV/Excel — every row has the same columns).separateemits each review as its own record, which mixes two record types in one export. - enrichPracticeEmails (default false) — crawl the provider's own practice website (home + contact/about, up to 4 pages) for emails, phones and socials. WebMD never exposes emails — this is the only way to get them. Runs only for providers whose listing exposes a website; the rest are skipped and not billed.
- monitorMode (default false) — remember providers from previous runs and emit only new ones next time. Perfect with Schedules.
Calling from the API or an AI agent with no input at all is safe: the actor runs the documented example search (cardiovascular disease in Austin, TX) and tells you so in the run's status message, instead of failing.
Output
One record per provider (type: "provider"), 86 fields, every row with the same columns. Reviews nest inside the provider by default; set reviewOutput: "separate" for standalone type: "review" rows.
{"type": "provider","npi": "1285849406","fullName": "Fotini Chalkias","formattedName": "Dr. Fotini Chalkias, MD","gender": "female","degree": "MD","specialty": "Cardiovascular Disease","specialtiesDetailed": [{ "name": "Cardiovascular Disease", "practicingName": "Cardiologist", "slug": "cardiovascular-disease", "isPrimary": true }],"yearsOfExperience": 29,"bio": "Dr. Fotini Chalkias is a cardiologist practising in Austin, TX…","rating": 5,"reviewCount": 254,"textReviewCount": 217,"reviewsRetrieved": 10,"reviewSummary": "Patients consistently praise Dr. Chalkias for her exceptional listening skills, thorough explanations of test results, and caring bedside manner. The main criticism noted is that some patients feel she is occasionally rushed…","reviewTrends": [{ "period": "May 2025", "oneStar": 0, "twoStar": 0, "threeStar": 0, "fourStar": 0, "fiveStar": 8 }],"patientExperience": [{ "aspect": "Staff was courteous", "didWell": 231, "needsImprovement": 0 }],"reviews": [{ "reviewId": "44179965", "rating": 5, "text": "She is clear and concise about why she is prescribing tests…", "author": "Patient", "datePublished": "2026-04-02", "providerReply": null, "helpfulCount": 0 }],"acceptsNewPatients": true,"supportsTelehealth": true,"telehealthStates": ["TX"],"onlineBookingEnabled": false,"boardCertifications": [{ "board": "Cardiovascular Disease", "issuer": "American Board of Internal Medicine", "year": null }],"stateLicenses": [{ "type": "Medical Doctor", "state": "Texas", "status": "Active", "expiryYear": 2028 }],"languages": ["Greek", "English"],"conditionsTreatedDetailed": [{ "name": "Heart Failure", "patientCount": 44 }, { "name": "Atrial Fibrillation", "patientCount": 35 }],"proceduresPerformedDetailed": [{ "name": "Echocardiogram", "patientCount": 61 }],"faqs": [{ "question": "What conditions does Dr. Chalkias treat?", "answer": "Most often Heart Failure, Atrial Fibrillation and Coronary Artery Disease." }],"insuranceCount": 29,"insuranceAccepted": ["Aetna", "Cigna", "Humana", "UnitedHealthcare"],"acceptsMedicare": true,"acceptsMedicaid": true,"practiceName": "Baylor Scott & White Clinic - Austin North Burnet","city": "Austin","state": "TX","postalCode": "78758","phone": "5126544050","phoneFormatted": "(512) 654-4050","fax": null,"officeCount": 1,"offices": [{ "locationId": "5607244", "name": "Baylor Scott & White Clinic - Austin North Burnet", "street": "2608 Brockton Dr", "city": "Austin", "state": "TX", "postalCode": "78758", "phone": "5126544050", "phoneFormatted": "(512) 654-4050", "latitude": 30.392745, "longitude": -97.720331, "isPrimary": true, "acceptsMedicare": true }],"hospitalAffiliations": [{ "name": "Ascension Seton Medical Center Austin", "url": "https://doctor.webmd.com/hospital/…" }],"isSponsored": false,"profileTier": "Basic","website": null,"contactEmails": [],"profileUrl": "https://doctor.webmd.com/doctor/fotini-chalkias-…-overview","leadScore": 57,"searchSpecialty": "cardiovascular-disease","searchLocation": "texas/austin","scrapedAt": "2026-07-22T00:00:00.000Z"}
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run it daily/weekly with
monitorModeto capture only newly listed providers; perfect for lead pipelines and directory refreshes. - Webhooks — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/webmd-scraper').call({specialties: ['cardiovascular-disease'],locations: ['texas/austin'],maxResults: 200,enrichPracticeEmails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} providers & leads`);
Integrate with any app
Connect the dataset to 5,000+ apps — no code required:
- Make — multi-step automation scenarios.
- Zapier — push new provider leads straight into your CRM.
- Slack — get notified when a monitored search finds new providers.
- Google Drive / Sheets — auto-export every run to a spreadsheet.
- Airbyte — pipe results into your data warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find cardiologists in Austin accepting new patients and list their practice contacts" and let it run this scraper for you.
Agent-ready: autonomous payments (x402 & Skyfire)
This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:
- x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
- Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.
Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.
More scrapers from scrapesage
Build a complete lead-gen stack with our other actors:
- Healthgrades Scraper — doctors, reviews & provider leads from Healthgrades (the perfect companion to this WebMD actor).
- Companies House Scraper — UK companies, directors & PSCs.
- SAM.gov Scraper — federal contract opportunities & contacts.
- Eventbrite Scraper — events + organizer leads.
- LinkedIn Jobs Scraper — job postings as hiring-intent signals.
- Product Hunt Scraper — launches, makers & leads.
- Apple Podcasts Scraper — shows, episodes & host leads.
- Google Play Scraper — apps, reviews & developer leads.
Tips
- Specialty slugs: friendly names are auto-mapped (
Cardiology→cardiovascular-disease), but exact WebMD slugs always work. Browse doctor.webmd.com/providers/specialty for the full list. - Exhaust a metro: WebMD returns ~60 providers per page and paginates automatically; raise
maxResultsPerSearchto go deeper, or split by specialty. - Cost control: profile fetches and email enrichment are per-provider — keep
includeProviderDetailson (cheap, one page) and turn onenrichPracticeEmailsonly when you need emails. - Proxies: the default Apify Proxy (datacenter) is enough — WebMD serves clean pages to it.
FAQ
How do I scrape doctors for a specific city? Put state/city in locations (e.g. texas/austin) or a plain Austin, TX, and add one or more specialties. City-level searches return the most providers.
Where do the emails come from? Never from WebMD (it doesn't publish emails). With enrichPracticeEmails on, the actor visits the provider's own practice website and extracts publicly listed contact emails — the same thing a human visitor would see.
Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.
How do I monitor new providers automatically? Turn on monitorMode and create a Schedule. Each run emits only providers not seen before — it does not conflict with the scheduler.
Is scraping WebMD legal? This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws (GDPR/CCPA for personal data) and WebMD's terms.
A field is null — why? Fields are null only when WebMD doesn't publish the data, never because the scraper skipped them. The most common cases — fax, practice website, sub-specialty expertise and written reviews — are explained in "What WebMD does not publish" above, with the exact reason for every field recorded in coverage-exceptions.json.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.