# Accounting Contact Scraper (`scrapido/accounting-contact-scraper`) Actor

🧾 Accounting Contact Scraper pulls accounting firm records from Google Maps—full address, city, state, ZIP, phone & website. 📧 Company sites are crawled for emails and social links. 🚀 Ideal for accounting software vendors & B2B marketers.

- **URL**: https://apify.com/scrapido/accounting-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

### Accounting Contact Scraper

**Accounting Contact Scraper** helps you replace time-consuming manual research with fast, structured accounting lead generation. It scrapes publicly available sources to build an accounting email list and accounting contact data for marketers, analysts, and researchers who need reliable accounting B2B leads without spending hours collecting them by hand. 🚀

### What is Accounting Contact Scraper? 🔍

Accounting Contact Scraper is an Apify automation actor designed to collect publicly available business contact information for accounting-related searches. It helps you build accounting firm contacts, CPA contact list data, and bookkeeper contact database records in a structured format that is easy to review and export. Whether you’re a sales professional, recruiter, or marketer, this accounting contact extraction tool simplifies automated accounting scraping and supports smarter outreach decisions. It is built for teams that need accounting business intelligence from public web data, not manual copy-pasting.

### What Does Accounting Contact Scraper Do? ⚙️

This actor takes your search term and location, finds matching businesses, then gathers contact details and related public signals into clean dataset rows. It is designed for accounting prospecting, accounting directory scraping, and finance contact scraper workflows, making it easier to scale outreach and research.

- 🔍 **Searches** for businesses using your chosen accounting-related term and location
- 📧 **Extracts** publicly available emails, phone numbers, and social media links
- 🌍 **Filters** results by the locations you provide
- 📊 **Structures** output as clean JSON records for easy analysis
- 💾 **Saves** results directly to the Apify dataset as they are collected

### What Would Results from Accounting Contact Scraper Look Like? 👀

Here’s an example of the kind of structured accounting contact data you can expect in the dataset. Each row represents one business contact record, ready for export and review.

```json
{
  "name": "Anderson & Wells CPA",
  "website": "https://www.andersonwellscpa.com",
  "phone": "+1 212-555-0148",
  "full_address": "245 Madison Ave New York NY 10016 US",
  "city": "New York",
  "state": "NY",
  "zip": "10016",
  "country_code": "US",
  "scraped_emails": [
    "info@andersonwellscpa.com"
  ],
  "scraped_phones": [
    "+1 212-555-0148"
  ],
  "scraped_social_media": [
    "https://www.linkedin.com/company/anderson-wells-cpa"
  ],
  "emails_found": 1,
  "pages_scraped": 4,
  "avg_rating": 4.8,
  "total_reviews": 36,
  "lat": "40.7505",
  "long": "-73.9801",
  "place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
  "scrape_status": "success"
}
```

Export the data as JSON from the Apify dataset tab.

### Capabilities of Accounting Contact Scraper 🛠️

| Capability | What It Means for You |
|---|---|
| ✅ **Location Targeting** | Focus your accounting lead generation on specific cities or regions |
| ✅ **Search Term Based Discovery** | Use your accounting-related keywords to find relevant businesses |
| ✅ **Email Extraction** | Collect publicly available contact emails for outreach and research |
| ✅ **Phone and Social Media Collection** | Enrich accounting contact data with phone numbers and social profiles |
| ✅ **Result Cap Control** | Limit the number of businesses collected per run |
| ✅ **Per-Location Option** | Choose whether limits apply per location or across all locations |
| ✅ **Proxy Support** | Built-in proxy support for reliable scraping at larger scale |
| ✅ **Structured Dataset Output** | Get clean records that fit accounting outreach automation workflows |

### Launch Your First Accounting Contact Scraper Task 🚀

#### Required Input Fields

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `googleMapsSearchTerm` | String | Yes | `Accounting` | The business type or niche you want to search for. |
| `googleMapsLocation` | Array | Yes | `["New York"]` | The location or locations you want to target. |
| `maxBusinesses` | Integer | No | `5` | The maximum number of businesses with emails to collect. |
| `scrapeMaxBusinessesPerLocation` | Boolean | No | `false` | If enabled, the actor collects up to the maximum for each location separately. |
| `proxyConfiguration` | Object | No | `{"proxy support": true}` | Proxy settings for web scraping. Recommended for larger runs. |

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

#### Required Output Fields

