# Psychologist Contact Scraper (`scrapido/psychologist-contact-scraper`) Actor

💬 Psychologist Contact Scraper pulls psychology practice listings from Google Maps—address, city, state, ZIP, phone & place ID. 📧 Emails and social links from each site. 🧠 Built for therapy platforms & mental health SaaS marketing.

- **URL**: https://apify.com/scrapido/psychologist-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

### Psychologist Contact Scraper

**Psychologist Contact Scraper** is an Apify actor built to help marketers, recruiters, and data teams collect psychology practice contact data from publicly available sources. It supports psychologist contact extraction for lead generation, therapist contact scraper workflows, and mental health professional directory scraping at scale, so you can turn manual research into fast, structured results with much less effort. 📬

### What is Psychologist Contact Scraper? 🔍

Psychologist Contact Scraper is an automated web scraping tool that collects publicly available business contact details for psychology and mental health providers. It is designed for psychologist lead generation, psychology clinic contact mining, and building a licensed psychologist database from public web data. The actor accepts your search term and location, then returns structured contact records that can help you identify clinical psychologist contacts, behavioral health provider scraping opportunities, and therapist outreach database leads.

This makes it useful for marketers looking for new prospects, researchers studying local provider markets, and data analysts building clean lists for enrichment or outreach. By automating the discovery process, Psychologist Contact Scraper saves hours of manual browsing and helps you scale contact collection with consistent, exportable results. 🚀

### What Data Does Psychologist Contact Scraper Collect? 📊

This actor collects business identity details, contact information, location data, and simple performance signals from publicly available sources. It is especially useful for psychologist email harvesting, psychologist phone number scraping, and psychologist prospecting tool use cases where you need a practical list of contacts, not just names.

| Data Category | Fields Extracted | Description |
|---|---|---|
| Contact | `phone`, `scraped_emails`, `scraped_phones`, `scraped_social_media` | Public contact details and related links found for each business |
| Identity | `name` | Business name listed in the dataset |
| Location | `full_address`, `city`, `state`, `zip`, `country_code`, `lat`, `long` | Address and location-related fields for each record |
| Discovery | `place_id`, `scrape_status` | Internal result identifiers and scrape outcome status |
| Activity | `pages_scraped`, `emails_found` | Basic volume indicators for each business |
| Social proof | `avg_rating`, `total_reviews` | Public rating information when available |
| Web presence | `website` | Business website URL if one is found |

### What Do Results from Psychologist Contact Scraper Look Like? 👀

Each result is stored as a structured JSON record in your Apify dataset. Here’s a realistic example of what a record can look like:

```json
{
  "name": "Harbor Psychology Center",
  "website": "https://www.harborpsychologycenter.com",
  "phone": "+1 312-555-0148",
  "full_address": "120 W Madison St Chicago IL 60602 US",
  "city": "Chicago",
  "state": "IL",
  "zip": "60602",
  "country_code": "US",
  "scraped_emails": [
    "info@harborpsychologycenter.com",
    "appointments@harborpsychologycenter.com"
  ],
  "scraped_phones": [
    "+1 312-555-0148"
  ],
  "scraped_social_media": [
    "https://www.linkedin.com/company/harbor-psychology-center"
  ],
  "emails_found": 2,
  "pages_scraped": 6,
  "avg_rating": 4.8,
  "total_reviews": 127,
  "lat": "41.8821",
  "long": "-87.6379",
  "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
  "scrape_status": "success"
}
```

You can export results from the dataset in JSON or CSV format, making it easy to use for psychologist lead generation, therapist outreach database building, or psychology practice contact data analysis. 📈

#### Core Features: Psychologist Contact Scraper ⚡

| Feature | Benefit |
|---|---|
| ✅ **Keyword-Driven Targeting** | Use your search term to find relevant psychology and mental health providers |
| ✅ **Location Filter** | Focus on a specific city, region, or other geographic area |
| ✅ **Public Contact Extraction** | Collect public emails, phone numbers, and social media links from publicly available sources |
| ✅ **Configurable Result Cap** | Set how many businesses with emails you want to collect |
| ✅ **Proxy Support** | Built-in proxy support for reliable scraping at larger scale |
| ✅ **Real-Time Data Saving** | Results are saved during the run to reduce the risk of data loss |
| ✅ **Structured Output** | Clean dataset fields make analysis and outreach easier |
| ✅ **Business-Level Contact Data** | Capture website, rating, reviews, and address details together |

