# Massage Therapist Lead Generator (`parse-point/massage-therapist-lead-generator`) Actor

💆 Massage Therapist Lead Generator mines Google Maps for massage and bodywork clinic leads—coordinates, ratings & reviews. 📧 Site enrichment adds emails and social links. 🧖 For wellness suppliers & booking software sales.

- **URL**: https://apify.com/parse-point/massage-therapist-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

### Massage Therapist Lead Generator 📬

**Massage Therapist Lead Generator** is an Apify actor built to help marketers, researchers, and local service businesses discover massage therapist leads and other publicly available business contact details at scale. It streamlines massage lead generation, massage client acquisition, and spa lead generation by collecting structured contact data from public web sources so you can move faster with less manual research.

### What Is Massage Therapist Lead Generator? 🔍

Massage Therapist Lead Generator is an automated web scraping tool that finds massage therapist leads and extracts publicly available business contact information. It is designed for lead generation for massage therapists, massage marketing, and massage business marketing workflows where manual prospecting takes too long. By using a search term and one or more locations, it helps you build local massage leads and massage appointment leads in a structured format.

This actor is useful for marketers, data analysts, and researchers who need client leads for massage therapists, wellness leads, or therapist lead generator data without spending hours browsing one business at a time. It can save time, improve scale, and support faster outreach for massage advertising and massage prospecting campaigns.

### What Data Does Massage Therapist Lead Generator Collect? 📊

The actor returns structured business contact data and location details, plus public email, phone, and social media information when available. It also includes useful enrichment fields such as rating, review count, and scrape status so you can quickly filter results for massage client acquisition and related outreach workflows.

| Data Category | Fields Extracted | Description |
|---|---|---|
| Business identity | `name` | Business name returned in the dataset |
| Website | `website` | Business website link |
| Contact details | `phone`, `scraped_phones`, `scraped_emails`, `scraped_social_media` | Public contact data collected from publicly available sources |
| Address | `full_address`, `city`, `state`, `zip`, `country_code` | Location details for the business |
| Performance | `avg_rating`, `total_reviews` | Public rating and review counts |
| Scraping metrics | `emails_found`, `pages_scraped`, `scrape_status` | Results summary and run status |
| Geolocation | `lat`, `long`, `place_id` | Location and place reference data |

### What Do Results from Massage Therapist Lead Generator Look Like? 👀

Each result is saved as a structured JSON record in your Apify dataset. Here’s a realistic example of the dataset output:

```json
{
  "name": "Serenity Massage Studio",
  "website": "https://www.serenitymassagestudio.com",
  "phone": "+1 212-555-0184",
  "full_address": "245 W 34th St New York NY 10001 US",
  "city": "New York",
  "state": "NY",
  "zip": "10001",
  "country_code": "US",
  "scraped_emails": [
    "hello@serenitymassagestudio.com",
    "bookings@serenitymassagestudio.com"
  ],
  "scraped_phones": [
    "+1 212-555-0184"
  ],
  "scraped_social_media": [
    "https://www.instagram.com/serenitymassagestudio",
    "https://www.facebook.com/serenitymassagestudio"
  ],
  "emails_found": 2,
  "pages_scraped": 6,
  "avg_rating": 4.8,
  "total_reviews": 128,
  "lat": "40.7505",
  "long": "-73.9934",
  "place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
  "scrape_status": "success"
}
```

You can export the dataset from Apify in JSON or CSV format for use in CRM tools, spreadsheets, and outreach workflows.

#### Core Features: Massage Therapist Lead Generator ⚡

| Feature | Benefit |
|---|---|
| ✅ Keyword-driven targeting | Use your search term to find relevant massage therapist leads and wellness leads |
| ✅ Location-based filtering | Focus on local massage leads in specific cities or regions |
| ✅ Public contact extraction | Collect emails, phone numbers, and social media profiles from publicly available sources |
| ✅ Result limits | Control how many businesses are collected with `maxBusinesses` |
| ✅ Per-location option | Collect up to the limit per location when needed |
| ✅ Proxy support | Built-in proxy support for more reliable scraping |
| ✅ Structured output | Clean dataset records ready for analysis and outreach |
| ✅ Real-time saving | Results are saved as the run progresses |

### Getting Started with Massage Therapist Lead Generator 🚀

1. **Open Apify Console** — Sign in to your Apify account and open the actor.
2. **Set Your Search Term** — Enter a niche such as massage therapist, spa, or wellness-related business.
3. **Add Locations** — Provide one or more target locations, such as cities or regions.
4. **Choose Your Limit** — Set `maxBusinesses` to control how many businesses with emails you want.
5. **Optional: Set Per-Location Collection** — Turn on `scrapeMaxBusinessesPerLocation` if you want the limit applied per location.
6. **Configure Proxy Settings** — Add proxy configuration if you need more reliable large-scale runs.
7. **Run the Actor** — Start the run and monitor progress in the log output.
8. **Review the Dataset** — Open the dataset tab to view, export, or reuse your massage therapist leads.

### Ways to Use Massage Therapist Lead Generator 💡

- 🎯 **Lead Generation for Massage Therapists** — Build targeted outreach lists for local studios and independent practitioners
- 📣 **Massage Marketing** — Find businesses to promote offers, services, or partnerships
- 🤝 **Massage Client Acquisition** — Discover contactable businesses for referral and collaboration campaigns
- 🔬 **Market Research** — Analyze wellness leads by city, rating, and review volume
- 📊 **CRM Enrichment** — Add contact and location data to your existing records
- ⚙️ **Massage Booking Leads** — Create prospect lists for appointment software, directories, and local services

