# Local Business & Professional Leads Scraper for Expertise.com (`scrapesage/expertise-scraper`) Actor

Scrape Expertise.com 'best in city' lists of financial advisors, accountants, lawyers, insurance agencies, agencies and home-service pros: rank, phone, website, address, rating, review sites, licence and a lead score. Optional e-mail lookup. Independent tool, not affiliated with Expertise.com.

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

## Pricing

from $1.72 / 1,000 business listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Local Business & Professional Leads Scraper for Expertise.com (Finance, Legal, Insurance, Agencies & Home Services)

> **Disclaimer:** This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Expertise.com or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "Expertise.com" is referenced only to describe the publicly available website this Actor collects data from.

Extract **every business on Expertise.com's curated "best in city" lists**: the hand-picked top providers across **finance, legal, insurance, home improvement and business services** in US cities and states. Financial advisors, accountants, lawyers in 35 practice areas, insurance agencies, marketing, SEO, web and software agencies, property managers, contractors and 140 categories in all. Each business comes with its **rank on the list**, its **own website**, phone, full address, rating and review count, links to its **Google, Yelp, Facebook, Avvo, Angi and other review profiles**, services and credentials, licence details, named attorneys on legal lists and a ready-to-use **lead score**. Turn on the optional website lookup to add the business's **e-mail address**.

No login, no cookies, no browser: fast, clean extraction straight from the published lists.

### Why this scraper for Expertise.com data?

Expertise.com lists are short, vetted and ranked, so every row is a business that an editorial team chose for that city. This actor reads the whole record behind each card.

| Data | This actor |
| --- | --- |
| Business **website** (its own domain, never a map pin) | ✅ |
| Phone (normalised, plus E.164) and full street address | ✅ |
| **Rank on a vetted "best in city" list** + list size and last-update date | ✅ |
| 140 categories across 5 industries, by city or **whole state** | ✅ |
| Rating and review count, exactly as the list shows them | ✅ |
| **Google / Yelp / Facebook / Avvo / Angi / Justia / FindLaw / Zillow / Clutch profiles** with counts | ✅ |
| Google place ID (CID) to join with Google Maps data | ✅ |
| Services, specialties and credentials (CFP, licensed and bonded...) | ✅ |
| **Licence number, status and licensing body** (regulated trades) | ✅ |
| Named attorneys with title and admission date (legal lists) | ✅ |
| Expertise.com quality grades (professionalism, responsiveness...) | ✅ |
| Business e-mail from its own website | ✅ optional |
| Lead score (0-100) | ✅ |
| Monitoring mode (only businesses added since the last run) | ✅ |

### What you get

| Field | What it holds |
|---|---|
| `businessName`, `categoryLabel`, `categoryGroupLabel` | The business and the list it is on ("Financial Advisors", "Finance") |
| `rankPosition`, `listProviderCount`, `isFeatured` | Its position on the list as visitors see it, how many businesses the list holds, and whether it is shown as featured |
| `phone`, `phoneE164`, `website` | Phone as (XXX) XXX-XXXX and in international format; the business's own website |
| `fullAddress`, `streetAddress`, `city`, `state`, `zip` | Address (home-based pros often list only their city) |
| `rating`, `reviewCount`, `externalReviewCount` | The star rating and review count the list shows, and the total across every review site |
| `reviewProfiles` | Each review site with its profile link, review count and score |
| `googleCid`, `googleMapsUrl` | Google place ID and a direct Google Maps link, when the list links the business's Google listing directly |
| `socialLinks` | Facebook page (plus Instagram, LinkedIn, X, YouTube and TikTok when the website lookup finds them) |
| `services`, `credentials` | Every tag on the card; `credentials` keeps the certifications and licences among them |
| `socialLinksText`, `reviewProfilesText`, `servicesText`, `credentialsText`, `contactEmailsText` | The same lists as one line of plain text, for spreadsheets and the table views |
| `licenseNumber`, `licenseStatus`, `licensingBody` | Professional licence for regulated trades |
| `contactName`, `contactTitle`, `teamMembers` | Named attorneys (title, licensed since, bio) on legal lists |
| `grades`, `priceInfo`, `priceDetails` | Expertise.com's quality grades and the business's own pricing note |
| `listingTier`, `isEnhancedListing`, `hasLeadEmail`, `isAd` | Listing tier, whether the card accepts e-mail inquiries, sponsored-row flag |
| `description`, `logoUrl`, `galleryImageUrls` | Editorial description, logo and photos |
| `email`, `contactEmails`, `contactPhones` | From the business website, when the e-mail lookup is on |
| `profileUrl`, `listUrl`, `listUpdatedAt`, `metroPopulation` | Link to the business on the list, the list itself, when Expertise.com last updated it, and the metro's population |
| `leadScore`, `searchCategory`, `searchLocation`, `scrapedAt` | 0-100 lead score and where the row came from |

