# Physiatrist Contact Scraper (`scrapido/physiatrist-contact-scraper`) Actor

🦵 Physiatrist Contact Scraper collects physical medicine and rehab practice listings from Google Maps—name, address, ZIP & phone. 📧 Site crawling adds emails and socials. 🏥 Built for rehab equipment vendors & medtech sales teams.

- **URL**: https://apify.com/scrapido/physiatrist-contact-scraper.md
- **Developed by:** [Scrapido](https://apify.com/scrapido) (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 $2.50 / 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

### Physiatrist Contact Scraper

**Physiatrist Contact Scraper** helps you save hours of manual research by turning public physiatrist and rehabilitation medicine listings into structured contact leads. It’s built for physiatrist lead generation, physiatrist contact extraction, and physiatrist directory scraper workflows, making it a practical choice for marketers, analysts, and researchers who need faster access to healthcare provider database records and better outreach results. 📬

### What is Physiatrist Contact Scraper? 🔍

**Physiatrist Contact Scraper** is an Apify automation actor designed to collect publicly available business contact data for physiatrist practice listings and related medical provider scraping tasks. It captures key fields such as name, website, phone, address details, emails found, phone numbers, and social media links in a clean dataset. Whether you’re a sales professional, recruiter, or marketer, this physiatrist email extractor and physiatrist contact scraper can streamline automated physiatrist scraping for prospecting and research.

### What Does Physiatrist Contact Scraper Do? ⚙️

This actor takes your search term and location, looks for matching public listings, and then structures the results into dataset-ready records. It’s built to support physiatrist prospecting tool workflows by helping you find relevant physiatry physician data scraping results without manual copying and pasting.

- 🔍 **Searches** for physiatrist and PM\&R specialist contacts using your chosen niche and location
- 📧 **Extracts** publicly available emails, phone numbers, and social media links
- 🌍 **Filters** results by location so you can focus on a specific market
- 📊 **Structures** output as clean JSON records for analysis or outreach
- 💾 **Exports** data to your Apify dataset for easy reuse in CRM or research workflows

### What Would Results from Physiatrist Contact Scraper Look Like? 👀

Here’s an example of the kind of structured result you can expect from this physiatrist phone number lookup and physiatrist email extraction workflow. Export your data directly from the Apify dataset tab.

```json
{
  "name": "Rehab Medicine Associates",
  "website": "https://www.rehabmedicineassociates.com",
  "phone": "(212) 555-0147",
  "full_address": "123 W 58th St New York NY 10019 US",
  "city": "New York",
  "state": "NY",
  "zip": "10019",
  "country_code": "US",
  "scraped_emails": [
    "info@rehabmedicineassociates.com"
  ],
  "scraped_phones": [
    "(212) 555-0147"
  ],
  "scraped_social_media": [
    "https://www.linkedin.com/company/rehab-medicine-associates"
  ],
  "emails_found": 1,
  "pages_scraped": 4,
  "avg_rating": 4.8,
  "total_reviews": 126,
  "lat": "40.7648",
  "long": "-73.9792",
  "place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
  "scrape_status": "success"
}
```

### Capabilities of Physiatrist Contact Scraper 🛠️

| Capability | What It Means for You |
|---|---|
| ✅ **Search Term Input** | Target the exact physiatrist niche, specialty, or practice type you want to research |
| ✅ **Location Filtering** | Focus on specific cities or regions for better physiatrist lead generation |
| ✅ **Maximum Business Limit** | Control how many businesses with emails you want in each run |
| ✅ **Per-Location Option** | Choose whether the limit applies per location or across all locations combined |
| ✅ **Proxy Configuration** | Built-in proxy support for reliable scraping and fewer blocks at scale |
| ✅ **Real-Time Dataset Output** | Results are saved as they’re found, so you do not have to wait until the end |
| ✅ **Public Contact Extraction** | Collect emails, phone numbers, and social links from publicly available sources |
| ✅ **Structured Records** | Get a tidy healthcare provider database format that’s easy to analyze |
| ✅ **Email-Only Saving** | Keep only businesses with emails if you want a more focused outreach list |

### Launch Your First Physiatrist Contact Scraper Task 🚀

#### Required Input Fields

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

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `googleMapsSearchTerm` | String | ✅ Yes | `Physiatrist` | The business type or niche you want to search for, such as a medical specialty or clinic category. |
| `googleMapsLocation` | Array | ✅ Yes | `["New York"]` | The geographic area where you want to find physiatrist practice listings. |
| `maxBusinesses` | Integer | No | `5` | The target number of businesses with emails to collect before the actor stops. |
| `scrapeMaxBusinessesPerLocation` | Boolean | No | `false` | If enabled, the actor collects up to the maximum number of businesses for each location separately. |
| `proxyConfiguration` | Object | No | `{"proxy support": true}` | Proxy settings for scraping. Recommended for larger runs and more reliable access. |

#### Required Output Fields

| Field | Type | Description |
|---|---|---|
| `name` | String | Business name for the physiatrist or medical practice listing. |
| `website` | String | Website URL if available. |
| `phone` | String | Main phone number listed for the business. |
| `full_address` | String | Full street address built from the available location details. |
| `city` | String | City associated with the listing. |
| `state` | String | State or region associated with the listing. |
| `zip` | String | Postal code from the location data. |
| `country_code` | String | Country code from the location data. |
| `scraped_emails` | Array | Publicly available email addresses found during scraping. |
| `scraped_phones` | Array | Phone numbers found from public sources. |
| `scraped_social_media` | Array | Social media links found for the listing. |
| `emails_found` | Number | Number of emails found for that record. |
| `pages_scraped` | Number | Number of pages processed while searching the website. |
| `avg_rating` | Number | Average rating shown in the public listing. |
| `total_reviews` | Number | Total review count shown in the public listing. |
| `lat` | String | Latitude value for the listing. |
| `long` | String | Longitude value for the listing. |
| `place_id` | String | Unique place identifier for the listing. |
| `scrape_status` | String | Current scrape result status such as success, failed, error, or no\_website. |

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

1. Open the actor in Apify.
2. Enter `googleMapsSearchTerm` and `googleMapsLocation` in the Input tab.
3. Adjust `maxBusinesses`, `scrapeMaxBusinessesPerLocation`, and proxy settings if needed.
4. Click Start and monitor the logs while the actor runs.
5. Download the dataset results when the run finishes.

### Solving Real Problems with Physiatrist Contact Scraper 💼

- 🎯 **Physiatrist lead generation** — Build a targeted outreach list for clinics, practices, and rehabilitation medicine contacts.
- 📣 **Campaign targeting** — Segment physiatrist practice listings by city or region for more relevant outreach.
- 🤝 **B2B prospecting** — Find PM\&R specialist contacts for partnerships, services, or healthcare vendor outreach.
- 🔬 **Market research** — Study licensed physiatrist data across multiple locations to understand coverage and competition.
- ⚙️ **Automated workflows** — Use the actor repeatedly to refresh your medical directory parsing results over time.

### What Sets Physiatrist Contact Scraper Apart? 🏆

- 💰 **Focused output** — Returns structured contact records for healthcare provider scraping, not messy unorganized notes.
- 🔄 **Location-aware runs** — Supports multiple locations and flexible limit handling for practical prospecting.
- 📧 **Support you can reach** — Contact <scrapidocontact@gmail.com> for help or feedback.
- ⚡ **Reliable dataset delivery** — Contact data is saved into your Apify dataset as it’s discovered.

### Search Limits and Capacity 📈

- Set `maxBusinesses` from 1 to 1000.
- Use one or more locations depending on how broad your physiatrist directory scraper needs to be.
- Enable `scrapeMaxBusinessesPerLocation` if you want the limit applied per location.
- Built-in proxy support helps with larger-scale runs and more reliable public web data collection.

### Is It Legal to Scrape Physiatrist Contact Data? ⚖️

This actor collects only publicly available data from public business listings and websites. It does not require logins or access private content. Users are responsible for following applicable laws, platform policies, and data protection rules when using physiatrist contact extraction for outreach or research. For data-removal or compliance inquiries, contact <scrapidocontact@gmail.com>.

### Ending Note ✉️

Stop spending hours manually searching for physiatrist contacts. The **Physiatrist Contact Scraper** delivers clean, structured contact data in minutes so you can move faster with outreach, research, and lead generation. ⚡

### FAQ — Physiatrist Contact Scraper ❓

#### How does Physiatrist Contact Scraper work?

You provide a search term and one or more locations, and the actor collects matching public business listings. It then enriches the results with contact details such as emails, phones, websites, and social media links before saving everything to your dataset.

#### What types of businesses can I target?

You can target physiatrist practice listings and other related medical provider scraping use cases by adjusting the search term. The actor is designed for public business contacts, including rehabilitation medicine contacts and PM\&R specialist contacts.

#### What information does the actor return?

It returns fields such as business name, website, phone, full address, city, state, zip, country\_code, scraped\_emails, scraped\_phones, scraped\_social\_media, emails\_found, pages\_scraped, avg\_rating, total\_reviews, lat, long, place\_id, and scrape\_status.

#### Can I limit the number of results?

Yes. The `maxBusinesses` input lets you set the number of businesses with emails to collect, and it accepts values from 1 to 1000. You can also decide whether that limit applies per location or across all locations.

#### Does it support proxies?

Yes. The input includes `proxyConfiguration`, which is recommended for larger-scale scraping and more reliable access to public data.

#### How can I contact support?

For questions, feedback, or data-removal requests, contact <scrapidocontact@gmail.com>.

### 🆘 Support & Feedback

Have a question or found an issue with the Physiatrist Contact Scraper?

- 🐞 **Bug Reports:** Share the issue with our team
- ✨ **Custom Solutions & Feature Requests:** Contact us for ideas or improvements
- 📧 **Email:** <scrapidocontact@gmail.com>

### Multiple Email Type

**Email Types** keeps only the kinds of mailbox you want. Every row records what
it was classified as in `emailType`.

| Type | What it matches |
| --- | --- |
| Personal | Free webmail (Gmail, Outlook, Yahoo, iCloud, ...) |
| Business | Company domains — free webmail and institutions excluded |
| Education | `.edu`, `.ac.uk`, `.edu.au` and other academic suffixes |
| Government | `.gov`, `.mil`, `.gov.uk`, `.gc.ca`, ... |
| Non-profit | `.org`, `.ngo`, `.org.uk`, ... |

A business found with no email at all is unaffected — whether those rows are
wanted is already governed by the existing email-only setting.

### Multiple Phone Type

**Phone Types** does the same for numbers, checked against the line's *real*
type rather than a guess. Numbers on ranges where mobile and landline cannot be
told apart are kept rather than dropped, since discarding them would lose good
leads.

### Outreach links

| Field | Meaning |
| --- | --- |
| `telLink` | A clickable `tel:` link for the primary number |
| `whatsappLink` | A `wa.me` chat link, or empty for a landline or an invalid number |
| `whatsappCapable` | Whether the line could support WhatsApp |
| `phoneContacts` | Every kept number with its own type, links and validity |

`whatsappCapable` never claims the person uses WhatsApp — only that the number
is of a kind that could. Turn the links off with **Include WhatsApp links**; the
capability flag is still reported.

# 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.

## `validateEmails` (type: `boolean`):

Run DNS/MX validation and confidence scoring on every email found, and include the results (confidence score, validation status, role-based/catch-all flags) in the output.

## `minRating` (type: `integer`):

Skip businesses rated below this (1-5 stars). Leave at 0 for no filter.

## `minReviews` (type: `integer`):

Skip businesses with fewer than this many Google reviews. Leave at 0 for no filter.

## `requireWebsite` (type: `boolean`):

Skip businesses with no website listed on Google Maps (they can't be crawled for contact info anyway).

## `leadMode` (type: `string`):

Business Contacts (default) returns the business's generic contact info (info@, main phone, socials). Decision-Maker Finder instead looks for a named person with a job title (e.g. "Jane Smith, Owner") on the business's team/about pages — a best-effort heuristic, not guaranteed on every site.

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

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

## `emailTypes` (type: `array`):

Which kinds of mailbox to keep. Pick as many as you like; leave empty for every type. A business with no email at all is unaffected by this - whether those rows are wanted is governed by the existing email-only setting.

## `phoneTypes` (type: `array`):

Which kinds of line to keep. Leave empty for every type. Numbers on ranges where mobile and landline cannot be told apart are always kept rather than silently dropped.

## `includeWhatsappLinks` (type: `boolean`):

Add a ready-made wa.me chat link for numbers on a line WhatsApp can run on. The link means the number is in a form WhatsApp accepts - not proof that an account exists.

## Actor input object example

```json
{
  "googleMapsSearchTerm": "Physiatrist",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "scrapeMaxBusinessesPerLocation": false,
  "validateEmails": false,
  "minRating": 0,
  "minReviews": 0,
  "requireWebsite": false,
  "leadMode": "Business Contacts",
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "emailTypes": [
    "Business"
  ],
  "phoneTypes": [
    "Mobile",
    "Landline"
  ],
  "includeWhatsappLinks": true
}
```

# 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": "Physiatrist",
    "googleMapsLocation": [
        "New York"
    ],
    "maxBusinesses": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    },
    "emailTypes": [
        "Business"
    ],
    "phoneTypes": [
        "Mobile",
        "Landline"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapido/physiatrist-contact-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 = {
    "googleMapsSearchTerm": "Physiatrist",
    "googleMapsLocation": ["New York"],
    "maxBusinesses": 5,
    "proxyConfiguration": { "useApifyProxy": True },
    "emailTypes": ["Business"],
    "phoneTypes": [
        "Mobile",
        "Landline",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapido/physiatrist-contact-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 '{
  "googleMapsSearchTerm": "Physiatrist",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "emailTypes": [
    "Business"
  ],
  "phoneTypes": [
    "Mobile",
    "Landline"
  ]
}' |
apify call scrapido/physiatrist-contact-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapido/physiatrist-contact-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/YTe8hQHHAoIEumPeO/builds/G3UOYr7P1l7rctneY/openapi.json
