# Photographers Lead Generator (`parse-point/photographers-lead-generator`) Actor

📷 Photographers Lead Generator collects photography studio leads from Google Maps—coordinates, ratings & reviews. 📧 Site enrichment adds emails and social links. 🎞️ For gear suppliers, print labs & creative SaaS sales.

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

### Photographers Lead Generator 📸

**Photographers Lead Generator** helps you find photography leads and public contact details from businesses that match your niche and location. It’s built for marketers, data analysts, and researchers who want to save time on manual prospecting and focus on lead generation for photographers, photography clients, and photography inquiries at scale. 🚀

### What is Photographers Lead Generator? 🔍

**Photographers Lead Generator** is an Apify actor for automated public web data collection focused on photographer lead generation. It searches for businesses that match your chosen search term and location, then gathers contact information such as emails, phone numbers, websites, and social media profiles. It’s useful for marketers, sales teams, recruiters, and data analysts who need a clean photographers contact list for local photography marketing, photographer marketing, and client acquisition for photographers.

### What Data Does Photographers Lead Generator Collect? 📊

If you’re wondering what exactly you get from Photographers Lead Generator, this actor captures business identity and contact fields, plus useful context for outreach and research. The output is designed to support commercial photography leads, wedding photography leads, portrait photography leads, freelance photographer leads, and photo studio leads with structured data you can export and use right away.

| Data Category | Field Name | Description | Available |
|---|---|---|---|
| Contact | `website` | Public website for the business | ✅ Always when available |
| Contact | `phone` | Main phone number listed for the business | ✅ Always when available |
| Contact | `scraped_emails` | Email addresses found from publicly available sources | ✅ When available |
| Contact | `scraped_phones` | Phone numbers found from publicly available sources | ✅ When available |
| Contact | `scraped_social_media` | Social media links found from publicly available sources | ✅ When available |
| Identity | `name` | Business name | ✅ Always |
| Identity | `full_address` | Full business address | ✅ Always when available |
| Identity | `city` | City | ✅ Always when available |
| Identity | `state` | State | ✅ Always when available |
| Identity | `zip` | ZIP code | ✅ Always when available |
| Identity | `country_code` | Country code | ✅ Always when available |
| Context | `avg_rating` | Average rating | ✅ Always when available |
| Context | `total_reviews` | Number of reviews | ✅ Always when available |
| Location | `lat` | Latitude | ✅ Always when available |
| Location | `long` | Longitude | ✅ Always when available |
| Discovery | `place_id` | Place identifier | ✅ Always when available |
| Performance | `pages_scraped` | Number of pages scraped on the business website | ✅ When available |
| Performance | `emails_found` | Number of emails found | ✅ When available |
| Status | `scrape_status` | Scraping status for the record | ✅ Always |

### Types of Data I Can Extract with Photographers Lead Generator 🗂️

Photographers Lead Generator is built to turn broad photography business discovery into structured, usable data. Whether you’re building photography business growth campaigns or looking to book photography clients, the actor organizes results into practical data types that are easy to analyze and export.

**Contact Data**

- Emails from publicly available sources
- Phone numbers
- Website URLs
- Social media links

**Identity Data**

- Business name
- Full address
- City, state, ZIP, and country code
- Place identifier

**Contextual Data**

- Average rating
- Total reviews
- Latitude and longitude
- Scrape status

**Export-Friendly Data**

- Structured dataset output
- Results ready for further analysis or CRM import
- Useful for photography inquiries and outreach workflows

#### Key Features of Photographers Lead Generator ⚡

| Feature | Benefit |
|---|---|
| ✅ **Location Filtering** | Focus on photography clients in a specific city or region |
| ✅ **Search Term Targeting** | Find businesses matching your photography niche or market segment |
| ✅ **Public Contact Extraction** | Collect emails, phone numbers, and social profiles from publicly available sources |
| ✅ **Configurable Result Limit** | Set how many businesses with emails you want to collect |
| ✅ **Per-Location Control** | Choose whether the limit applies per location or across all locations |
| ✅ **Built-In Proxy Support** | Helps improve reliability for larger scraping jobs |
| ✅ **Immediate Dataset Saving** | Results are stored as they’re found, reducing the risk of data loss |
| ✅ **Structured Output** | Easy to review, filter, and export for prospecting workflows |

### Photographers Lead Generator User Guide 📖

#### Required Input Fields

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

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `googleMapsSearchTerm` | String | Yes | `Photographers` | The business type or niche you want to search for, such as photographers. |
| `googleMapsLocation` | Array | Yes | `["New York"]` | One or more target locations to focus your photography lead generation. |
| `maxBusinesses` | Integer | No | `5` | The maximum number of businesses with emails to collect. The actor stops when it reaches this limit. |
| `scrapeMaxBusinessesPerLocation` | Boolean | No | `false` | When enabled, the actor collects up to the maximum number of businesses for each location separately. |
| `proxyConfiguration` | Object | No | `{"proxy support": true}` | Proxy settings for larger scraping runs and more reliable scraping. |

#### Required Output Fields

