# Dental, Medical & Private Practice Leads Scraper (B2B) (`amitabh_312/dental-medical-practice-leads-scraper`) Actor

Extract verified US & Canadian Dental Clinics (DDS/DMD), Orthodontists, Med Spas, Chiropractic, Physical Therapy & Private Medical Practices with Doctor/Owner Names, Emails, Phones & Ad Pixels.

- **URL**: https://apify.com/amitabh_312/dental-medical-practice-leads-scraper.md
- **Developed by:** [Amitabh Mohan](https://apify.com/amitabh_312) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 base lead extracteds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Dental, Medical & Private Practice Leads Scraper (B2B)

Extract **private US & Canadian Dental Practices (`DDS` / `DMD`), Cosmetic Dentists, Orthodontists, Oral Surgeons, Plastic Surgery Centers, Dermatology Clinics, Med Spas, and Allied Health Practices** complete with **Lead Doctor / Practice Owner Names**, **Verified Practice & Executive Emails**, **Live Front-Desk Phone Numbers**, **LinkedIn Profiles**, and **Installed Ad Pixels (`Meta Pixel`, `Google Ads / GTM`, `HubSpot`, `GoHighLevel`)**.

***

### Why Healthcare Marketing Agencies, SaaS Reps & Dental Suppliers Use This Actor

1. **Crawls `/meet-the-doctor`, `/our-team` & `/about` Subpages Automatically:** Unlike generic Google Maps scrapers that only grab the clinic name and main switchboard, this Actor crawls each practice's internal team pages to identify the **Lead Dentist or Medical Director (`DDS`, `DMD`, `MD`, `DO`, `DC`, `DPT`, `NP`)**.
2. **3-Stage Executive Email Enrichment:** Combines deep website crawling with LinkedIn X-Ray disambiguation and B2B Corporate Email Permutation (`dr.smith@`, `first@`, `first.last@`) verified via DNS MX checks.
3. **Detects Active Ad Spend (`Ad_Pixels`):** Flags practices running **Meta Pixel**, **Google Ads / GTM**, **TikTok Pixel**, or **GoHighLevel** so healthcare marketing agencies can pitch clinics that are already spending on patient acquisition.

***

### Sample Output

| Business_Name | Decision_Maker | Job_Title | Phone | Verified_Email | Ad_Pixels | City_State |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| Austin Cosmetic Dentistry | Tejas Patel | Lead Doctor / Practitioner (DDS) | (512) 476-2319 | info@austincosmeticdentistry.com | Meta Pixel, Google Ads | Austin, TX |
| CoreFunction Clinic | Andrew Danielson | Lead Practitioner / Owner | (512) 913-2111 | drew@corefunctionaustin.com | None Detected | Austin, TX |
| Scottsdale Smile Center | Brandon Ryff | Lead Doctor / Practitioner (DDS) | (480) 991-2180 | frontdesk@scottsdalesmilecenter.com | Google Ads / GTM | Scottsdale, AZ |

***

### Outcome-Based Pay-Per-Event (PPE) Pricing

1. **`actor-start` ($0.050):** Initializes multi-metro medical/dental discovery.
2. **`lead-extracted` ($0.010 / practice):** Active practice extracted with Business Name, Website, City/State, and Ad Pixels.
3. **`phone-line-classified` (+$0.005 / practice):** Verified front-desk phone number attached.
4. **`decision-maker-found` (+$0.010 / practice):** Verified Lead Doctor/Owner name or LinkedIn URL attached.
5. **`verified-email-enriched` (+$0.010 / practice):** DNS MX-verified email address attached.

***

### ⚡ Free 25-Lead Trial & 1-Click Automation (Clay.com, n8n, Make & Google Maps)

1. **Zero-Config 25-Lead Free Trial:** Every input field comes pre-filled with high-yield defaults. Click the green **Start** button right now to get a live 25-lead sample in under 25 seconds.
2. **Clay.com / n8n / Make Webhook Integration:** Call `https://api.apify.com/v2/acts/amitabh_312~dental-medical-practice-leads-scraper/run-sync-get-dataset-items?token=<APIFY_TOKEN>` to stream `Decision_Maker`, `Verified_Email`, `Phone`, and `Ad_Pixels_And_Tech` straight into Smartlead, Instantly, HubSpot, or Google Sheets.
3. **Google Maps 2-Step Chaining:** Run `compass/crawler-google-places` to collect local domains, then pass its `datasetId` into **`b2b-website-decision-maker-email-enricher`** to unlock Owner/CEO names, LinkedIn URLs, and DNS MX-verified corporate emails.

***

### 🔗 Explore Our Complete 10-Actor B2B Lead Generation Fleet

| Actor Slug (`name`) | Primary B2B Vertical & Deliverable |
| :--- | :--- |
| **[`dental-medical-practice-leads-scraper`](https://apify.com/amitabh_312/dental-medical-practice-leads-scraper)** | **Dental Clinic, Dentist & Medical Practice Leads Scraper** — Extract private Dental Practices (DDS/DMD), Orthodontists, Med Spas & Medical Clinics across 64+ US/CA metros.... |
| **[`fitness-gym-pilates-studio-leads-scraper`](https://apify.com/amitabh_312/fitness-gym-pilates-studio-leads-scraper)** | **Fitness, Gym, Pilates & Yoga Studio Leads Scraper** — Extract verified Pilates, Yoga, CrossFit, Martial Arts & Boutique Gym leads across 64+ US/CA metros. Pulls Stu... |
| **[`aesthetics-beauty-salon-leads-scraper`](https://apify.com/amitabh_312/aesthetics-beauty-salon-leads-scraper)** | **Aesthetics, Med Spa & Beauty Salon Leads Scraper (B2B)** — Extract verified Aesthetics, Med Spa, Skincare, Lash & Beauty Salon leads. Pulls studio owner names, direct ce... |
| **[`local-contractor-home-services-leads-scraper`](https://apify.com/amitabh_312/local-contractor-home-services-leads-scraper)** | **Roofing, HVAC, Solar & Contractor Leads Scraper (B2B)** — Extract verified Roofing, HVAC, Solar, Plumbing & Remodeling Contractor leads across 64+ US/CA metros. Pulls O... |
| **[`us-manufacturer-procurement-leads-scraper`](https://apify.com/amitabh_312/us-manufacturer-procurement-leads-scraper)** | **US Manufacturer, CNC & Industrial Supplier Leads Scraper** — Extract verified US & Canadian Manufacturers, CNC Machine Shops, Custom Packaging & OEM Suppliers. Pulls VP Op... |
| **[`medspa-wellness-clinic-leads-scraper`](https://apify.com/amitabh_312/medspa-wellness-clinic-leads-scraper)** | **Med Spa, Physio & Wellness Clinic Leads Scraper (B2B)** — Generate B2B leads for Med Spas, Physiotherapy, Chiropractic & Wellness Clinics. Extracts clinical directors, ... |
| **[`podcast-host-email-leads-scraper`](https://apify.com/amitabh_312/podcast-host-email-leads-scraper)** | **Podcast Host Email Finder & B2B Sponsorship Scraper** — Find verified podcast host & producer booking emails, personal emails, episode counts, publishing frequency & ... |
| **[`shopify-ecommerce-brand-founder-leads-scraper`](https://apify.com/amitabh_312/shopify-ecommerce-brand-founder-leads-scraper)** | **Shopify Store Leads Scraper: D2C Founder Emails & Tech** — Discover active Shopify & D2C ecommerce brands by niche. Extracts Founder/CEO names, verified corporate emails... |
| **[`skool-community-founder-mrr-leads-scraper`](https://apify.com/amitabh_312/skool-community-founder-mrr-leads-scraper)** | **Skool Community Scraper: Founder Emails & MRR Leads** — Extract active Skool communities sorted by Estimated Monthly Recurring Revenue (MRR). Pulls Founder names, ver... |
| **[`b2b-website-decision-maker-email-enricher`](https://apify.com/amitabh_312/b2b-website-decision-maker-email-enricher)** | **Google Maps & Website Decision Maker Email Enricher** — Turn raw Google Maps, Yelp or Clay URLs/domains into verified Owner/CEO names, LinkedIn profiles, DNS MX-verif... |

# Actor input Schema

## `niches` (type: `array`):

Enter target practice types (e.g., 'Dental Clinic', 'Cosmetic Dentistry', 'Orthodontist', 'Oral Surgery', 'Dermatology', 'Plastic Surgery', 'Med Spa', 'Chiropractic').

## `locations` (type: `array`):

Target specific cities/states, or leave empty to scan 60+ major US/CA metros automatically.

## `customKeywords` (type: `string`):

Comma-separated custom terms (e.g., 'Implant Center, Pediatric Dental, Concierge Medicine, Lasik, Veterinary Clinic').

## `country` (type: `string`):

Filter practices by United States (US) or Canada (CA).

## `maxLeads` (type: `integer`):

Total number of verified practice leads to return (Free Apify accounts are capped at 25 sample leads).

## `requirePhone` (type: `boolean`):

Only output practices with an active phone number.

## `requireEmail` (type: `boolean`):

Only output practices with a DNS MX-verified email address.

## `deduplicateAcrossRuns` (type: `boolean`):

When enabled, saves delivered leads to a persistent Named Key-Value Store (sift-lead-vault) in your Apify account so repeat runs automatically skip previously delivered leads.

## `clientLedger` (type: `string`):

Identifier for your suppression list (e.g., "default", "client-alpha", or "q4-outbound"). Use different names to keep separate suppression vaults per client.

## Actor input object example

```json
{
  "niches": [
    "Dental Clinic"
  ],
  "locations": [
    "Austin, TX",
    "Miami, FL"
  ],
  "country": "US",
  "maxLeads": 25,
  "requirePhone": true,
  "requireEmail": false,
  "deduplicateAcrossRuns": true,
  "clientLedger": "default"
}
```

# Actor output Schema

## `leads` (type: `string`):

Default dataset containing all verified B2B leads and contact fields.

## `runSummary` (type: `string`):

JSON summary of leads delivered and Pay-Per-Event (PPE) charges.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "niches": [
        "Dental Clinic"
    ],
    "locations": [
        "Austin, TX",
        "Miami, FL"
    ],
    "maxLeads": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("amitabh_312/dental-medical-practice-leads-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "niches": ["Dental Clinic"],
    "locations": [
        "Austin, TX",
        "Miami, FL",
    ],
    "maxLeads": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("amitabh_312/dental-medical-practice-leads-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "niches": [
    "Dental Clinic"
  ],
  "locations": [
    "Austin, TX",
    "Miami, FL"
  ],
  "maxLeads": 25
}' |
apify call amitabh_312/dental-medical-practice-leads-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,amitabh_312/dental-medical-practice-leads-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/xIqNq9UBh3Yq1cdZw/builds/9hRn6M62kLHgkgxot/openapi.json
