# Manta Business Scraper — SMB Leads (US) (`scrapersdelight/manta-business-scraper`) Actor

Extract US small-business leads from Manta.com: company name, phone, website, full address, industry (NAICS/ISIC), employees, founding date and social links. Filter by state and industry. Clean JSON-LD, no login.

- **URL**: https://apify.com/scrapersdelight/manta-business-scraper.md
- **Developed by:** [Scrapers Delight](https://apify.com/scrapersdelight) (community)
- **Categories:** Automation, Lead generation, Agents
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 per business returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Manta Business Scraper — US SMB Leads

Turn Manta.com's US small-business directory into a clean lead list — company **name, phone, website, full address, and industry (NAICS/ISIC)** — filterable by **state** and **industry**. No login.

Every Manta company profile publishes a complete `LocalBusiness` structured-data block, so records are clean and consistent (not fragile HTML scraping).

### What you get

One row per business, with:

- **name** — company name
- **phone** — business phone (when published)
- **email** — business email **only when the business published one on Manta** (many rows have phone + website but no email — this Actor ships no email guessing or enrichment)
- **website** — the company's own website
- **streetAddress, city, state, zip, country** — full mailing address
- **latitude, longitude** — geocode
- **category** — industry / business category
- **naics, isicV4** — standard industry codes (for TAM / segmentation)
- **numberOfEmployees, foundingDate** — firmographics (when published)
- **socialLinks** — Twitter/X, Facebook, LinkedIn, Instagram profiles
- **description** — the company blurb
- **mantaId, mantaUrl, scrapedAt** — source + provenance

### Use cases

- **Merchant-services & payments prospecting** — phone + website + industry SMB leads for power-dialer / SDR teams.
- **Local SEO & marketing agency lead lists** — target one industry across a metro or state.
- **Power-dialer feeds** — geo × industry slices ("plumbers in Dallas", "HVAC in Texas").
- **Market / TAM research by NAICS** — size and segment a local market by standard industry code.

### How to use

Two modes:

**1. Search by state / industry** (`mode: "search"`)

- `states`: one or more US states — 2-letter codes or full names (e.g. `["TX"]`, `["California","Florida"]`).
- `industryKeyword` (optional): keeps only businesses whose category / name matches (e.g. `plumbing`, `hvac`, `dentist`). Blank = every business in the state.

**2. From start URLs** (`mode: "startUrls"`)

- Paste Manta listing pages `/mb_.../{industry}/{city}` (the Actor extracts every company on them, following pagination) and/or direct profile pages `/c/{id}/{slug}`.

Common options:

- `requireContact` (default `true`): drop rows that have neither a phone nor a website.
- `maxItems` (default `200`): cost/speed guard; `0` = no cap.
- **Proxy**: **no proxy by default.** Manta's Cloudflare gate scores IP reputation, and a measured lane test on 2026-08-02 put Apify RESIDENTIAL-US at 0/8 on profile pages — the paid lane was no better than the free one while accounting for ~65% of run cost. You can still select any proxy in the input; if you have IPs Cloudflare trusts, use them.

#### Input example

```json
{
  "mode": "search",
  "states": ["TX"],
  "industryKeyword": "plumbing",
  "requireContact": true,
  "maxItems": 25,
  "proxyConfiguration": { "useApifyProxy": false }
}
```

#### Output example

```json
{
  "name": "Tribeca Plumbing, Inc.",
  "phone": "(214) 402-5454",
  "email": null,
  "website": "http://www.tribecaplumbinginc.com/",
  "streetAddress": "6211 W Northwest Hwy Ste C251",
  "city": "Dallas",
  "state": "Texas",
  "zip": "75225",
  "country": "United States",
  "latitude": "32.8664357",
  "longitude": "-96.8000069",
  "category": "Plumbing Specialties",
  "naics": "",
  "isicV4": "1711",
  "numberOfEmployees": "",
  "foundingDate": "",
  "socialLinks": ["https://www.twitter.com/TribecaPlumber", "http://www.facebook.com/tribecaplumbingtx/"],
  "description": "Your Dallas/Ft. Worth Plumbing Experts…",
  "mantaId": "mh1g4hf",
  "mantaUrl": "https://www.manta.com/c/mh1g4hf/tribeca-plumbing-inc",
  "scrapedAt": "2026-07-07T16:00:00.000Z"
}
```

### Pricing

Pay per result: **one charge per business record delivered** (`business-scraped`). You pay only for the rows the Actor actually hands you.

### FAQ

- **Do I need a Manta login?** No. All fields come from public company profiles.
- **Why is `email` often empty?** Manta only shows an email when the business published one. This Actor does not guess or enrich emails — it reports what Manta publishes (most rows have phone + website).
- **Why no proxy by default?** Manta's Cloudflare bot-management keys on IP reputation, not on proxy tier. Measured 2026-08-02 from Apify: RESIDENTIAL-US 0/8 and DATACENTER 0/8 on profile pages, versus the free container egress which did better. Residential was 65% of run cost and bought nothing, so you are no longer billed for it by default. Set your own proxy in the input if you have trusted IPs.
- **How many businesses can I get?** Manta enumerates ~50,000 companies per state sitemap file and multiple files per state — millions US-wide. Use `maxItems` and `industryKeyword` to scope a run.

### Compliance

You are responsible for complying with Manta's Terms of Service and applicable data/privacy law.

# Actor input Schema

## `mode` (type: `string`):

'search' = by state + optional industry keyword; 'startUrls' = paste Manta /mb listing or /c profile URLs.

## `states` (type: `array`):

2-letter codes or full names (e.g. TX, California). Enumerates that state's sitemap. Leave empty in startUrls mode.

## `industryKeyword` (type: `string`):

Keeps only businesses whose category/name matches (e.g. 'plumbing', 'hvac', 'dentist'). Blank = all businesses in the state.

## `startUrls` (type: `array`):

Manta /mb\_...\_/{industry}/{city} listing pages or /c/{id}/{slug} profile pages.

## `requireContact` (type: `boolean`):

Drops records that have neither phone nor website.

## `maxItems` (type: `integer`):

Cost/speed guard. 0 = no cap.

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

Default is NO PROXY: measured 2026-08-02, Apify RESIDENTIAL-US scored 0/8 on Manta profile pages while the free container egress scored better, so paying for residential bought nothing and was 65% of run cost. Manta's Cloudflare gate is IP-reputation based - if you have your own trusted IPs, set them here.

## Actor input object example

```json
{
  "mode": "search",
  "states": [
    "TX"
  ],
  "industryKeyword": "plumbing",
  "requireContact": true,
  "maxItems": 200,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `records` (type: `string`):

The dataset of scraped Manta business leads (one item per business).

# 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 = {
    "states": [
        "TX"
    ],
    "industryKeyword": "plumbing"
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapersdelight/manta-business-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 = {
    "states": ["TX"],
    "industryKeyword": "plumbing",
}

# Run the Actor and wait for it to finish
run = client.actor("scrapersdelight/manta-business-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "states": [
    "TX"
  ],
  "industryKeyword": "plumbing"
}' |
apify call scrapersdelight/manta-business-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapersdelight/manta-business-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/n3g8f1hoEoAJ3sWz0/builds/eCQrSx2rF0lVRzQhg/openapi.json