```json
{
  "name": "Shutter House Photography",
  "website": "https://www.shutterhousephoto.com",
  "phone": "(212) 555-0148",
  "full_address": "145 W 23rd St New York NY 10011 US",
  "city": "New York",
  "state": "NY",
  "zip": "10011",
  "country_code": "US",
  "scraped_emails": [
    "hello@shutterhousephoto.com"
  ],
  "scraped_phones": [
    "(212) 555-0148"
  ],
  "scraped_social_media": [
    "https://www.instagram.com/shutterhousephoto"
  ],
  "emails_found": 1,
  "pages_scraped": 4,
  "avg_rating": 4.8,
  "total_reviews": 126,
  "lat": "40.7440",
  "long": "-73.9945",
  "place_id": "ChIJf8iJ2mJZwokR9x2eC5z2P5A",
  "scrape_status": "success"
}
```

| Field | Label | Format | Description |
|---|---|---|---|
| `name` | Business Name | text | The business name of the photographer or studio. |
| `website` | Website | link | The business website URL. |
| `phone` | Phone | text | The main phone number listed for the business. |
| `full_address` | Address | text | The full street address and location details. |
| `city` | City | text | The city associated with the business. |
| `state` | State | text | The state associated with the business. |
| `zip` | zip | text | The ZIP code. |
| `country_code` | country\_code | text | The country code. |
| `scraped_emails` | Emails Found | array | A list of email addresses found from publicly available sources. |
| `scraped_phones` | Phone Numbers | array | A list of phone numbers found from publicly available sources. |
| `scraped_social_media` | Social Media | array | A list of social media links found from publicly available sources. |
| `emails_found` | # Emails | number | The number of email addresses found for the business. |
| `pages_scraped` | Pages Scraped | number | The number of pages scraped from the business website. |
| `avg_rating` | Rating | number | The average rating for the business. |
| `total_reviews` | Reviews | number | The total number of reviews. |
| `lat` | lat | text | The latitude value for the business location. |
| `long` | long | text | The longitude value for the business location. |
| `place_id` | place\_id | text | The place identifier for the business record. |
| `scrape_status` | Status | text | The final scraping status for the record, such as success, failed, or no\_website. |

### Solving Real Problems with Photographers Lead Generator 💼

- 🎯 **Cold Outreach** — Build photography leads for outreach campaigns without spending hours on manual research
- 📍 **Local Photography Marketing** — Find photography clients in specific cities or regions
- 📣 **Partnership Discovery** — Identify studios, vendors, and related businesses for collaboration opportunities
- 🔬 **Market Research** — Analyze commercial photography leads and portrait photography leads across locations
- 📊 **CRM Enrichment** — Add public contact details to your lead database for faster follow-up
- ⚙️ **Growth Automation** — Run repeat lead generation for photographers as part of an ongoing workflow

### Why Choose Photographers Lead Generator? 🏆

- 💰 **Focused Lead Collection** — Built specifically for photography business growth and contact discovery
- 📍 **Location-Aware Results** — Helps narrow your photography inquiries to the areas that matter most
- 🔄 **Reliable Public Data Gathering** — Collects publicly available contact data with built-in proxy support
- 💾 **Immediate Result Storage** — Saves results as they are found, reducing the risk of losing progress
- 📧 **Real Support** — Reach out at <helloparsepoint@gmail.com>

### How Many Results Can You Scrape? 📈

- Set `maxBusinesses` to control the number of businesses with emails to collect, from 1 up to 1000.
- The actual number of photography leads you get depends on the search term, location, and how many businesses publicly list contact details.
- If you want the limit applied separately for each location, set `scrapeMaxBusinessesPerLocation` to `true`.
- For larger runs, proxy support can help improve reliability.

### Legal Guidelines for Scraping Photographers Lead Generator ⚖️

This actor only works with publicly available data. It does not require logins or access to private profiles, and it is intended for legitimate photography lead generation and research use. You are responsible for following applicable laws, platform terms, and anti-spam rules in your region. If you need data removal assistance, contact <helloparsepoint@gmail.com>.

### FAQ — Photographers Lead Generator ❓

#### How Does Photographers Lead Generator Work?

You provide a search term and one or more locations, and the actor collects matching public business records. It then looks for publicly available contact details and saves the results in your Apify dataset.

#### What Kind of Photography Leads Can I Find?

You can use it for photography clients, wedding photography leads, portrait photography leads, commercial photography leads, freelance photographer leads, and photo studio leads, depending on your search term and location.

#### Can I Use More Than One Location?

Yes. The `googleMapsLocation` input accepts an array, so you can target multiple cities or regions in one run.

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

If a business has no website, the record is still handled in the output with `scrape_status` set to `no_website`.

#### How Can This Help with Photographer Marketing?

It gives you a structured list of public business contacts, which makes it easier to build outreach lists, research competitors, and scale client acquisition for photographers.

#### What Is the Maximum Number of Businesses I Can 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 scraping runs and improved reliability.

#### How Do I Get Help?

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

### Final Word ✉️

**Photographers Lead Generator** is a practical shortcut for building targeted photography leads from public business data. If you want faster photography business growth, cleaner outreach lists, and less manual prospecting, this actor gives you a simple way to get started. 📸

### 🆘 Support & Feedback

Have a question or want a custom feature for Photographers Lead Generator?

- 🐞 **Bug Reports:** Contact support for help with unexpected behavior
- ✨ **Custom Solutions & Feature Requests:** Send your ideas to the team
- 📧 **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": "Photographers",
  "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": "Photographers",
    "googleMapsLocation": [
        "New York"
    ],
    "maxBusinesses": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

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

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

```

## MCP server setup

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