# Attorney Contact Scraper (`scrapido/attorney-contact-scraper`) Actor

⚖️ Attorney Contact Scraper pulls law practice records from Google Maps—address, city, state, ZIP, phone, website & place ID. 📧 Firm sites crawled for emails and social links. 💼 Ideal for legal tech vendors & attorney marketing.

- **URL**: https://apify.com/scrapido/attorney-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/platform/actors/running/actors-in-store#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

### Attorney Contact Scraper

**Attorney Contact Scraper** helps you collect publicly available contact details for attorneys and law firms, making it easier to build outreach lists, enrich records, and support attorney lead generation. It’s a practical lawyer contact scraper for researchers, marketers, and analysts who need attorney contact extraction at scale without the manual grind.

***

### What Does Attorney Contact Scraper Do? 🤖

Attorney Contact Scraper searches for attorney and law firm listings in your chosen locations, then collects public contact details and related business information into a structured dataset. You provide a search term, one or more locations, and an optional limit. During a run, it scrapes publicly available sources, filters results to the target area, and saves contact data in real time. This makes legal contact harvesting much faster than manual browsing, especially when you need consistent results across multiple locations. ✨

***

### What Can Attorney Contact Scraper Extract? 📊

This actor gathers a focused set of business contact and profile fields that are useful for contact information scraping, law firm directory scraping, and attorney database enrichment. The output includes identity, location, contact details, ratings, and scrape status so you can review and export results easily.

| Data Type | Field Name | Description |
|---|---|---|
| Identity | `name` | Business name of the attorney or law firm |
| Web Presence | `website` | Website URL, if available |
| Contact | `phone` | Main phone number listed for the business |
| Address | `full_address` | Full address as assembled from the location details |
| Location | `city` | City for the business |
| Location | `state` | State for the business |
| Location | `zip` | ZIP or postal code |
| Location | `country_code` | Country code for the business |
| Emails | `scraped_emails` | List of public email addresses found |
| Phones | `scraped_phones` | List of public phone numbers found |
| Social | `scraped_social_media` | List of public social media links found |
| Counts | `emails_found` | Number of emails found |
| Coverage | `pages_scraped` | Number of pages scraped from the website |
| Trust Signals | `avg_rating` | Average rating value |
| Trust Signals | `total_reviews` | Total review count |
| Coordinates | `lat` | Latitude value |
| Coordinates | `long` | Longitude value |
| Identifier | `place_id` | Place identifier |
| Status | `scrape_status` | Scrape outcome status |

#### Key Features of Attorney Contact Scraper ⚡

- ✅ **Keyword-Driven Discovery:** Use your search term to focus on a specific niche, from attorney contact extraction to broader legal professional data mining.
- 🌍 **Location Targeting:** Add one or more locations to narrow results for local attorney lead generation or regional law office contact collection.
- 📧 **Public Contact Extraction:** Collects public emails, phone numbers, and social links for easier outreach and law firm directory scraping.
- 🔄 **Proxy Support:** Includes built-in proxy support for more reliable scraping and better resilience during larger runs.
- 💾 **Real-Time Saving:** Results are stored as the actor runs, reducing the risk of data loss if the job stops early.
- 📊 **Structured Dataset Output:** Clean, labeled fields make the output easy to export, analyze, and enrich in your CRM or spreadsheet.
- 🎯 **Result Limits:** Set a maximum number of businesses to control scope and keep runs focused.
- 🧭 **Multi-Location Workflows:** Great for attorney database enrichment across multiple cities or states in one go.

***

### How to Use Attorney Contact Scraper 🚀

1. **Open the actor** in Apify and go to the **Input** tab.
2. **Enter a search term** such as `Attorney` in the **Search Term** field.
3. **Add one or more locations** in the **Location** field, such as `New York`.
4. **Set the maximum number of businesses** you want to collect with contact details.
5. **Decide whether to limit results per location** using the per-location option.
6. **Configure proxies** if you plan to run larger jobs or need extra reliability.
7. **Run the actor** and monitor progress in the logs.
8. **Download the dataset** once the run is complete and export the results for outreach or analysis.

*No coding required.*

***

### Attorney Contact Scraper Output Format 📦

The actor saves results to your Apify dataset in a structured JSON format that is ready for export, filtering, or downstream enrichment.

#### Output Example

```json
[
  {
    "name": "Miller & Hart Law Group",
    "website": "https://www.millerhartlaw.com",
    "phone": "+1 212-555-0147",
    "full_address": "120 Broadway New York NY 10271 US",
    "city": "New York",
    "state": "NY",
    "zip": "10271",
    "country_code": "US",
    "scraped_emails": [
      "contact@millerhartlaw.com",
      "info@millerhartlaw.com"
    ],
    "scraped_phones": [
      "+1 212-555-0147",
      "+1 212-555-0199"
    ],
    "scraped_social_media": [
      "https://www.linkedin.com/company/miller-hart-law-group",
      "https://www.facebook.com/millerhartlaw"
    ],
    "emails_found": 2,
    "pages_scraped": 4,
    "avg_rating": 4.8,
    "total_reviews": 126,
    "lat": "40.712776",
    "long": "-74.005974",
    "place_id": "ChIJOwg_06VPwokRYv534QaPC8g",
    "scrape_status": "success"
  }
]
```

