# Manta Scraper - US Small Business Directory & B2B Leads (`scrapesage/manta-scraper`) Actor

Scrape US small business listings from Manta.com by industry + city or URL: name, address, phone, website, category — plus email, revenue estimate, employees, SIC/NAICS, year founded, geo, socials & a key contact. Optional website contact enrichment, lead scoring & monitor mode.

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

## Pricing

from $5.00 / 1,000 company scrapeds

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 Scraper — US Small Business Directory & B2B Leads (Emails, Revenue, Employees)

Extract **US small business listings from [Manta.com](https://www.manta.com)** — one of America's largest business directories — by **industry + city**, company URL, or category page. Get the fields other Manta scrapers leave empty: **business email, revenue estimate, employee band, SIC & NAICS codes, year founded, geo-coordinates, a key contact, social profiles and the company's real website** (decoded from Manta's redirect). Optionally turn every company into a **ready-to-contact B2B lead** by crawling its own site for emails, phones and socials.

Built for reliability: a real anti-detect browser through **US residential proxies** clears Manta's Cloudflare protection, so runs return data instead of `403`s.

### Why this Manta scraper?

Most Manta scrapers return only a name, phone and address — and hand back the Google-Maps directions link instead of the company's real website. This actor merges the **SSR listing card + the profile's JSON-LD + on-page firmographics** into the **richest record in the category**:

| Data | Typical scrapers | This actor |
|---|---|---|
| Name, full address, phone | ✅ | ✅ |
| **Real business website** (decoded, not the map link) | ❌ / wrong link | ✅ |
| Business **email** | ❌ | ✅ opt-in |
| **Revenue estimate** | ❌ | ✅ opt-in |
| **Employee band** | partial | ✅ opt-in |
| **SIC & NAICS** code + description | ❌ | ✅ opt-in |
| Year founded, latitude/longitude | ❌ | ✅ opt-in |
| Key contact (name + title) | ❌ | ✅ opt-in |
| Social profiles (LinkedIn/Facebook/Instagram/X/YouTube) | ❌ | ✅ opt-in |
| Website-enriched emails / phones / socials | ❌ | ✅ opt-in |
| Lead score (0–100) per company | ❌ | ✅ |

### Use cases

- **B2B lead generation** — build targeted local business lists by industry and city, complete with phone, website, email, revenue and headcount, then reach the decision-maker. Score leads by contactability and firmographics (`leadScore`).
- **Sales territory & market research** — size an industry in a metro, map competitors, and segment by revenue band, employee band or SIC/NAICS code.
- **CRM enrichment & data cleansing** — feed company URLs and get back a clean, deduplicated firmographic record for each one.
- **Local SEO & citation building** — audit business NAP (name/address/phone) data across a category.
- **New-business monitoring** — schedule recurring runs with monitor mode to catch newly listed or changed businesses in an industry + city.

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) — the free plan is enough to try this actor.
2. Open the **Manta Scraper**, enter a **search term** (e.g. `marketing agencies`) and a **location** (e.g. `Austin, TX`) — or paste Manta URLs — and click **Start**.
3. Turn on **Include company details** for the full firmographic profile (email, revenue, employees, SIC/NAICS, socials, contact).
4. **Export** as JSON, CSV, Excel, XML, or RSS — or pull results via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "searchTerms": ["marketing agencies"],
    "location": "Austin, TX",
    "maxResults": 100,
    "includeDetails": true,
    "enrichContacts": true,
    "withEmailOnly": false,
    "monitorMode": false
}
```

- **searchTerms** — business type / industry / keyword; each is a separate search (`plumbers`, `accounting firms`, `manufacturers`, `law firms`).
- **location** — US `City, ST` to focus the search (resolved through Manta's own location index). Leave empty for a nationwide search.
- **startUrls** — optional direct Manta URLs: company profiles (`/c/<id>/<slug>`), search pages (`/search?...`), or industry category pages (`/mb_.../<industry>`). Profile URLs are always fully detailed.
- **maxResults** *(default 100)* — global cap on companies output.
- **includeDetails** *(default false)* — open each company profile to add email, revenue estimate, employee band, SIC/NAICS, year founded, geo, description, services, socials and a key contact.
- **enrichContacts** *(default false)* — crawl each company's own website (home + contact/about) for publicly listed emails, phones and socials. Implies `includeDetails`.
- **state / minEmployees / withEmailOnly / withWebsiteOnly / withPhoneOnly** — output filters.
- **monitorMode** *(default false)* — remember companies across runs and emit only NEW or CHANGED ones. Pair with an Apify [Schedule](https://docs.apify.com/platform/schedules).

### Output

One record per company (`type: "company"`):

```json
{
    "type": "company",
    "mantaId": "mx6h3mr",
    "name": "Hall Accounting Co.",
    "url": "https://www.manta.com/c/mx6h3mr/hall-accounting-co-",
    "street": "5111 Greenville Ave #601552",
    "city": "Dallas",
    "state": "TX",
    "postalCode": "75206",
    "country": "United States",
    "phone": "(214) 402-2345",
    "email": "info@hallacctco.com",
    "website": "http://www.hallacctco.com/",
    "category": "Accounting Services",
    "employeesRange": "10 to 19",
    "revenueEstimate": "$1 to 5 million",
    "sicCode": "8721",
    "sicDescription": "Accounting, Auditing, and Bookkeeping Services",
    "naicsCode": "541211",
    "yearFounded": "2009",
    "latitude": 32.8497332,
    "longitude": -96.7707877,
    "description": "Hall Accounting Company offers a full range of accounting, reporting, tax and audit services…",
    "primaryContact": { "name": "Jeremy Hall", "title": "Owner", "phone": null },
    "services": ["Bookkeeping", "Tax Preparation", "Audit"],
    "socialProfiles": { "linkedin": "https://www.linkedin.com/company/hall-accounting-co" },
    "emails": ["info@hallacctco.com", "jeremy@hallacctco.com"],
    "leadScore": 88,
    "searchTerm": "accounting firms",
    "searchLocation": "Dallas, TX",
    "scrapedAt": "2026-07-02T12:00:00.000Z"
}
```

### Automate & schedule

Run this actor on autopilot and pull results into your own stack:

- **[Apify API](https://docs.apify.com/api/v2)** — start runs, fetch datasets, and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** — official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** — run it daily/weekly with monitor mode to track new businesses in an industry + city; perfect for lead pipelines.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/manta-scraper').call({
    searchTerms: ['marketing agencies'],
    location: 'Austin, TX',
    maxResults: 100,
    includeDetails: true,
    enrichContacts: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} companies & B2B leads`);
