Therapist Email List Scraper — Mental Health Professionals avatar

Therapist Email List Scraper — Mental Health Professionals

Pricing

from $15.00 / 1,000 professional contact records

Go to Apify Store
Therapist Email List Scraper — Mental Health Professionals

Therapist Email List Scraper — Mental Health Professionals

Build therapist email lists by specialty and city: published emails, credentials, phones and source pages for psychologists and counselors. USD 20 per 1,000.

Pricing

from $15.00 / 1,000 professional contact records

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Share

Therapist Email List Scraper finds the websites of therapists, psychologists, counselors, psychiatrists and mental health practices for the specialties and locations you choose, then returns the business emails those sites publish, with credentials, specialties, phone numbers, address and the exact page each email came from. It is built for B2B outreach to practices, partnership and referral programs, and provider market research, and it costs USD 20 per 1,000 contact records on the FREE tier (USD 15 per 1,000 on GOLD), plus a USD 0.005 start fee.

What does the therapist email scraper return?

Each dataset row is one practice or professional website. By default every row has at least one email.

FieldWhat it contains
professionalNameProvider name when the site identifies one, for example Jane Smith, PhD
credentialsCredentials found on the pages, for example PHD, PSYD, LCSW, LMFT, LPC
practiceNamePractice or organization name, or the page title
specialtiesDetected areas: anxiety, depression, trauma and PTSD, couples therapy, child and adolescent, addiction, eating disorders, OCD, ADHD, grief, EMDR
primaryEmail, emailsPublished emails, normalized; the best one first
emailConfidencehigh (mailto link or structured data), medium (visible page text) or none
emailSourceUrlsPages where an email was found
phoneNumbersPhone links and structured-data phone values
website, pagesVisitedSite origin and the pages inspected
address, city, region, postalCode, countryAddress from the site's structured data, when present
socialUrlsSocial profiles the site links to
searchQuery, sourceSearchUrlSpecialty and location pair, and the result page that found the site
pageTitle, description, scrapedAtPage title, meta description and collection time

The run summary is saved as OUTPUT: outcome (DATA, EMPTY, BLOCKED or REJECTED), candidates discovered and visited, records delivered, requests and failures, charged events and warnings.

How do I build a therapist email list for a city or specialty?

Enter one or more specialties and locations. The Actor searches each pair on public search result pages, skips large directories and social networks, and visits the practice websites it finds.

InputExampleNotes
specialties["child psychologist", "trauma counselor"]1 to 10 phrases (default therapist)
locations["Chicago, IL", "Milwaukee, WI"]1 to 20 cities, states, ZIP codes or countries (default Austin, TX)
maxResults501 to 500 records (default 10)
maxSearchPages2Result pages per pair, 1 to 5 (default 1, about 7 results per page)
maxWebsitePages3Pages per site, 1 to 10 (default 3)
searchEngineautoauto tries Yahoo, then Bing and DuckDuckGo; Google rarely serves plain-HTML results
includeWithoutEmailfalsetrue also returns practices without a published email
startUrls[{ "url": "https://example-therapy.com/" }]Practice sites you already know; can replace or add to search

Default local search:

{
"specialties": ["therapist"],
"locations": ["Austin, TX"],
"maxResults": 10
}

Two specialties in two cities:

{
"specialties": ["child psychologist", "trauma counselor"],
"locations": ["Chicago, IL", "Milwaukee, WI"],
"maxResults": 50,
"maxSearchPages": 2
}

A site found through search is kept only when its pages mention mental health and contain every word of the specialty plus part of the location, so results stay on topic.

Where do the emails come from, and are they verified?

Every email was published on the practice's own public pages; the Actor never guesses or builds addresses. It checks robots.txt before each page, reads the page the search found (or your start URL), then follows same-site links that mention contact, about, team, staff, therapists, counselors or providers, up to maxWebsitePages pages per site. The page where each email appeared is listed in emailSourceUrls. It does not send test emails, so run the list through an email validator before a campaign. Duplicate email sets are delivered once.

When should I use it, and when not?

Use it when you need practice-level contact emails for a defined market, for example every trauma therapist with a published email in two metro areas, or you want to enrich a list of known practice websites.

Use another Actor when:

How do I run it from code?

JavaScript with apify-client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('muhammadafzal/mental-health-professionals-email-scraper').call({
specialties: ['couples therapist'],
locations: ['Denver, CO'],
maxResults: 25,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) console.log(item.practiceName, item.primaryEmail, item.emailConfidence);

Python with apify-client:

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("muhammadafzal/mental-health-professionals-email-scraper").call(run_input={
"specialties": ["psychiatrist"],
"locations": ["Seattle, WA"],
"maxResults": 20,
})
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item["website"], item["primaryEmail"], item["credentials"])