### Use cases

- **B2B lead generation**: financial advisors, accountants, lawyers, insurance agencies, agencies and contractors buy software, payroll, lending, insurance and marketing services. Pull them by category and city or state, with the website and phone to reach them.
- **Agency and partner prospecting**: build lists of SEO, PPC, web-design, software, staffing and property-management firms in every city you sell to.
- **Legal marketing**: attorneys by practice area with their name, title, years licensed and review footprint on Avvo, Justia and FindLaw.
- **Market mapping**: who ranks in each city, how established they are (reviews, grades, listing tier) and which markets have no list yet.
- **Enrichment and matching**: append website, phone, licence and Google place ID to a list you already have.
- **New-business alerts**: schedule a monitoring run and get only the businesses newly added to a city's list.

### 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 this scraper, pick one or more **Categories** (or a whole group such as "Legal: ALL 35 categories") and type **Locations** such as `Houston, TX` or `Texas`.
3. Click **Start**. Businesses arrive in the dataset in list order, top-ranked first. (With both fields left empty, a quick sample runs: Financial Advisors in Houston, TX.)
4. **Export** as JSON, CSV, Excel, XML or RSS, or read the results through the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "categories": ["financial-advisors", "accountant-cpa"],
    "locations": ["Houston, TX", "Colorado"],
    "maxResults": 200,
    "maxResultsPerList": 10,
    "minRating": 4.5,
    "enrichContactEmails": false
}
```

- **categories**: a pick-list of the 140 categories, plus five shortcuts that take every category of a group (finance, legal, insurance, home-improvement, business).
- **locations**: `City, ST` (`Houston, TX`), a state (`Texas` or `TX`) for every list in it, biggest cities first, or a city alone when its name is unique. Spellings such as St./Saint and Ft./Fort are matched to the site's own.
- **startUrls** / **urlsFromFile**: Expertise.com pages to read directly: a city list, a state list, a category page (every list nationwide), a city page (every category in that city) or a profile. A file or Google Sheet of URLs works too.
- **maxResults**: cap for the whole run, shared fairly across every list (top-ranked businesses first). **maxResultsPerList** keeps only the top N of each list.
- **Filters**: `excludeAds` (on by default), `enhancedListingsOnly`, `licensedOnly`, `withWebsiteOnly`, `withPhoneOnly`, `minRating` (decimals allowed), `minReviews`, `withEmailOnly`.
- **enrichContactEmails**: visits each business's own website for its e-mail address, phones and social profiles.
- **monitorMode** + **monitorStoreName**: return only businesses added since the previous run.

### Output

One record per business:

```json
{
    "type": "provider",
    "id": "2331033",
    "businessName": "Bullogic Wealth Management",
    "categoryLabel": "Financial Advisors",
    "categoryGroupLabel": "Finance",
    "rankPosition": 4,
    "listProviderCount": 17,
    "city": "Pearland",
    "state": "TX",
    "fullAddress": "3571 Mustang Ridge Lane, Pearland, TX 77584",
    "phone": "(832) 543-8890",
    "phoneE164": "+18325438890",
    "website": "https://bullogicwealth.com/",
    "socialLinks": { "facebook": "https://www.facebook.com/BullogicWealth/" },
    "rating": 5,
    "reviewCount": 26,
    "reviewProfiles": {
        "google": { "url": "https://www.google.com/maps/place/Bullogic+Wealth+Management/...", "count": 24, "score": 5 },
        "facebook": { "url": "https://www.facebook.com/BullogicWealth/", "count": 1, "score": 5 },
        "yelp": { "url": "https://www.yelp.com/biz/bullogic-wealth-management-pearland", "count": 1, "score": 5 }
    },
    "googleCid": "5351932403038647359",
    "googleMapsUrl": "https://www.google.com/maps?cid=5351932403038647359",
    "services": ["Certified Financial Planner (CFP)"],
    "credentials": ["Certified Financial Planner (CFP)"],
    "grades": { "professionalism": "A+", "friendliness": "A+", "helpfulness": "A+", "knowledge": "A+", "responsiveness": "A+" },
    "priceInfo": "1% of asset",
    "listingTier": "free",
    "hasLeadEmail": true,
    "isAd": false,
    "profileUrl": "https://www.expertise.com/finance/financial-advisors/texas/houston#bullogicwealthmanagement",
    "listUpdatedAt": "2026-10-07T13:53:41.000Z",
    "metroPopulation": 2242193,
    "searchLocation": "Houston, TX",
    "leadScore": 63
}
```

With the website lookup on, a business whose site shows an address also gets, for example, `"email": "info@mysignaturefa.com"` and the full `contactEmails` list. On legal lists, `contactName`, `contactTitle` and `teamMembers` (`{ "name": "Keith Stern", "title": "Principal", "licensedSince": "2000-09-18" }`) name the attorneys.

The dataset has four views: **Providers**, **Leads**, **Reviews, credentials & licences** and **Website e-mails**. Each run also saves an `OUTPUT_SUMMARY` record listing every list it read, what each delivered and any list Expertise.com does not have.

### Good to know

- Expertise.com publishes one curated list per category and city, usually 6 to 25 businesses. Breadth comes from more categories, cities or whole states. Not every category exists in every city: the run says which lists are missing and suggests nearby cities that have one.
- Disability lawyers and the insurance categories also have state-wide lists, which a state location includes.
- `rating` is empty when the list shows the business as unrated, so a missing rating is never shown as 0 stars.
- Licence numbers exist only for regulated trades where Expertise.com verified one (financial advisers, insurance agencies, real estate agents, movers and similar). Legal and agency lists carry none.
- Named attorneys appear on legal lists; other categories do not name their staff.
- Expertise.com grades and pricing notes appear only for businesses that have them.
- `googleCid` is filled when the list links the business's Google listing directly, and empty when it links a plain Google search.
- The website lookup only finds what a business shows on its own site. The headline `email` is always on the business's own domain or a personal mailbox; other addresses found stay in `contactEmails`.
- Sponsored rows (a lead-marketplace ad or Expertise.com's own concierge line) are skipped unless you turn `excludeAds` off.
- Monitoring: the first run of a list returns its current businesses and remembers all of them; later runs return only businesses added since.

### How much does it cost to scrape Expertise.com?

This Actor uses Apify's **pay-per-event** pricing: you pay only for the results it delivers, with no monthly rental and no start fee. The events it can charge are:

- **Business listing**: one business delivered to the dataset, with every field above.
- **Website e-mail**: added on top of a business only when the optional website lookup finds a business e-mail for it. Sites with nothing found cost nothing extra, and the lookup never runs unless you switch it on.

The current price of each event is shown on the **Pricing** tab of this page. Set a maximum total charge on the run if you want a hard cap on spend: the run stops cleanly at it, and every delivered row is billed.

### 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 or weekly with **monitoring mode** to capture only newly listed businesses.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)**: trigger a CRM import, Slack alert or e-mail 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/expertise-scraper').call({
    categories: ['financial-advisors', 'seo-agencies'],
    locations: ['Austin, TX', 'Colorado'],
    maxResults: 300,
    withWebsiteOnly: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} business 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 business leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)**: get notified when a monitored city gets new providers.
- **[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. 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 the best financial advisors in Austin with their websites and ratings" and let it run the 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), with no account and 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 **professional-services & B2B lead-gen stack**:

- **[TaxBuzz Scraper](https://apify.com/scrapesage/taxbuzz-scraper)**: CPAs, tax preparers and accountant leads with e-mails.
- **[FindLaw Scraper](https://apify.com/scrapesage/findlaw-scraper)**: lawyers, law firms and legal leads.
- **[Financial Advisor & Broker Scraper](https://apify.com/scrapesage/financial-advisor-scraper)**: advisors and brokers from FINRA and SEC.
- **[Insurance Agent Scraper](https://apify.com/scrapesage/insurance-agent-scraper)**: State Farm and Farmers agent leads.
- **[Healthgrades Scraper](https://apify.com/scrapesage/healthgrades-scraper)**: doctors, reviews and provider leads.
- **[Thumbtack Scraper](https://apify.com/scrapesage/thumbtack-scraper)**: home-service pros, reviews and leads.
- **[DesignRush Scraper](https://apify.com/scrapesage/designrush-scraper)**: marketing and creative agency leads.
- **[US Business Formation Scraper](https://apify.com/scrapesage/us-business-formation-scraper)**: new LLC and company leads.

### Tips

- **Cover a market fully**: use a state as the location (`Texas`) and a group of categories. The cap is shared across every list, top-ranked businesses first, so raise `maxResults` or set `maxResultsPerList` for "top N in every city".
- **Cleaner contact lists**: leave `excludeAds` on and set `withWebsiteOnly`, or `withEmailOnly` for a list where every row has a business e-mail.
- **Warmest leads first**: sort by `leadScore`, or keep `enhancedListingsOnly` for businesses that pay for a featured listing.
- **Recurring monitoring**: combine [Schedules](https://docs.apify.com/platform/schedules) with `monitorMode`, one `monitorStoreName` per tracked search.

### FAQ

**How do I get, say, every personal injury lawyer in Florida?** Pick `personal-injury-lawyers` in Categories and type `Florida` in Locations. The run reads every Florida city list, biggest cities first.

**Where do the e-mails come from?** Expertise.com publishes each business's website. Turn on `enrichContactEmails` and the actor reads that site (home, contact and about pages) for an e-mail address, phones and social profiles. The `email` field only holds an address on the business's own domain or a personal mailbox.

**Why is a city missing?** Expertise.com does not publish every category in every city. The run's status message and `OUTPUT_SUMMARY` name each missing list and suggest nearby cities that have one.

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

**How do I get only new businesses over time?** Turn on `monitorMode` and run on a [Schedule](https://docs.apify.com/platform/schedules). The first run returns the current lists; later runs return only businesses added since.

**Which categories are supported?** 140: finance (8), legal (35), insurance (6), home improvement (59) and business services (32). The Categories field lists them all, with a shortcut for each whole group.

**Is scraping Expertise.com legal?** This actor collects publicly available business information only. You are responsible for using it in line with applicable laws (for example GDPR or CCPA where personal data is involved) and the source website's terms.

### Data & lawful use

This Actor reads business and professional listings that the professionals themselves published to be found: names, roles, firms, ratings and the contact details shown on the public listing. Because those details belong to identifiable people, treat the output as personal data. If you are in the EU or UK you are the data controller for what you do with it: have a lawful basis (usually legitimate interest for B2B prospecting or market research), keep any outreach relevant to the professional's line of work, honour opt-outs and deletion requests, and do not use the output for spam.

Under [Apify's Standard Actor Contract](https://docs.apify.com/legal/standard-actor-contract), which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.

### Disclaimer

**This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Expertise.com or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.**

"Expertise.com" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official Expertise.com product, is not authorised or certified by Expertise.com, and does not distribute Expertise.com software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.

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

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

Search reads the "best in city" lists for the categories and locations below (plus any Start URLs you add). Start URLs reads only the Expertise.com pages you paste.

## `categories` (type: `array`):

Pick one or more professions. The first five entries select every category of a group at once (for example all 35 legal practice areas). A category only returns businesses in cities where Expertise.com publishes that list. Leave Categories and Locations both empty to run a quick sample (Financial Advisors in Houston, TX).

## `locations` (type: `array`):

One per row. "City, ST" (Houston, TX), a state ("Texas" or "TX") for every list in that state, biggest cities first, or a city alone when the name is unique. Spellings such as St./Saint and Ft./Fort are matched to the site's own. With categories but no location, Houston, TX is searched; with a location but no category, Financial Advisors.

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

Paste Expertise.com pages: a city list (…/finance/financial-advisors/texas/houston), a state list (…/legal/disability-lawyers/texas), a category page (…/home-improvement/plumbing = every list nationwide, biggest markets first), a city page (…/texas/houston = every category listed there) or a profile (…/profile/<name>). In Search mode these are read in addition to the search.

## `urlsFromFile` (type: `string`):

Paste a list of Expertise.com URLs (one per line), or one link to a .txt/.csv file, Google Sheet or Google Drive file containing them.

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

Cap on businesses for the whole run. It is shared fairly across every list the run reads, top-ranked businesses first, so many cities each get their share. A city list holds about 6-25 businesses.

## `maxResultsPerList` (type: `integer`):

Keep only the top N businesses of each list (for example the top 5 in every city). Leave empty for no per-list limit.

## `excludeAds` (type: `boolean`):

Skip the occasional sponsored row (a lead-marketplace ad or Expertise.com's own concierge line) so only real businesses are returned and billed.

## `enhancedListingsOnly` (type: `boolean`):

Only businesses on Expertise.com's enhanced (paid, claimed) listing tier - usually 0-2 per list, shown at the top.

## `licensedOnly` (type: `boolean`):

Only businesses for which Expertise.com publishes a licence number (financial advisers, insurance agencies, real estate agents, movers and other regulated trades; legal and agency lists have none).

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

Only businesses that list their own website (almost all do).

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

Only businesses that list a phone number.

## `minRating` (type: `number`):

Only businesses with at least this star rating (0-5, decimals allowed such as 4.5). Unrated businesses are excluded when this is above 0.

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

Only businesses with at least this many reviews across the review sites the list shows.

## `enrichContactEmails` (type: `boolean`):

Visit each business's own website (home, contact and about pages) for an e-mail address, phones and social profiles. Billed as "Website e-mail" only for businesses where a business e-mail is found; sites with nothing found cost nothing extra.

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

Only return businesses whose website shows a business e-mail address. Switches the website e-mail lookup on.

## `deduplicateProviders` (type: `boolean`):

Return each business once per run even when it appears on several lists (several cities or categories).

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

Remember each list. The first run returns the current lists; later runs return only businesses newly added to them. Pair it with an Apify Schedule.

## `monitorStoreName` (type: `string`):

Named key-value store that keeps the monitoring memory. Use a different name per tracked search to keep their histories apart (letters, digits and hyphens).

## `maxConcurrency` (type: `integer`):

Parallel requests (list pages and website lookups).

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

Expertise.com works through the default Apify proxy; a refused request is retried on a new IP.

## Actor input object example

```json
{
  "mode": "search",
  "maxResults": 100,
  "excludeAds": true,
  "enhancedListingsOnly": false,
  "licensedOnly": false,
  "withWebsiteOnly": false,
  "withPhoneOnly": false,
  "minRating": 0,
  "minReviews": 0,
  "enrichContactEmails": false,
  "withEmailOnly": false,
  "deduplicateProviders": true,
  "monitorMode": false,
  "monitorStoreName": "expertise-monitor",
  "maxConcurrency": 6,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

Every business as a JSON item in the default dataset (views: Providers, Leads, Reviews & credentials, Website e-mails).

## `summary` (type: `string`):

Each list read, how many businesses it showed and delivered, lists the site does not have (with suggestions) and why the run stopped.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/expertise-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/expertise-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 '{}' |
apify call scrapesage/expertise-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapesage/expertise-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/3BRqipjUqVCLv7hds/builds/rZt5lnqpKgF169DFe/openapi.json