```

### Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** — multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — push new company leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a monitored search finds new businesses.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** — auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** — pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** — trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. You can call this actor from Claude, ChatGPT, or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** — ask your assistant to "find marketing agencies in Austin with 10+ employees and list their emails" and let it run this scraper for you.

### Agent-ready: autonomous payments (x402 & Skyfire)

This actor is **agent-ready** — AI agents can discover it, run it, and **pay for it autonomously**, with no Apify account and no human in the loop. It uses [pay-per-event](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)** — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) — no account, no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/skyfire)** — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

### More scrapers from scrapesage

Build a complete **US B2B lead-gen stack** with the rest of the scrapesage directory:

- **[BBB Scraper](https://apify.com/scrapesage/bbb-scraper)** — Better Business Bureau business leads, ratings & accreditation.
- **[Google Maps Scraper](https://apify.com/scrapesage/google-maps-scraper)** — local business places, leads & contacts.
- **[TaxBuzz Scraper](https://apify.com/scrapesage/taxbuzz-scraper)** — tax preparers, CPAs & accountant leads.
- **[Kompass Scraper](https://apify.com/scrapesage/kompass-scraper)** — global B2B company & supplier leads.
- **[Growjo Scraper](https://apify.com/scrapesage/growjo-scraper)** — company revenue, funding, growth & B2B leads.
- **[LinkedIn Company Scraper](https://apify.com/scrapesage/linkedin-company-scraper)** — firmographics & B2B company data.
- **[US Business Formation Scraper](https://apify.com/scrapesage/us-business-formation-scraper)** — newly registered LLC & company leads.
- **[Website Contact Scraper](https://apify.com/scrapesage/website-contact-scraper)** — emails, phones & socials from any domain list.

### Tips

- **Cleaner lists**: broad industry terms (`accounting firms`, `manufacturers`, `law firms`) and category pages return established companies; some highly competitive local-service terms also surface SEO-style listings — filter with `minEmployees`, `withWebsiteOnly` or `withEmailOnly`.
- **Cost control**: run listing-only first (fast, cheap), then turn on `includeDetails` for the segment you care about. Enrichment only runs for companies that actually have a website.
- **Proxies**: keep the default US residential group — Manta blocks datacenter IPs at Cloudflare.
- **Nationwide**: leave `location` empty to search a term across the whole US.

### FAQ

**How do I scrape Manta businesses for a specific city?** Put the industry in `searchTerms` and the city in `location` (`Austin, TX`). Combine with `state`, `minEmployees` or `withEmailOnly` to narrow the list.

**Where do the emails come from?** From the company's public Manta profile (`includeDetails`) and, with `enrichContacts` on, from the company's own website (home + contact/about) — the same publicly listed addresses a human visitor sees.

**Why is the website field better than other scrapers?** Manta wraps every outbound link in a `/urlverify?redirect=` tracker (and the map button is a Google-Maps link). This actor decodes the real destination, so `website` is the company's actual site — not a redirect or a map link.

**Can I export to Google Sheets, CSV, or Excel?** Yes — one click in the dataset view, or automatically on every run via the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**How do I monitor new businesses automatically?** Turn on `monitorMode` and create a [Schedule](https://docs.apify.com/platform/schedules); optionally add a [webhook](https://docs.apify.com/platform/integrations/webhooks) or [Zapier zap](https://docs.apify.com/platform/integrations/zapier) to push new leads into your CRM.

**A field is null — why?** Some companies genuinely don't publish an email, website, revenue or employee count on Manta (especially free, unclaimed listings). Fields are `null` only when the data doesn't exist, not because the scraper skipped them.

**Is scraping Manta legal?** This actor collects publicly available business data only. You are responsible for using the data in compliance with applicable laws (e.g. GDPR/CCPA where personal data is involved) and Manta's terms.

### Need help?

Open an issue on the actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests are welcome — this actor is actively maintained.

# Actor input Schema

## `searchTerms` (type: `array`):

What to look for on Manta, e.g. <code>marketing agencies</code>, <code>plumbers</code>, <code>accounting firms</code>, <code>manufacturers</code>, <code>law firms</code>. Combine with a Location to get businesses in one city; leave Location empty for a nationwide search. Each term is a separate saved search.

## `location` (type: `string`):

US city to focus the search on, e.g. <code>Austin, TX</code>, <code>Chicago, IL</code>, <code>Miami, FL</code>. The city is resolved through Manta's own location index. Leave empty for a nationwide search of the term(s) above.

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

Direct Manta URLs to scrape in addition to the searches above: company profiles (<code>manta.com/c/\<id>/\<slug></code>), search result pages (<code>manta.com/search?...</code>) or industry category pages (<code>manta.com/mb\_.../\<industry></code>). Profile URLs are always fully detailed.

## `maxResults` (type: `integer`):

Global cap on the number of company records to output across all searches / URLs. Each search or category page returns ~20 companies. Set to <code>0</code> for no limit (bounded only by the run timeout).

## `includeDetails` (type: `boolean`):

Open each company's Manta profile to enrich the listing with its full firmographics: business email, revenue estimate, employee band, SIC & NAICS codes, year founded, latitude/longitude, description, services, social profiles and a key contact. Slower (one page per company) and billed per company (companyDetails event). Leave off for the fast, cheap listing-only run (name, address, phone, website).

## `enrichContacts` (type: `boolean`):

For every company with a website, crawl its home + contact/about pages and extract publicly listed e-mail addresses, phone numbers and social profiles (LinkedIn, Facebook, Instagram, X, YouTube, TikTok) — turning each company into a ready-to-contact B2B lead. Implies 'Include company details' (needed to find the website) and is billed as an enriched lead.

## `state` (type: `string`):

Keep only companies in this US state. Accepts a 2-letter code (e.g. <code>TX</code>) or full name. Leave empty for all.

## `minEmployees` (type: `integer`):

Keep only companies whose employee band starts at or above this number (requires company details). Leave empty for all.

## `withEmailOnly` (type: `boolean`):

Keep only companies for which a business email was found (requires company details or contact enrichment).

## `withWebsiteOnly` (type: `boolean`):

Keep only companies that have a business website.

## `withPhoneOnly` (type: `boolean`):

Keep only companies that have a phone number.

## `monitorMode` (type: `boolean`):

Remember companies across runs and emit only NEW or CHANGED ones (phone, website, email, revenue or employee-band change). Great for watching an industry + city for new businesses. Works independently of Apify Schedules — pair it with a Schedule to run on a cadence.

## `monitorKey` (type: `string`):

Namespace for monitor memory. Use a distinct key per saved search so their states don't collide.

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

Proxies to use. Residential proxies are REQUIRED — Manta is protected by Cloudflare and blocks datacenter IPs. The default (Apify residential, US) is recommended.

## `debugMode` (type: `boolean`):

Dump raw page diagnostics to the key-value store for troubleshooting selectors.

## `headful` (type: `boolean`):

Run the browser headful (under Xvfb) — clears Cloudflare's challenge far more reliably. On by default.

## Actor input object example

```json
{
  "searchTerms": [
    "marketing agencies",
    "commercial plumbers"
  ],
  "location": "Austin, TX",
  "maxResults": 100,
  "includeDetails": false,
  "enrichContacts": false,
  "withEmailOnly": false,
  "withWebsiteOnly": false,
  "withPhoneOnly": false,
  "monitorMode": false,
  "monitorKey": "default",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  },
  "debugMode": false,
  "headful": true
}
```

# Actor output Schema

## `results` (type: `string`):

All scraped Manta company records as JSON items in the default dataset.

# 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 = {
    "searchTerms": [
        "marketing agencies"
    ],
    "location": "Austin, TX",
    "maxResults": 100,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/manta-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 = {
    "searchTerms": ["marketing agencies"],
    "location": "Austin, TX",
    "maxResults": 100,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/manta-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 '{
  "searchTerms": [
    "marketing agencies"
  ],
  "location": "Austin, TX",
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call scrapesage/manta-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/4wizxIAhYixYeY4RC/builds/JiguOhSDsCUjvoNe2/openapi.json
