Healthgrades Doctors & Profiles Scraper
Pricing
Pay per event
Healthgrades Doctors & Profiles Scraper
Find public Healthgrades doctors and export detailed physician profiles with ratings, NPI, specialties, practices, contacts, education, affiliations, and review summaries.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
Turn public Healthgrades doctor directories and physician profiles into structured provider data.
Search by medical specialty and US location, crawl a public directory, and optionally enrich every result from its physician profile. Export names, NPI numbers, ratings, practice contacts, education, conditions, procedures, affiliations, awards, and public review summaries in one consistent dataset.
Use the data for healthcare lead research, provider-directory maintenance, clinic-network enrichment, referral research, and recurring reputation monitoring.
What does Healthgrades Doctors & Profiles Scraper do?
The Actor supports three practical routes:
- 🔎 build a specialty/location directory URL from input fields;
- 🔗 scrape one or more public Healthgrades directory URLs;
- 👤 extract specific public physician profile URLs.
For directory inputs, it follows bounded pagination and deduplicates physicians by canonical profile URL.
When profile enrichment is enabled, each row gains the public details available on that provider page.
The result is a single provider entity per dataset row, ready for spreadsheets, databases, APIs, or scheduled monitoring.
Who is it for?
Healthcare data and lead vendors
Build or refresh physician prospect lists with specialty, practice, location, phone, and NPI fields.
Clinic and health-network operations teams
Monitor public provider profiles, directory coverage, new-patient signals, affiliations, and contact details.
Referral and market researchers
Compare specialists by location, experience, patient rating, procedures, and hospital relationships.
Reputation teams
Schedule recurring runs and compare rating counts or public review summaries over time.
Developers and data engineers
Feed typed JSON records into enrichment pipelines, CRMs, warehouses, and internal provider search products.
Why use this Actor?
- ✅ No Healthgrades login is required for the supported public scope.
- ✅ Directory and direct-profile inputs use the same output contract.
- ✅ Canonical Healthgrades URLs are preserved in every row.
- ✅ Pagination, deduplication, retries, and bounded concurrency are built in.
- ✅ Extraction fails closed when a page is blocked or does not contain provider data.
- ✅ Profile fields use semantic markup and Schema.org structured data where available.
- ✅ Optional directory-only mode reduces requests when basic discovery is enough.
What Healthgrades data can I extract?
| Field | Description |
|---|---|
name | Public doctor or physician name |
profileUrl | Canonical Healthgrades physician URL |
providerId | Healthgrades provider identifier |
npi | Public National Provider Identifier when shown |
specialty | Primary medical specialty |
secondarySpecialty | Additional structured specialty or service |
rating | Aggregate patient rating |
ratingCount | Number of public ratings |
biography | Public profile description |
acceptingNewPatients | Public new-patient signal |
yearsExperience | Experience years shown on the profile |
practiceName | Public practice or office name |
phone | Public office phone |
addresses | Structured office addresses and coordinates |
education | Public medical education entries |
boardCertifications | Public certification names |
conditionsTreated | Conditions listed in profile metadata |
proceduresPerformed | Procedures listed in profile metadata |
experienceHighlights | Public experience comparison statements |
hospitalAffiliations | Public hospital names and addresses |
awards | Public profile or hospital awards |
reviews | Public review summary text, rating, and date |
insuranceCheckAvailable | Whether the profile exposes its insurance checker |
profileComplete | Whether the detailed profile was fetched |
sourceDirectoryUrl | Directory that discovered the physician |
scrapedAt | ISO extraction timestamp |
Fields not present on a particular public profile are omitted rather than filled with invented values.
How to scrape Healthgrades doctors by specialty and city
- Open the Actor input page.
- Remove the sample URL from Healthgrades URLs.
- Enter a specialty such as
Cardiology. - Enter
New York,NY, andNew Yorkin the location fields. - Choose a small
maxItemsvalue for the first run. - Keep Open provider profiles enabled for detailed enrichment.
- Start the run and export the resulting dataset.
Example:
{"specialty": "Cardiology","city": "New York","stateCode": "NY","stateName": "New York","maxItems": 20,"maxPages": 2,"includeProfileDetails": true,"maxConcurrency": 3}
How to extract specific Healthgrades physician profiles
Paste one or more public /physician/ URLs into startUrls.
{"startUrls": [{ "url": "https://www.healthgrades.com/physician/dr-jennifer-liu-24lgh" }],"maxItems": 1,"includeProfileDetails": true,"maxConcurrency": 1}
This mode is useful when another system already knows the canonical Healthgrades profile URL.
Input reference
startUrls
An array of public Healthgrades specialty directory or physician profile URLs.
Supported paths include:
https://www.healthgrades.com/cardiology-directory/ny-new-york/new-yorkhttps://www.healthgrades.com/physician/dr-jennifer-liu-24lgh
Unrelated hosts and unsupported Healthgrades paths are rejected.
Specialty and location fields
specialty, city, stateCode, and stateName must all be supplied when no URL is provided.
maxItems
Maximum unique provider records across all inputs. Default: 20.
includeProfileDetails
Set to false for fast directory-card records. Default: true.
maxPages
Maximum pages followed per directory. Default: 5.
maxConcurrency
Parallel profile requests, from 1 to 8. Default: 3.
Output example
{"name": "Dr. Jennifer Liu, MD","profileUrl": "https://www.healthgrades.com/physician/dr-jennifer-liu-24lgh","providerId": "24LGH","npi": "1447321534","specialty": "Cardiology","rating": 5,"ratingCount": 1,"acceptingNewPatients": true,"practiceName": "Memorial Sloan Kettering Cancer Center","phone": "(929)379-4880","conditionsTreated": ["Hypertension", "Atrial Fibrillation"],"profileComplete": true,"scrapedAt": "2026-07-24T07:20:23.522Z"}
The complete record can also contain nested addresses, education, affiliations, awards, and review summaries.
Directory-only versus detailed profile mode
Choose directory-only mode when you need:
- provider discovery;
- names and canonical profile URLs;
- basic specialty, rating, biography, image, and address data;
- fewer requests and faster recurring checks.
Choose detailed profile mode when you need:
- NPI and structured rating data;
- public practice and phone details;
- education and certification information;
- conditions, procedures, experience, and affiliations;
- awards and public review summaries.
How much does it cost to scrape Healthgrades doctor profiles?
The Actor uses pay-per-event pricing.
- Run start: $0.0005
- Doctor profile at BRONZE tier: $0.00026323 per saved provider
Higher Apify subscription tiers receive automatic volume discounts on the per-provider event. You can set maxItems and an Apify maximum run charge to control spend.
Start with 5 providers to validate the result shape before scheduling a larger directory run.
Export formats
Apify datasets support:
- JSON
- CSV
- Excel
- XML
- RSS
- JSONL
Nested fields are most naturally preserved in JSON or JSONL. CSV and Excel are convenient for provider contact and rating lists.
Scheduling provider monitoring
Use an Apify schedule to run the same directory daily, weekly, or monthly.
A downstream workflow can compare:
- rating and rating-count changes;
- practice or phone changes;
- new-patient status;
- new or removed directory profiles;
- hospital affiliation changes;
- profile completeness and extraction timestamps.
Store snapshots in your own database if historical comparisons are required.
Integrations
Google Sheets
Send each completed dataset to a sheet for research and outreach review.
CRM enrichment
Match npi, name, practiceName, phone, and addresses to existing provider records.
Webhooks
Trigger a webhook when a scheduled run finishes, then fetch the dataset through the API.
Make and Zapier
Use Apify integrations to route new provider rows into alerts, spreadsheets, or enrichment workflows.
Data warehouses
Load JSONL into BigQuery, Snowflake, PostgreSQL, or another analytical store.
Use the Actor with the Apify API
Replace TOKEN with your Apify API token.
cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~healthgrades-doctors-profiles-scraper/runs?token=TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls":[{"url":"https://www.healthgrades.com/physician/dr-jennifer-liu-24lgh"}],"maxItems":1}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/healthgrades-doctors-profiles-scraper').call({specialty: 'Cardiology',city: 'New York',stateCode: 'NY',stateName: 'New York',maxItems: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("TOKEN")run = client.actor("automation-lab/healthgrades-doctors-profiles-scraper").call(run_input={"startUrls": [{"url": "https://www.healthgrades.com/physician/dr-jennifer-liu-24lgh"}],"maxItems": 1,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Use Healthgrades data with MCP
Connect Apify Actors to supported AI clients through the Apify MCP server.
Use this MCP URL:
https://mcp.apify.com/?tools=automation-lab/healthgrades-doctors-profiles-scraper
Example prompts:
- “Extract 20 cardiologists in New York from Healthgrades and summarize their ratings.”
- “Enrich these Healthgrades physician URLs with NPI, practice, phone, and affiliations.”
- “Compare this week's provider rating counts with last week's dataset.”
Claude Code setup
$claude mcp add --transport http apify-healthgrades "https://mcp.apify.com/?tools=automation-lab/healthgrades-doctors-profiles-scraper"
Claude Desktop setup
Add this remote server to the Claude Desktop MCP configuration.
Cursor setup
Add the same server object to Cursor's MCP settings.
VS Code setup
Add the server to your VS Code MCP configuration and authenticate through Apify when prompted.
Claude Desktop, Cursor, and VS Code JSON:
{"mcpServers": {"apify-healthgrades": {"url": "https://mcp.apify.com/?tools=automation-lab/healthgrades-doctors-profiles-scraper"}}}
Data quality and freshness
The Actor extracts what is publicly rendered at run time.
Healthgrades profiles vary in completeness. A provider may not publish every supported field.
profileComplete: true means the profile page was fetched and parsed; it does not mean every optional field exists.
Canonical profile URLs and scrapedAt make records easier to deduplicate and compare.
Reliability and anti-bot handling
Healthgrades can restrict direct page delivery by geography.
The Actor uses a validated public rendering route, conservative concurrency, bounded retries, and semantic selectors.
Do not increase concurrency aggressively. Lower it if a large scheduled run encounters transient delivery errors.
A blocked or malformed response fails the run instead of silently saving empty provider shells.
Limitations
- Only public Healthgrades specialty directory and physician profile pages are supported.
- General search pages, facilities, pharmacies, and authenticated workflows are outside scope.
- The interactive insurance checker is detected, but a complete plan list is not claimed when plans are not rendered publicly.
- Review output is limited to public review summaries embedded in the profile page.
- Fields can change when Healthgrades updates its public markup.
- US directory URL construction requires specialty, city, state code, and full state name.
Legal and responsible use
Public availability does not remove your compliance obligations.
Use the Actor only for lawful purposes and data you are authorized to process. Review applicable website terms, privacy rules, healthcare marketing requirements, and regional data-protection laws.
Avoid using scraped data for sensitive decisions about individuals. Do not infer medical conditions, protected characteristics, or professional quality beyond what the source explicitly publishes.
Respect opt-outs and retention requirements in your downstream systems.
Troubleshooting
Why did my run reject a URL?
The Actor accepts only public Healthgrades specialty directory and /physician/ paths. Check the hostname and path.
Why are some fields missing?
Provider profiles vary. Optional fields are omitted when Healthgrades does not publish them.
Why did the run fail with no providers?
Confirm that the directory exists, the location slug is correct, and the page currently contains public physician cards.
How can I reduce requests?
Set includeProfileDetails to false to save directory-card records without opening each profile.
How should I handle transient delivery errors?
Retry later or reduce maxConcurrency. Keep pagination and item limits bounded.
FAQ
Does this Actor require a Healthgrades account?
No. The supported scope uses public directory and physician profile pages.
Can I scrape several directories in one run?
Yes. Add multiple directory URLs to startUrls; physicians are deduplicated by canonical profile URL.
Can I scrape one known doctor?
Yes. Supply the public Healthgrades physician profile URL directly.
Are insurance plans included?
The output reports whether the public insurance checker is available. It does not invent or imply a complete plan list when Healthgrades does not render one.
Can I schedule recurring checks?
Yes. Use Apify schedules and retain previous datasets in your own system for comparisons.
Does the Actor return reviews?
It returns public review summaries embedded in structured profile data when available, not an unlimited review-history crawler.
Related healthcare Actors
Combine this Actor with other Automation Lab public-data tools when the workflow requires broader healthcare context:
- NPI Registry Provider Scraper
- Hospital Compare Medicare Scraper
- Hospital Price Transparency Scraper
- HHS OIG Exclusions List Scraper
Use only related Actors whose source and contract fit your compliance requirements.
Start scraping Healthgrades doctors
Run the prefilled example for five New York cardiologists, inspect the dataset, then scale maxItems for your provider research or monitoring workflow.