### Getting Started with Psychologist Contact Scraper 🚀

1. **Open Apify Console** — Go to the Apify platform and open the Psychologist Contact Scraper actor.
2. **Set Your Search Term** — Enter the psychologist, therapist, or mental health niche you want to target.
3. **Choose Locations** — Add one or more geographic locations to focus your search.
4. **Set a Result Limit** — Define how many businesses with emails you want to collect.
5. **Decide Per-Location Behavior** — Choose whether the limit applies per location or across all locations.
6. **Configure Proxy Settings** — Use the proxy configuration when running larger jobs or when you want more reliable scraping.
7. **Run the Actor** — Start the actor and monitor the logs as it processes your locations.
8. **Export the Dataset** — Open the dataset tab to review, filter, and export the output.

This workflow is ideal for mid-level marketers and researchers who need fast psychology practice contact data without manual searching. ⏱️

### Ways to Use Psychologist Contact Scraper 💡

- 🎯 **Psychologist lead generation** — Build prospect lists for outreach to psychologists and therapy practices
- 📣 **Therapist outreach database** — Organize public contact details for campaigns and partnerships
- 🔬 **Mental health practitioner leads** — Identify local providers for research and enrichment
- 📊 **Psychology clinic contact mining** — Collect websites, phones, addresses, and emails in one pass
- 🧠 **Behavioral health provider scraping** — Map providers across cities and regions for market analysis
- 🛠️ **CRM enrichment** — Add contact and location data to your existing records for follow-up

