Healthgrades Doctors & Profiles Scraper avatar

Healthgrades Doctors & Profiles Scraper

Pricing

Pay per event

Go to Apify Store
Healthgrades Doctors & Profiles Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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?

FieldDescription
namePublic doctor or physician name
profileUrlCanonical Healthgrades physician URL
providerIdHealthgrades provider identifier
npiPublic National Provider Identifier when shown
specialtyPrimary medical specialty
secondarySpecialtyAdditional structured specialty or service
ratingAggregate patient rating
ratingCountNumber of public ratings
biographyPublic profile description
acceptingNewPatientsPublic new-patient signal
yearsExperienceExperience years shown on the profile
practiceNamePublic practice or office name
phonePublic office phone
addressesStructured office addresses and coordinates
educationPublic medical education entries
boardCertificationsPublic certification names
conditionsTreatedConditions listed in profile metadata
proceduresPerformedProcedures listed in profile metadata
experienceHighlightsPublic experience comparison statements
hospitalAffiliationsPublic hospital names and addresses
awardsPublic profile or hospital awards
reviewsPublic review summary text, rating, and date
insuranceCheckAvailableWhether the profile exposes its insurance checker
profileCompleteWhether the detailed profile was fetched
sourceDirectoryUrlDirectory that discovered the physician
scrapedAtISO 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

  1. Open the Actor input page.
  2. Remove the sample URL from Healthgrades URLs.
  3. Enter a specialty such as Cardiology.
  4. Enter New York, NY, and New York in the location fields.
  5. Choose a small maxItems value for the first run.
  6. Keep Open provider profiles enabled for detailed enrichment.
  7. 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-york
  • https://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 ApifyClient
client = 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().items
print(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.

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.

Combine this Actor with other Automation Lab public-data tools when the workflow requires broader healthcare context:

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.