| Field | Label | Format | Description |
|---|---|---|---|
| `name` | Business Name | text | Business name of the attorney or law firm |
| `website` | Website | link | Website URL for the business |
| `phone` | Phone | text | Main phone number listed for the business |
| `full_address` | Address | text | Full address assembled from location details |
| `city` | City | text | City for the business |
| `state` | State | text | State for the business |
| `zip` | zip | text | ZIP or postal code |
| `country_code` | country\_code | text | Country code for the business |
| `scraped_emails` | Emails Found | array | List of public email addresses found |
| `scraped_phones` | Phone Numbers | array | List of public phone numbers found |
| `scraped_social_media` | Social Media | array | List of public social media links found |
| `emails_found` | # Emails | number | Number of emails found |
| `pages_scraped` | Pages Scraped | number | Number of pages scraped from the website |
| `avg_rating` | Rating | number | Average rating value |
| `total_reviews` | Reviews | number | Total review count |
| `lat` | lat | text | Latitude value |
| `long` | long | text | Longitude value |
| `place_id` | place\_id | text | Place identifier |
| `scrape_status` | Status | text | Scrape outcome status |

***

### 🎯 Use Cases of Attorney Contact Scraper

**B2B Lead Generation:** Build targeted attorney lead generation lists for outreach campaigns, partnerships, and prospecting workflows.

**Legal Prospecting Tool:** Quickly gather contact data for law firms, solo practitioners, and legal professionals across multiple locations.

**CRM Enrichment:** Add new contact details, websites, and location data to existing records for better segmentation and follow-up.

**Market Research:** Analyze attorney contact patterns, ratings, and geographic distribution for competitive or regional research.

**Law Office Contact Collection:** Compile public law office details into organized lists for directory building or internal reference.

***

### How Much Will Attorney Contact Scraper Cost You? 💰

Attorney Contact Scraper is designed for efficient runs, and you can control scope with the `maxBusinesses` setting. That means you can keep jobs small for quick tests or scale them up when you need larger batches. Apify pricing is based on the platform’s standard usage model, so your total cost depends on run length, volume, and compute usage. For budgeting, the most important lever is the maximum number of businesses you request.

***

### Is It Legal to Scrape Attorney Contact Scraper? ⚖️

This actor is intended to collect publicly available data only, such as public business details and contact information. It does not require private access or authenticated content. As with any contact information scraping workflow, you are responsible for following applicable laws and the terms of the sites you use, including privacy and anti-spam rules where relevant. For questions, feedback, or data removal requests, contact <scrapido.support@gmail.com>.

***

### Attorney Contact Scraper Input Parameters 📋

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

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `googleMapsSearchTerm` | String | ✅ Yes | `Attorney` | Search term used to find relevant businesses, such as a profession or niche |
| `googleMapsLocation` | Array | ✅ Yes | `["New York"]` | One or more target locations for the search |
| `maxBusinesses` | Integer | No | `5` | Maximum number of businesses to collect |
| `scrapeMaxBusinessesPerLocation` | Boolean | No | `false` | When enabled, collects up to the maximum number of businesses for each location separately |
| `proxyConfiguration` | Object | No | `{ "proxy support": true }` | Proxy settings for more reliable scraping |

***

### During the Actor Run ⏱️

While the actor runs, you’ll see live progress in the logs as it processes each location and collects results. The dataset is updated in real time, so you can inspect partial output before the run finishes. Runtime depends on the number of locations, the business limit, and how much public contact data is available. For larger attorney contact extraction jobs, proxy support helps improve reliability. ⚙️

***

### Final Note ✉️

If you need fast attorney contact extraction without the manual work, Attorney Contact Scraper is a simple way to collect public contact data at scale. It’s a strong fit for legal contact harvesting, law firm directory scraping, and attorney database enrichment. Questions or feedback? Reach out at <scrapido.support@gmail.com>.

***

### FAQ — Attorney Contact Scraper ❓

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

It uses your search term and locations to collect public business data, then extracts available contact information from public sources. The output is structured so you can review emails, phones, websites, and related details in one place.

#### What kinds of businesses can I scrape with Attorney Contact Scraper?

The actor is configured around attorney and law firm discovery, but the search term lets you target relevant business niches as needed. It’s especially useful for lawyer directory parser workflows and legal directory scraping.

#### Can I use Attorney Contact Scraper for attorney email finder workflows?

Yes. It’s well suited for attorney email finder use cases because it collects public email addresses when they are available and stores them in the `scraped_emails` field.

#### Does Attorney Contact Scraper support multi-location searches?

Yes. You can provide multiple locations in the `googleMapsLocation` field, which makes it useful for geographic research and broader attorney contact data extraction campaigns.

#### How many results can I collect?

You control the limit with `maxBusinesses`. If you want the same cap for each location, you can enable `scrapeMaxBusinessesPerLocation`.

#### What does the output dataset include?

The dataset includes business name, website, phone, full address, city, state, ZIP, country code, scraped emails, scraped phones, scraped social media, email count, pages scraped, ratings, reviews, latitude, longitude, place ID, and scrape status.

#### Is Attorney Contact Scraper useful for law firm directory scraping?

Absolutely. It collects structured public business contact data that can be used to build or enrich directories, compare firms, and support legal prospecting.

#### Who can I contact for support or data removal?

For support, feedback, or data removal requests, email <scrapido.support@gmail.com>.

***

### 🆘 Support & Feedback

Need help with Attorney Contact Scraper or have an idea for a new feature?

- 🐞 **Bug reports:** Tell us what happened and include the relevant run details
- ✨ **Feature requests:** Share ideas for better filtering, enrichment, or workflow support
- 📧 **Email:** <scrapido.support@gmail.com>

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

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

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

```

## MCP server setup

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