#### Input Parameters — Psychologist Contact Scraper

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

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `googleMapsSearchTerm` | String | Yes | `Psychologist` | 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` | Maximum number of businesses with emails to collect. The run stops when this limit is reached. |
| `scrapeMaxBusinessesPerLocation` | Boolean | No | `false` | If enabled, the actor collects up to the limit for each location separately. If disabled, all locations share one total limit. |
| `proxyConfiguration` | Object | No | `{"proxy support": true}` | Proxy settings for more reliable scraping, especially for larger runs. |

#### Output Parameters — Psychologist Contact Scraper

```json
{
  "name": "Harbor Psychology Center",
  "website": "https://www.harborpsychologycenter.com",
  "phone": "+1 312-555-0148",
  "full_address": "120 W Madison St Chicago IL 60602 US",
  "city": "Chicago",
  "state": "IL",
  "zip": "60602",
  "country_code": "US",
  "scraped_emails": [
    "info@harborpsychologycenter.com",
    "appointments@harborpsychologycenter.com"
  ],
  "scraped_phones": [
    "+1 312-555-0148"
  ],
  "scraped_social_media": [
    "https://www.linkedin.com/company/harbor-psychology-center"
  ],
  "emails_found": 2,
  "pages_scraped": 6,
  "avg_rating": 4.8,
  "total_reviews": 127,
  "lat": "41.8821",
  "long": "-87.6379",
  "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
  "scrape_status": "success"
}
```

| Field | Label | Format | Description |
|---|---|---|---|
| `name` | Business Name | text | The business name for the psychologist or mental health provider. |
| `website` | Website | link | The business website URL. |
| `phone` | Phone | text | Public phone number associated with the business. |
| `full_address` | Address | text | Full address assembled from the available location parts. |
| `city` | City | text | City associated with the business. |
| `state` | State | text | State associated with the business. |
| `zip` | zip | text | Postal code extracted for the business. |
| `country_code` | country\_code | text | Country code associated with the location. |
| `scraped_emails` | Emails Found | array | List of public email addresses found for the business. |
| `scraped_phones` | Phone Numbers | array | List of phone numbers found during contact extraction. |
| `scraped_social_media` | Social Media | array | List of social media links found for the business. |
| `emails_found` | # Emails | number | Total number of emails found in the record. |
| `pages_scraped` | Pages Scraped | number | Number of pages processed for that business website. |
| `avg_rating` | Rating | number | Public average rating when available. |
| `total_reviews` | Reviews | number | Total number of public reviews when available. |
| `lat` | lat | text | Latitude value associated with the business location. |
| `long` | long | text | Longitude value associated with the business location. |
| `place_id` | place\_id | text | Unique place identifier for the record. |
| `scrape_status` | Status | text | Outcome of the scrape for that business, such as success or no\_website. |

### Why Choose Psychologist Contact Scraper? 🏆

Psychologist Contact Scraper is built for practical psychologist contact extraction at scale. It focuses on publicly available data, returns structured records, and supports reliable scraping with proxy configuration for larger jobs. That makes it a strong choice for psychologist prospecting tool workflows, psychology practice contact data collection, and mental health professional directory scraping when you want repeatable results without messy manual cleanup. For support or feedback, contact <scrapidocontact@gmail.com>. ✨

### How Many Results Can You Scrape? 📈

You can set `maxBusinesses` anywhere from 1 to 1000, and the actor stops when that target is reached. The volume you get depends on how many psychology and behavioral health provider scraping targets in your chosen locations have publicly available websites and contact details. For larger runs, proxy support helps improve reliability, and the dataset can store all returned results for later export.

### Legal Guidelines for Scraping Psychologist Contact Data ⚖️

This actor only collects publicly available data. It does not access private accounts, login-protected pages, or restricted content. You are responsible for using the data in accordance with applicable laws, including privacy and anti-spam rules, as well as any relevant website terms. Use extracted contact details only for legitimate business, research, or outreach purposes. For data removal requests, please contact <scrapidocontact@gmail.com>. 🙏

### FAQ — Psychologist Contact Scraper ❓

#### How does Psychologist Contact Scraper find contact details?

It uses your search term and location filters to identify relevant public business records, then collects contact details that are publicly available on associated websites and listings. This makes it useful for psychologist email harvesting, therapist contact scraper use cases, and broader psychology clinic contact mining.

#### What kinds of psychologists or providers can I scrape?

You can target any public business records that match your search term and location. That includes psychologists, therapists, clinical psychologists, and other mental health professionals that appear in publicly available sources.

#### Can I use Psychologist Contact Scraper for lead generation?

Yes. It is a practical psychologist lead generation tool for marketers and outreach teams who need public contact data for psychology practices, therapy clinics, and behavioral health providers.

#### Does the actor collect phone numbers as well as emails?

Yes. The output includes `scraped_phones`, `phone`, and `scraped_emails`, so you can work with both email and phone-based outreach lists where public data is available.

#### What happens if a business has no website?

Records without websites are marked with `scrape_status: "no_website"`. When email-only output is being used, those records are skipped from the saved results.

#### Is proxy support included?

Yes. The actor includes proxy configuration, which is helpful for larger runs and more reliable scraping overall.

#### How can I use the data after scraping?

You can export the dataset and use it for CRM enrichment, market research, therapist outreach database building, or psychologist prospecting tool workflows.

### Conclusion 🏁

Psychologist Contact Scraper gives you a fast, structured way to collect public contact data for psychologists and related mental health providers. Whether you are building a licensed psychologist database, supporting psychology practice contact data research, or powering a therapist outreach database, this actor helps you move from manual searching to scalable results. Get started on Apify today. 🚀

### 🆘 Support & Feedback

Have a question, bug report, or feature request for Psychologist Contact Scraper?

Please contact <scrapidocontact@gmail.com> for support and feedback.

### 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": "Psychologist",
  "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": "Psychologist",
    "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/psychologist-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": "Psychologist",
    "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/psychologist-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": "Psychologist",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "emailTypes": [
    "Business"
  ],
  "phoneTypes": [
    "Mobile",
    "Landline"
  ]
}' |
apify call scrapido/psychologist-contact-scraper --silent --output-dataset

```

## MCP server setup

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