# Architects Email Scraper (`solid-scraper/architects-email-scraper`) Actor

🏗️ Find architect business emails fast! Our SEO-focused email scraper targets verified architects by firm, location, and niche—ideal for lead generation, agencies, and sales teams. ⚡ Export instantly. 📩 Start building your pipeline today!

- **URL**: https://apify.com/solid-scraper/architects-email-scraper.md
- **Developed by:** [SolidScraper](https://apify.com/solid-scraper) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

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

### Architects Email Scraper 📬

**Architects Email Scraper** is an Apify actor that helps you find architecture firm contact information and extract emails alongside phone numbers and social media profiles. It’s designed to solve the time-consuming part of building an **architects email database**—so you can quickly create **architects contact lists** for outreach, lead generation, and research.

Whether you’re a marketer, recruiter, or data analyst, this **architect email scraper** streamlines collecting **AEC email lead scraper** data from publicly available web sources and pairing it with structured business details—saving you hours of manual work.

***

### 🚀 Why choose Architects Email Scraper?

| Feature | Benefit |
| --- | --- |
| ✅ **Purpose-built for architecture firms** | Find and extract contact info for the “Architects” niche using your location filters |
| ✅ **Structured output for easy import** | Store results with fields like `name`, `website`, `scraped_emails`, and more in a consistent dataset format |
| ✅ **Reliability with proxy support** | Works with your **proxy configuration** to improve stability for larger runs |
| ✅ **Data completeness (email + phone + social)** | Extract emails, phone numbers, and social links (when available) rather than emails-only snapshots |
| ✅ **Scale by limits** | Control how many businesses to scrape using `maxBusinesses` and choose whether limits apply per location |
| ✅ **Resilient scraping workflow** | Includes success/failure tracking and records a `scrape_status` for each business |

***

### 🔎 Key features

- ✅ **Architect-focused search**: Uses your `googleMapsSearchTerm` (default **Architects**) to target relevant businesses in each location
- 🌍 **Location-aware scraping**: Accepts multiple entries in `googleMapsLocation` to build broader architect email lead scraper lists
- 🧾 **Contact extraction from websites**: Scrapes business websites to extract `scraped_emails`, `scraped_phones`, and `scraped_social_media`
- 🛡️ **Proxy support for reliability**: Includes a `proxyConfiguration` option (recommended for larger-scale jobs)
- 💾 **Dataset-first results**: Pushes each business (and, when available, each extracted email) directly to the Apify dataset
- 📞 **Phone + social included**: Extracts additional contact context alongside emails for richer follow-up
- 🔁 **Clear success tracking**: Outputs `emails_found`, `pages_scraped`, and a `scrape_status` value for transparency

***

### 📝 Input

Provide input via an `input.json` file. Example structure:

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

#### Input Fields

| Field | Required | Description |
| --- | --- | --- |
| `googleMapsSearchTerm` | No | Business type or niche to search for (the default prefill is **Architects**). |
| `googleMapsLocation` | Yes | Target geographic locations to search. Provide an array of locations like `["Miami, Florida"]` (you can include multiple). |
| `maxBusinesses` | No | Target number of businesses to find (allowed range **1–1000**). The run stops when the target is reached. |
| `scrapeMaxBusinessesPerLocation` | No | If `true`, the actor collects up to `maxBusinesses` results **per location**. If `false`, it combines locations into one total limit. |
| `proxyConfiguration` | No | Proxy settings for scraping. Recommended for large-scale scraping. Uses the built-in proxy editor with your settings (including `proxy support`). |
| `proxyConfiguration • proxy support` | No | Enables Apify Proxy by default (prefilled to `true`). |

> Note: Only `googleMapsLocation` and `googleMapsSearchTerm` are required.

***

### 📦 Output

The actor saves each result row into the **Business Contact Data** dataset as JSON objects.

```json
[
  {
    "name": "Example Architecture Firm",
    "website": "https://example.com/",
    "phone": "+1-555-123-4567",
    "full_address": "123 Main St New York NY 10001 US",
    "city": "New York",
    "state": "NY",
    "zip": "10001",
    "country_code": "US",
    "scraped_emails": ["info@example.com"],
    "scraped_phones": ["+1-555-987-6543"],
    "scraped_social_media": ["https://www.linkedin.com/company/example/"],
    "emails_found": 1,
    "pages_scraped": 5,
    "avg_rating": 4.5,
    "total_reviews": 123,
    "lat": 40.7128,
    "long": -74.006,
    "place_id": "ChIJ...",
    "scrape_status": "success"
  }
]
```

#### Output Fields

| Field | Type | Description |
| --- | --- | --- |
| `name` | string | Business name for the architect/firm. |
| `website` | string | The business website URL extracted for scraping. |
| `phone` | string | Phone value coming from the business listing data. |
| `full_address` | string | Combined address string (built from street/city/state/zip/country\_code). |
| `city` | string | City portion of the business address. |
| `state` | string | State portion of the business address. |
| `zip` | string | ZIP/postal code portion of the business address. |
| `country_code` | string | Country code portion of the business address. |
| `scraped_emails` | array | Emails extracted from the business website (empty if none found). |
| `scraped_phones` | array | Phone numbers extracted from the business website (may be empty). |
| `scraped_social_media` | array | Social media profile links extracted from the business website (may be empty). |
| `emails_found` | number | Count of scraped emails found for that business. |
| `pages_scraped` | number | Number of processed URLs/pages during website scraping. |
| `avg_rating` | number | Average rating for the business listing. |
| `total_reviews` | number | Total reviews count for the business listing. |
| `lat` | number | Latitude for the business location. |
| `long` | number | Longitude for the business location. |
| `place_id` | string | Place identifier from the business listing data. |
| `scrape_status` | string | Status indicator such as `success`, `failed`, or `no_website`. |

> Dataset behavior note: when emails are found, the actor pushes flattened rows—one dataset row per extracted email—with the email value stored in `email_found`.

***

### 🧭 How to use Architects Email Scraper (via Apify Console)

1. **Open Apify Console**\
   Log in at [console.apify.com](https://console.apify.com) and open the **Actors** page.

2. **Find the actor**\
   Search for **Architects Email Scraper** and open the actor details.

3. **Configure your input**\
   In the **INPUT** section, set:
   - **Location** (`googleMapsLocation`) — one or more locations as an array
   - **Search Term** (`googleMapsSearchTerm`) — default is **Architects**
     Then optionally set:
   - **Maximum Businesses With Emails** (`maxBusinesses`)
   - **Scrape Max Businesses Per Location** (`scrapeMaxBusinessesPerLocation`)
   - **Proxy Configuration** (`proxyConfiguration`)

4. **Choose proxy settings (recommended for scale)**\
   If you plan to scrape many businesses or multiple locations, enable proxy configuration using the provided proxy editor options.

5. **Run the actor**\
   Click **Run** to start. You’ll see progress in logs as it processes locations and scrapes websites.

6. **Review the output dataset**\
   After completion, open the **OUTPUT** tab and view the dataset named **Business Contact Data** (table view includes fields like Business Name, Emails Found, Phone Numbers, and Status).

7. **Export your results**\
   Export the dataset to JSON/CSV from Apify (use it directly in CRM workflows, outreach lists, or analysis pipelines).

No coding required—get accurate **architects email scraper** results in minutes ✅

***

### ⚙️ Advanced features & SEO optimization

- 📊 **Engineered for architects email lead scraper workflows**: Tailored for the “Architects” niche so you can build **architect email database** style outputs faster.
- 🔄 **Input scaling with clear limits**: Use `maxBusinesses` to stop at the business volume you want, with `scrapeMaxBusinessesPerLocation` controlling whether limits are per location or global.
- 💼 **Richer AEC context**: Works as an **AEC email lead scraper** by extracting not only emails, but also `scraped_phones` and `scraped_social_media`.
- 🛡️ **Built-in proxy support for reliable scraping**: Use `proxyConfiguration` (including `proxy support`) to improve stability for bulk runs.

***

### 🎯 Best use cases

- 📈 **Marketing team lead generation**: Build targeted architects lead generation emails by turning architecture firm websites into structured outreach-ready data.
- 🧑‍🔬 **Market researchers**: Compile an architect email database by location and niche for competitive research and trend analysis.
- 🏗️ **B2B sales pipelines**: Enrich CRM records with business contacts plus phone and social links for better follow-up.
- ✉️ **Email ops and list hygiene teams**: Use email counts (`emails_found`) and scrape status (`scrape_status`) to understand coverage before outreach.
- 📍 **Regional business development**: Compare architects contact list coverage across multiple `googleMapsLocation` entries.
- 🧾 **Data analysts**: Join extracted fields like `avg_rating`, `total_reviews`, `lat`, and `long` to analyze firm distribution alongside contactability.
- 💻 **Automation engineers**: Feed dataset rows into downstream workflows (e.g., lead scoring, enrichment, routing to sales reps) using consistent output fields.

***

### 🔧 Technical specifications

**Supported Input Formats**

- ✅ `googleMapsLocation` as an array of location strings
- ✅ `googleMapsSearchTerm` as a string (defaults to **Architects**)
- ✅ `maxBusinesses` as an integer (1–1000)
- ✅ `scrapeMaxBusinessesPerLocation` as a boolean
- ✅ `proxyConfiguration` as a proxy object (supports `proxy support`)

**Proxy Support**

- ✅ Proxy support via `proxyConfiguration` with `proxy support` (prefilled to `true`)

**Retry Mechanism**

- ✅ Includes resilience in the overall workflow so runs can continue collecting results even when some businesses fail (tracked in `scrape_status`)

**Dataset Structure**

- ✅ Dataset: **Business Contact Data**
- ✅ Flattened rows: when `scraped_emails` are found, the actor pushes one row per extracted email using `email_found`
- ✅ Key fields include `scraped_emails`, `scraped_phones`, `scraped_social_media`, `emails_found`, `pages_scraped`, and `scrape_status`

**Rate Limits & Performance**

- ✅ Designed for bulk-style scraping by using controlled limits (`maxBusinesses`) and structured concurrency for website scraping

**Limitations**

- ❌ If a business has no `website`, it will be marked with `scrape_status` of `no_website` and `scraped_emails` will be empty.
- ❌ Email availability depends on what’s publicly present on each target business website.

***

### ❓ FAQ

#### Is Architects Email Scraper a bulk email finder for architects?

✅ Yes. **Architects Email Scraper** is specifically set up as a bulk email finder for architects by searching your provided locations and then extracting emails (plus phone and social links) from business websites.

#### What inputs do I need to run it?

You must provide `googleMapsLocation` and `googleMapsSearchTerm`. You can also set `maxBusinesses`, choose whether limits apply per location with `scrapeMaxBusinessesPerLocation`, and optionally configure `proxyConfiguration`.

#### Does it extract phones and social media, or only emails?

✅ It extracts emails, phone numbers, and social media profiles. Emails go to `scraped_emails`, phones to `scraped_phones`, and social links to `scraped_social_media`.

#### Will it save results even if some businesses fail?

✅ Yes. Each business row includes `scrape_status` so you can distinguish `success`, `failed`, and `no_website`. Failed or unavailable website cases will produce empty email/phone/social arrays.

#### Can I control how many businesses are collected?

✅ Yes. Use `maxBusinesses` to set the maximum business count. If you enable `scrapeMaxBusinessesPerLocation`, the actor targets up to `maxBusinesses` results per location; otherwise it uses a single combined limit.

#### How does the output work when multiple emails are found?

When emails are found, the actor pushes flattened rows so you’ll see one dataset row per extracted email using `email_found`, while the rest of the business fields remain associated.

#### Do I need to use a proxy?

Not strictly. But ✅ proxy configuration is recommended for larger-scale scraping. You can set `proxyConfiguration` and it includes `proxy support`.

***

### 🤝 Support & feature requests

Have questions or want improvements for **Architects Email Scraper**? We’d love to hear from you.

- 💡 **Feature Requests**: Example ideas include adding additional export formats, improving dataset row structure, or expanding extraction coverage for more contact fields.
- 📧 **Contact**: Reach out via <dataforleads@gmail.com>.

Your feedback helps shape the roadmap for future versions of this **architects email scraper**.

***

*If you want an SEO-optimized architects email scraper that’s built for real-world outreach workflows, **Architects Email Scraper** makes it easy to collect and structure contact data at scale.*

***

### Disclaimer

**This tool only accesses publicly accessible sources**. It does not access private profiles, authenticated data, or password-protected pages.

You are responsible for ensuring your use complies with applicable laws and platform terms (including GDPR/CCPA where relevant) and for respecting each source’s policies and rate limits. For data removal requests, contact <dataforleads@gmail.com>.

Use **Architects Email Scraper** responsibly, ethically, and for legitimate purposes only.

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

## Actor input object example

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

# 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": "Architects",
    "googleMapsLocation": [
        "New York"
    ],
    "maxBusinesses": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

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

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,solid-scraper/architects-email-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/53KZVj0dnn7WV7W1e/builds/vxRyPntpKMuXUFsye/openapi.json