Use it from an AI assistant

Therapist Email List Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add the single-tool URL https://mcp.apify.com/?tools=muhammadafzal/mental-health-professionals-email-scraper to your client and ask, for example: "Find 20 trauma therapists in Denver with a published practice email and list their credentials and phone numbers." Each record is charged at the prices below, so include a result limit.

What does the output look like?

Illustrative records in the dataset's shape (placeholder names and .example domains, not real providers):

[
{
"professionalName": "Jane Smith, PhD",
"credentials": ["PHD"],
"practiceName": "Calm Path Therapy",
"specialties": ["Anxiety", "Trauma and PTSD"],
"primaryEmail": "hello@calmpath.example",
"emails": ["hello@calmpath.example"],
"emailSourceUrls": ["https://calmpath.example/contact"],
"emailConfidence": "high",
"phoneNumbers": ["+1 512 555 0100"],
"website": "https://calmpath.example",
"pagesVisited": ["https://calmpath.example/", "https://calmpath.example/contact"],
"city": "Austin",
"region": "TX",
"searchQuery": "therapist — Austin, TX",
"scrapedAt": "2026-10-26T12:00:00.000Z"
},
{
"professionalName": null,
"credentials": ["LMFT", "LPC"],
"practiceName": "Northside Counseling Group",
"specialties": ["Couples therapy", "Depression"],
"primaryEmail": "intake@northsidecounseling.example",
"emailConfidence": "medium",
"website": "https://northsidecounseling.example",
"searchQuery": "therapist — Austin, TX"
}
]

How much does a therapist email list cost?

The Actor uses pay-per-event pricing, and platform usage is included in the event prices. Each record saved to the default dataset is charged automatically, so there is no double charging.

EventFREEBRONZESILVERGOLDPLATINUM / DIAMOND
Professional contact record (one dataset row)USD 0.02USD 0.019USD 0.018USD 0.015USD 0.015
Actor start (per started GB of allocated memory)USD 0.005USD 0.005USD 0.005USD 0.005USD 0.005

Worked totals on the FREE tier at the default 512 MB memory (one start event):

  • 10 records (the default input's maximum): 10 × USD 0.02 + USD 0.005 = USD 0.205
  • 100 records: 100 × USD 0.02 + USD 0.005 = USD 2.005

Sites without a published email are not charged unless you turn on includeWithoutEmail. If you set a maximum cost per run, the Actor checks the budget before each record and stops cleanly.

Limits and reliability

  • Yield: one search result page gives about 7 sites, directories are skipped, and not every practice publishes an email, so the default input (one page) usually returns 3 to 6 records. Raise maxSearchPages or add locations for more.
  • Access: static HTTP requests over the Actor's own datacenter route (proxy settings in older inputs are ignored), up to 5 sites at once (maxConcurrency), one retry per failed request. Search pages and sites can rate-limit. When no search engine returns result links, or at least half of the requests fail and nothing is delivered, the run ends as failed with outcome BLOCKED and no record charges.
  • Time: the Actor stops collecting 30 seconds before the run timeout (600 seconds by default) and saves what it found.
  • Coverage: sites that load their content only with JavaScript can expose fewer fields. No logins, CAPTCHAs or patient portals.

FAQ

Is there a free therapist email list?

Not from this Actor. Records cost USD 0.02 each on the FREE tier, and a run with no matches charges only the USD 0.005 start fee.

Are the emails verified?

They are copied exactly as published and labeled high or medium confidence. The Actor does not test deliverability; use an email validator before sending.

Can I get psychologist or psychiatrist email lists?

Yes. Put psychologist, child psychologist or psychiatrist in specialties. Credentials such as PSYD, MD and PMHNP are extracted when the pages show them.

Does it scrape therapist directories?

No. It skips large directories and social networks and reads the practices' own websites.

Can I use my own list of practice websites?

Yes. Add them to startUrls, with or without specialties and locations.

It depends on your jurisdiction and purpose. You are responsible for CAN-SPAM, GDPR or other local rules, opt-out handling and each site's terms.

Privacy and compliance

The Actor collects contact details that practices chose to publish on public business websites. It does not collect patient records, appointments, insurance claims, protected health information or anything behind a login, and it respects robots.txt. A specialty label can still be sensitive in context: use the data only for lawful business purposes, honor opt-outs, and do not use it for harassment, discriminatory profiling, clinical decisions or bulk unsolicited messaging. Verify licenses with the relevant state board before relying on them.

Last verified: 2026-10-27