| Field | Label | Format | Description |
|---|---|---|---|
| `name` | Business Name | text | The business name returned in the dataset. |
| `website` | Website | link | The business website, if available. |
| `phone` | Phone | text | The main phone number listed for the business. |
| `full_address` | Address | text | The full address built from the available location details. |
| `city` | City | text | The city associated with the business. |
| `state` | State | text | The state associated with the business. |
| `zip` | zip | text | The postal code returned for the business. |
| `country_code` | country\_code | text | The country code associated with the record. |
| `scraped_emails` | Emails Found | array | A list of publicly available emails found for the business. |
| `scraped_phones` | Phone Numbers | array | A list of phone numbers discovered during scraping. |
| `scraped_social_media` | Social Media | array | A list of social media links found for the business. |
| `emails_found` | # Emails | number | The number of emails found for the business. |
| `pages_scraped` | Pages Scraped | number | How many pages were processed for that business. |
| `avg_rating` | Rating | number | The business rating, if available. |
| `total_reviews` | Reviews | number | The total number of reviews, if available. |
| `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 unique place identifier for the business record. |
| `scrape_status` | Status | text | The scraping outcome for that record. |

### Solving Real Problems with Accounting Contact Scraper 💼

Accounting Contact Scraper supports practical workflows across accounting lead generation, accounting prospecting, and accounting outreach automation.

- 🎯 **Lead Generation** — Build accounting B2B leads for cold email campaigns and follow-up sequences
- 📣 **Audience Research** — Create a targeted accounting contact list for segmented marketing
- 🤝 **Sales Prospecting** — Find accounting firm contacts and CPA contact list entries faster
- 🔬 **Market Intelligence** — Support accounting business intelligence and competitive analysis
- ⚙️ **Workflow Automation** — Feed structured contact data into your CRM or outreach stack

### What Sets Accounting Contact Scraper Apart? 🏆

- 💰 **Focused for Accounting Research** — Built for accounting contact extraction and related prospecting use cases
- 🔄 **Structured Public Data Output** — Returns clean records with emails, phones, social links, and business details
- 📧 **Support When You Need It** — Reach us at <scrapido.support@gmail.com>
- ⚡ **Practical for Outreach** — Helps you move from research to accounting outreach automation faster

### Search Limits and Capacity 📈

- Use `maxBusinesses` to control how many businesses with emails you want per run
- Set `scrapeMaxBusinessesPerLocation` to decide whether the limit applies per location or across all locations
- Results depend on how many publicly accessible accounting businesses match your search term and location
- Proxy support is available through `proxyConfiguration` for more reliable larger-scale scraping
- Output is stored in the Apify dataset and can be exported from there

### Is It Legal to Scrape Accounting Contact Data? ⚖️

This actor collects only publicly available data from business websites and public web pages. It does not require private access or restricted content. As with any accounting data scraping workflow, you are responsible for following applicable laws, local regulations, and website terms of service. Use the data responsibly for legitimate research, marketing, and outreach purposes only. For data-removal or compliance inquiries, contact <scrapido.support@gmail.com>.

### Ending Note ✉️

Stop spending hours manually searching for accounting firm contacts. The **Accounting Contact Scraper** helps you build cleaner contact lists, faster outreach workflows, and more efficient accounting lead generation in minutes. Try it on Apify and turn public web data into actionable leads. 🚀

### FAQ — Accounting Contact Scraper ❓

#### How Does Accounting Contact Scraper Work?

It takes your search term and location, collects matching public business records, and saves contact details to your Apify dataset. The output is ready for analysis, export, and accounting prospecting workflows.

#### What Types of Businesses Can I Target?

You can target the business type or niche you enter in `googleMapsSearchTerm`, along with the locations you provide in `googleMapsLocation`. This makes it useful for accounting directory scraping and finance contact scraper use cases.

#### What Data Does It Return?

The dataset includes business name, website, phone, address fields, email lists, phone lists, social media links, number of emails found, pages scraped, rating, reviews, coordinates, place ID, and scrape status.

#### Can I Use It for CPA Contact List Building?

Yes. It is suitable for CPA contact list building, bookkeeper contact database creation, and broader accounting email scraper workflows, as long as the data is publicly available and used responsibly.

#### How Do I Control the Number of Results?

Use `maxBusinesses` to set the target number of businesses with emails. You can also enable `scrapeMaxBusinessesPerLocation` if you want that limit applied to each location separately.

#### Does It Support Proxy Usage?

Yes. The `proxyConfiguration` input lets you configure proxy settings for larger or more demanding runs. This helps improve reliability when scraping at scale.

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

If a business has no website, the actor still records the business with empty contact lists and a `scrape_status` of `no_website`, unless you are using email-only filtering in your workflow.

#### How Can I Get Support?

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

### 🆘 Support & Feedback

Have a question or found an issue with Accounting Contact Scraper?

- 🐞 **Bug Reports:** Share the issue through your Apify setup or repository workflow
- ✨ **Feature Requests:** Tell us what would improve your accounting lead generation workflow
- 📧 **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.

## `validateEmails` (type: `boolean`):

Run DNS/MX validation and confidence scoring on every email found, and include the results (confidence score, validation status, role-based/catch-all flags) in the output.

## `minRating` (type: `integer`):

Skip businesses rated below this (1-5 stars). Leave at 0 for no filter.

## `minReviews` (type: `integer`):

Skip businesses with fewer than this many Google reviews. Leave at 0 for no filter.

## `requireWebsite` (type: `boolean`):

Skip businesses with no website listed on Google Maps (they can't be crawled for contact info anyway).

## `leadMode` (type: `string`):

Business Contacts (default) returns the business's generic contact info (info@, main phone, socials). Decision-Maker Finder instead looks for a named person with a job title (e.g. "Jane Smith, Owner") on the business's team/about pages — a best-effort heuristic, not guaranteed on every site.

## `proxyConfiguration` (type: `object`):

Proxy settings for scraping. Recommended for large-scale scraping.

## Actor input object example

```json
{
  "googleMapsSearchTerm": "Accounting",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "scrapeMaxBusinessesPerLocation": false,
  "validateEmails": false,
  "minRating": 0,
  "minReviews": 0,
  "requireWebsite": false,
  "leadMode": "Business Contacts",
  "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": "Accounting",
    "googleMapsLocation": [
        "New York"
    ],
    "maxBusinesses": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

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

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

```

## MCP server setup

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