# Internists Lead Generator (`parse-point/internists-lead-generator`) Actor

🩺 Internists Lead Generator collects internal medicine practice leads from Google Maps—address, coordinates, ratings & reviews. 📧 Site enrichment adds emails and social links. 💊 For pharma reps & clinic software sales.

- **URL**: https://apify.com/parse-point/internists-lead-generator.md
- **Developed by:** [Parse Point](https://apify.com/parse-point) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### Internists Lead Generator

**Internists Lead Generator** helps you turn hours of manual prospect research into a fast, repeatable workflow for finding internists business leads with public contact details. It’s designed for marketers, data analysts, and researchers who want an internists email list, a niche contact finder, and a practical lead generation workflow without the busywork. 🚀

### What is Internists Lead Generator? 🔍

**Internists Lead Generator** is an Apify automation actor that searches for internists businesses in your chosen locations and returns structured contact data from publicly available sources. Whether you’re a sales professional, recruiter, or marketer, it helps you build an internists contact scraper workflow with clean, usable results. The actor collects business names, websites, phone numbers, addresses, ratings, review counts, coordinates, and contact details, making automated internists scraping much easier to manage. 📊

### What Does Internists Lead Generator Do? ⚙️

You provide a search term and one or more locations, and the actor finds matching businesses, filters them, and saves the results to your Apify dataset. It’s built to help you scrape internists leads efficiently while keeping the output organized for outreach, research, or CRM use.

- 🔍 **Searches** for businesses using your internists keyword and selected locations
- 📧 **Extracts** public contact details such as emails, phone numbers, and social media profiles
- 🌍 **Filters** results by location and stops when your target count is reached
- 📊 **Structures** each result into clean dataset records for easy analysis
- 💾 **Saves** data to your Apify dataset as the run progresses

### What Would Results from Internists Lead Generator Look Like? 👀

Here’s a realistic example of the kind of business contact record you can export from the dataset. The actor stores results as structured JSON so you can use them in spreadsheets, outreach tools, or research workflows. 🧾

```json
{
  "name": "Riverdale Internal Medicine",
  "website": "https://riverdaleinternalmedicine.com",
  "phone": "(212) 555-0184",
  "full_address": "1450 Broadway New York NY 10018 US",
  "city": "New York",
  "state": "NY",
  "zip": "10018",
  "country_code": "US",
  "scraped_emails": [
    "contact@riverdaleinternalmedicine.com"
  ],
  "scraped_phones": [
    "(212) 555-0184"
  ],
  "scraped_social_media": [
    "https://www.linkedin.com/company/riverdale-internal-medicine"
  ],
  "emails_found": 1,
  "pages_scraped": 4,
  "avg_rating": 4.7,
  "total_reviews": 86,
  "lat": "40.7505",
  "long": "-73.9934",
  "place_id": "ChIJ7aVxnOTHwokR0b7qY2gR3Dk",
  "scrape_status": "success"
}
```

Export the results as JSON from the Apify dataset tab. 📥

### Capabilities of Internists Lead Generator 🛠️

| Capability | What It Means for You |
|---|---|
| ✅ **Keyword Search** | Target internists businesses matching your search term and location. |
| ✅ **Location Filter** | Focus on one city or multiple locations for more relevant lead lists. |
| ✅ **Result Cap** | Control how many businesses with emails you want the actor to collect. |
| ✅ **Per-Location Option** | Choose whether the limit applies per location or across all locations combined. |
| ✅ **Proxy Support** | Use built-in proxy settings for more reliable large-scale scraping. |
| ✅ **Real-Time Output** | Results are saved to the dataset as they’re found, helping protect against data loss. |
| ✅ **Structured Fields** | Get standardized output that’s easy to sort, filter, and analyze. |
| ✅ **Contact Enrichment** | Capture emails, phone numbers, websites, addresses, ratings, and review counts in one run. |

### Launch Your First Internists Lead Generator Task 🚀

#### Required Input Fields

```json
{
  "googleMapsSearchTerm": "Internists",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "scrapeMaxBusinessesPerLocation": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `googleMapsSearchTerm` | String | Yes | `Internists` | The business type or niche you want to search for. |
| `googleMapsLocation` | Array | Yes | `["New York"]` | One or more target locations for the search. |
| `maxBusinesses` | Integer | No | `5` | The maximum number of businesses with emails to collect. |
| `scrapeMaxBusinessesPerLocation` | Boolean | No | `false` | If enabled, the actor collects up to the maximum for each location separately. |
| `proxyConfiguration` | Object | No | `{ "proxy support": true }` | Proxy settings for more reliable scraping on larger runs. |

#### Required Output Fields

| Field | Label | Format | Description |
|---|---|---|---|
| `name` | Business Name | text | The business name returned in the dataset. |
| `website` | Website | link | The business website URL, if available. |
| `phone` | Phone | text | The main phone number listed for the business. |
| `full_address` | Address | text | The full address assembled from location details. |
| `city` | City | text | The city value returned for the business. |
| `state` | State | text | The state value returned for the business. |
| `zip` | zip | text | The postal code value returned for the business. |
| `country_code` | country\_code | text | The country code value returned for the business. |
| `scraped_emails` | Emails Found | array | A list of emails extracted from publicly available sources. |
| `scraped_phones` | Phone Numbers | array | A list of phone numbers found during scraping. |
| `scraped_social_media` | Social Media | array | A list of social media links found during scraping. |
| `emails_found` | # Emails | number | The number of emails found for the business. |
| `pages_scraped` | Pages Scraped | number | The number of pages processed during website scraping. |
| `avg_rating` | Rating | number | The average review rating for the business. |
| `total_reviews` | Reviews | number | The total number of reviews for the business. |
| `lat` | lat | text | The latitude value associated with the business location. |
| `long` | long | text | The longitude value associated with the business location. |
| `place_id` | place\_id | text | The unique place identifier for the business record. |
| `scrape_status` | Status | text | The final status of the scrape for that record. |

**Step-by-step launch guide:**

1. **Open** the actor in the Apify Console.
2. **Enter** `googleMapsSearchTerm` and one or more `googleMapsLocation` values.
3. **Set** `maxBusinesses` and choose whether the limit should apply per location.
4. **Optional:** configure proxies for larger or more demanding runs.
5. **Click Start** and watch the dataset populate as results are found. 🎯

### Solving Real Problems with Internists Lead Generator 💼

- 🎯 **Sales Prospecting** — Build a targeted internists email list for outreach campaigns without manual searching
- 📣 **Campaign Targeting** — Find internists businesses in specific cities for local promotions or niche campaigns
- 🤝 **Recruitment and Partnerships** — Identify internists practices and contact points for outreach
- 🔬 **Market Research** — Compare internists businesses by location, ratings, and review volume
- ⚙️ **Automated Workflows** — Reuse the same actor for recurring public web data collection jobs

### What Sets Internists Lead Generator Apart? 🏆

- 💡 **Focused Niche Targeting** — Built specifically for internists lead generation workflows
- 🔄 **Reliable Processing** — Includes retries and fallbacks for resilience during scraping
- 📦 **Rich Structured Output** — Returns business data, contact details, and quality signals in one dataset
- 📧 **Human Support** — Reach out at <helloparsepoint@gmail.com> for help or feedback

### Search Limits and Capacity 📈

- Set `maxBusinesses` from 1 to 1000 per run
- Use `scrapeMaxBusinessesPerLocation` to control whether the limit applies per location or across all locations
- Output volume depends on how many public contacts are available for the businesses you target
- The actor saves results to Apify dataset storage, which makes exporting and analysis straightforward

### Is It Legal to Scrape Internists? ⚖️

This actor accesses only publicly available data from business websites and public web sources — no logins or private content. You’re responsible for using the results in compliance with applicable laws, platform terms, and email outreach rules. For data-removal or compliance inquiries, contact <helloparsepoint@gmail.com>. Please use Internists Lead Generator responsibly and only for legitimate purposes. 🙏

### Ending Note ✉️

Stop spending hours manually searching for internists contacts. **Internists Lead Generator** gives you a fast way to build clean lead lists, review business data, and export usable results in minutes — no coding, no guesswork, and no wasted time. ✅

### FAQ — Internists Lead Generator ❓

#### How Does Internists Lead Generator Work?

You enter a search term and location, and the actor collects matching businesses from publicly available sources. It then enriches those records with contact details and stores the results in your Apify dataset.

#### What Types of Internists Businesses Can I Target?

You can target any businesses that match the search term you provide and are available in the selected locations. The actor is designed for public business records that include websites or contact details.

#### What Data Does Internists Lead Generator Return?

It returns business name, website, phone, address details, city, state, zip, country code, scraped emails, scraped phones, scraped social media, emails found, pages scraped, rating, reviews, latitude, longitude, place ID, and scrape status.

#### Can I Use Multiple Locations?

Yes. `googleMapsLocation` is an array, so you can provide more than one location in a single run.

#### How Many Businesses Can I Collect?

You can set `maxBusinesses` anywhere from 1 to 1000. The actor stops when it reaches that target.

#### Does It Support Proxies?

Yes. The input includes `proxyConfiguration`, which is recommended for larger-scale scraping and more reliable performance.

#### What If a Business Has No Website?

If a business has no website, the actor still records it with empty contact arrays and a `scrape_status` of `no_website`, unless you are using an email-only workflow.

#### How Can I Get Help?

For support, questions, or feedback, contact <helloparsepoint@gmail.com>.

### 🆘 Support & Feedback

Have a question or found an issue with Internists Lead Generator?

- 🐞 **Bug Reports:** Reach out with the issue details
- ✨ **Feature Requests:** Share what you’d like improved or added
- 📧 **Email:** <helloparsepoint@gmail.com>

### Complete number formats

| Field | Meaning |
| --- | --- |
| `phoneRaw` | The exact text the number was read from, before any normalisation |
| `phoneE164` | International dialable form, e.g. `+442079460958` |
| `phoneNational` | As someone inside that country would dial it |
| `phoneInternational` | Readable international form, e.g. `+44 20 7946 0958` |
| `phoneRfc3966` | `tel:` URI for VoIP systems (optional) |
| `phoneExtension` | The internal extension, when one was published |
| `phoneNumbers` | Every number on the row, each in all of the above forms |

Numbers are parsed against the business's own country from its Maps listing.
`phoneRaw` is never derived, so it stays trustworthy even when parsing the rest
fails.

### Contact Memory

| Field | Meaning |
| --- | --- |
| `firstSeenAt` | The date this contact was first delivered to you, across all runs |
| `isNewSinceLastRun` | `false` for a contact an earlier run already returned |

These carry real information because repeats are still delivered by default —
a scraper that dropped duplicates before delivery would mark every row new and
tell you nothing. If you would rather not receive repeats at all, **Skip
contacts delivered by a previous run** suppresses them, and **Reset contact
memory** starts the record over.

A contact is identified by its email address where there is one, otherwise by
its phone number.

# Actor input Schema

## `googleMapsSearchTerm` (type: `string`):

Enter the business type or niche for email scraper (e.g., 'coffee shops', 'dentists').

## `googleMapsLocation` (type: `array`):

Target geographic location for the email scraper (e.g., 'Miami, Florida').

## `maxBusinesses` (type: `integer`):

Target number of businesses to find (1-1000). The scraper will stop when this target is reached.

## `scrapeMaxBusinessesPerLocation` (type: `boolean`):

If enabled, the scraper will collect up to `maxBusinesses` results per location. If disabled, it combines all locations up to a single total limit.

## `proxyConfiguration` (type: `object`):

Proxy settings for scraping. Recommended for large-scale scraping.

## `includeDialerUri` (type: `boolean`):

Add the tel: URI form some VoIP and telephony systems expect. It duplicates information already in the other number columns - keep it only if your phone system asks for this exact format.

## `skipPreviouslySeenContacts` (type: `boolean`):

Suppress any contact an earlier run already returned, so a scheduled job only pays for what is new. Off by default - leave it off if you want the full list each time and would rather filter on the New column yourself.

## `resetContactMemory` (type: `boolean`):

Clear the remembered contacts before this run, so everything counts as new again. Use after changing your target list.

## Actor input object example

```json
{
  "googleMapsSearchTerm": "Internists",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "scrapeMaxBusinessesPerLocation": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "includeDialerUri": true,
  "skipPreviouslySeenContacts": false,
  "resetContactMemory": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# 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 = {
    "googleMapsSearchTerm": "Internists",
    "googleMapsLocation": [
        "New York"
    ],
    "maxBusinesses": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parse-point/internists-lead-generator").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 = {
    "googleMapsSearchTerm": "Internists",
    "googleMapsLocation": ["New York"],
    "maxBusinesses": 5,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("parse-point/internists-lead-generator").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 '{
  "googleMapsSearchTerm": "Internists",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call parse-point/internists-lead-generator --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parse-point/internists-lead-generator"
        }
    }
}

```

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/ZGl2obPHxonOf0HOp/builds/KM9wJGs9wqkkrVBD4/openapi.json