#### Input Parameters — Massage Therapist Lead Generator

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

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `googleMapsSearchTerm` | String | Yes | `Massage Therapist` | 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 `maxBusinesses` results for each location. If disabled, it uses a single total limit across all locations. |
| `proxyConfiguration` | Object | No | `{"proxy support": true}` | Proxy settings for scraping. Recommended for larger runs. |

#### Output Parameters — Massage Therapist Lead Generator

```json
{
  "name": "Serenity Massage Studio",
  "website": "https://www.serenitymassagestudio.com",
  "phone": "+1 212-555-0184",
  "full_address": "245 W 34th St New York NY 10001 US",
  "city": "New York",
  "state": "NY",
  "zip": "10001",
  "country_code": "US",
  "scraped_emails": [
    "hello@serenitymassagestudio.com",
    "bookings@serenitymassagestudio.com"
  ],
  "scraped_phones": [
    "+1 212-555-0184"
  ],
  "scraped_social_media": [
    "https://www.instagram.com/serenitymassagestudio",
    "https://www.facebook.com/serenitymassagestudio"
  ],
  "emails_found": 2,
  "pages_scraped": 6,
  "avg_rating": 4.8,
  "total_reviews": 128,
  "lat": "40.7505",
  "long": "-73.9934",
  "place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
  "scrape_status": "success"
}
```

| Field | Label | Format | Description |
|---|---|---|---|
| `name` | Business Name | text | The business name returned in the dataset. |
| `website` | Website | link | The business website URL. |
| `phone` | Phone | text | The main phone number associated with the business. |
| `full_address` | Address | text | The combined business address string. |
| `city` | City | text | The city for the business location. |
| `state` | State | text | The state or region for the business location. |
| `zip` | zip | text | The postal code. |
| `country_code` | country\_code | text | The country code for the business location. |
| `scraped_emails` | Emails Found | array | A list of public email addresses found during scraping. |
| `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 total number of emails found for the business. |
| `pages_scraped` | Pages Scraped | number | The number of pages checked during scraping. |
| `avg_rating` | Rating | number | The public average rating of the business. |
| `total_reviews` | Reviews | number | The total number of public reviews. |
| `lat` | lat | text | The latitude value associated with the business. |
| `long` | long | text | The longitude value associated with the business. |
| `place_id` | place\_id | text | The place identifier for the business record. |
| `scrape_status` | Status | text | The final scraping status for the record. |

### Why Choose Massage Therapist Lead Generator? 🏆

Massage Therapist Lead Generator is built for speed, structure, and practical outreach use. It gives you massage therapist leads in a clean format, supports local massage leads and spa lead generation, and helps you avoid manual prospecting bottlenecks. The dataset is easy to export, easy to analyze, and useful for massage advertising, therapist lead generator workflows, and broader wellness leads campaigns. If you need support, contact <helloparsepoint@gmail.com>.

### How Many Results Can You Scrape? 📈

You can control the output with `maxBusinesses`, which accepts values from 1 to 1000. The actual number of results depends on how many businesses match your search term and location and whether they have public contact information available. For larger runs, proxy support can help improve reliability, and the dataset can hold all results for later export.

### Legal Guidelines for Scraping Massage Therapist Lead Generator ⚖️

This actor only works with publicly available data. It does not require logins and does not access private accounts or restricted content. You are responsible for using the data in a way that respects applicable privacy laws, spam regulations, and any site-specific terms. Always use massage therapist leads and wellness leads responsibly and for legitimate business purposes. Data removal requests: <helloparsepoint@gmail.com>.

### FAQ — Massage Therapist Lead Generator ❓

#### How does Massage Therapist Lead Generator find contacts?

It uses your search term and location filters to identify relevant public business listings, then collects contact information that is publicly available from those sources.

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

You can target massage therapists and other related local businesses by adjusting the search term, which makes it useful for massage marketing, massage business marketing, spa lead generation, and wellness leads research.

#### Can I use more than one location?

Yes. The `googleMapsLocation` input accepts an array, so you can provide multiple cities or regions in a single run.

#### Does it collect only emails?

No. The output also includes phone numbers, social media links, rating, review counts, location fields, and scraping status when available.

#### How is the output organized?

Results are saved as structured dataset items with clearly labeled fields, so they are easy to export into spreadsheets, CRMs, and outreach tools.

#### How do I limit the number of results?

Use `maxBusinesses` to control the maximum number of businesses with emails that the actor should collect.

#### Is proxy support available?

Yes. The actor includes a proxy configuration input for more reliable large-scale scraping.

#### How do I get help or send feedback?

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

### Conclusion 🏁

The **Massage Therapist Lead Generator** is a practical way to build massage therapist leads, improve massage client acquisition, and support faster outreach with clean, structured data. Whether you need local massage leads, massage appointment leads, or broader massage prospecting data, it gives you a scalable starting point for public web data collection.

### 🆘 Support & Feedback

Have a question or feature request for the Massage Therapist Lead Generator?

- 🐞 **Bug Reports:** Please share any issues you encounter with the actor
- ✨ **Feature Requests:** Send ideas for improving massage lead generation, spa lead generation, or wellness leads workflows
- 📧 **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": "Massage Therapist",
  "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": "Massage Therapist",
    "googleMapsLocation": [
        "New York"
    ],
    "maxBusinesses": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

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

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parse-point/massage-therapist-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/DjgDB2xSVDbLwPlwG/builds/jYpXfaiNSnfrgbQwh/openapi.json
