# BizBuySell Scraper - Businesses For Sale & Broker Leads (`scrapesage/bizbuysell-scraper`) Actor

Scrape BizBuySell businesses-for-sale listings by state, category, price or URL. Get asking price, cash flow, EBITDA, gross revenue, broker name & phone, location, financing & lead score.

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

## Pricing

from $4.00 / 1,000 business listing 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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## BizBuySell Scraper — Businesses For Sale & Broker Leads (Financials, Cash Flow & Broker Phone)

Extract **complete BizBuySell business-for-sale data** — the fields most scrapers leave empty: **asking price, cash flow (SDE), EBITDA, gross revenue, seller-financing status, the listing broker's name + phone + brokerage**, and fresh-deal signals. Search by **state, industry, price, cash flow, or any BizBuySell URL**, and turn every listing into a ready-to-action deal lead.

No login, no API key — fast JSON extraction from BizBuySell's own page data, with anti-bot handling built in.

### Why this BizBuySell scraper?

Most BizBuySell scrapers either choke on the site's anti-bot wall (flaky, sub-75% success) or only grab the headline and price. This actor reads BizBuySell's full server-rendered listing feed and ships the **richest, most reliable dataset in the category**:

| Data | Typical scrapers | This actor |
|---|---|---|
| Asking price | ✅ | ✅ |
| Cash flow (SDE) + EBITDA | partial | ✅ |
| Gross revenue, inventory, FF&E, real-estate value | ❌ | ✅ opt-in |
| Listing **broker name + phone + brokerage** | ❌ / partial | ✅ |
| Broker profile URL + active / sold listing counts | ❌ | ✅ |
| Seller-financing & real-estate-included flags | ❌ | ✅ |
| New-listing / recently-updated freshness flags | ❌ | ✅ |
| Year established, employees, reason for selling | ❌ | ✅ opt-in |
| Industry + listing type (established / asset / RE / franchise) | partial | ✅ |
| Lead score (0–100) per listing | ❌ | ✅ |
| **Monitor mode** (only new / changed listings) | ❌ | ✅ |
| Reliable behind BizBuySell anti-bot | ❌ (often 50–75%) | ✅ residential + auto-retry |

### Use cases

- **Deal sourcing & acquisition** — business buyers, search funds, private-equity and family offices: filter by industry, geography, asking price and cash flow to build a live pipeline of on-market businesses.
- **Broker & M&A lead generation** — every listing carries the **listing broker's name, phone and brokerage** — prospect business brokers and intermediaries directly, scored by `leadScore` and listing volume.
- **Valuation comps & market sizing** — pull cash-flow / asking-price / revenue multiples by industry and state for valuation benchmarks and market research.
- **Lender & financing outreach** — SBA lenders, business-acquisition lenders and brokers can target listings flagged for seller financing or SBA pre-qualification.
- **Fresh-deal alerts** — run on a schedule with **monitor mode** to capture only newly listed or price-changed businesses for a daily/weekly deal feed.

### 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 **BizBuySell Scraper**, choose **States** and/or **Industry categories** (or paste BizBuySell **Search URLs**), set your filters, and click **Start**.
3. Watch results stream into the dataset table.
4. **Export** as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "states": ["Florida", "Texas"],
    "categories": ["Restaurants & Food"],
    "minAskingPrice": 100000,
    "minCashFlow": 50000,
    "listingTypes": ["Established Business"],
    "includeDetails": true,
    "maxItems": 100,
    "monitorMode": false
}
````

- **states** — US states to scrape (`Florida`, `Texas`, `California`, …). Leave empty for the nationwide feed.
- **categories** — industry categories (`Restaurants & Food`, `Health Care & Fitness`, `Manufacturing`, `Online & Technology`, …). Combine with `states` to narrow by state + industry.
- **searchUrls** — *(advanced)* paste any BizBuySell browse/search URL copied from your browser (keyword searches, city pages, custom filters). Runs in addition to the structured inputs.
- **keyword** — keep only listings whose title / description / industry / location contains this text.
- **listingTypes** — `Established Business`, `Asset Sale`, `Business Real Estate`, `Startup`, `Franchise`.
- **minAskingPrice / maxAskingPrice / minCashFlow** — numeric financial filters.
- **includeDetails** *(default false)* — fetch each listing's detail page to add gross revenue, full description, year established, employees, inventory, FF\&E, real-estate value and reason for selling.
- **maxItems** *(default 100)* — maximum listing records to return.
- **monitorMode** *(default false)* — output only **new** or **price-changed** listings versus previous runs (see below).
- **proxyConfiguration** *(default US residential)* — BizBuySell blocks datacenter traffic; keep residential.

### Output

One record per business-for-sale listing:

```json
{
    "listingId": 2521606,
    "listingType": "Established Business",
    "name": "Industrial Magnetic Equipment Firm | 50% Repeat Orders",
    "url": "https://www.bizbuysell.com/business-opportunity/.../2521606/",
    "description": "Industrial Safety and Maintenance Solutions Distribution company…",
    "location": "Tampa, FL",
    "city": "Tampa",
    "state": "FL",
    "stateName": "Florida",
    "askingPrice": 6750000,
    "cashFlow": 1342264,
    "ebitda": null,
    "grossRevenue": 3297326,
    "currency": "USD",
    "realEstateIncluded": false,
    "sellerFinancingAvailable": true,
    "industry": "Manufacturing",
    "category": "Manufacturing",
    "yearEstablished": "1999",
    "employees": "12",
    "reasonForSelling": "Retirement",
    "isNewListing": true,
    "isRecentlyUpdated": false,
    "isHotProperty": false,
    "adLevel": "Diamond",
    "images": ["https://images.bizbuysell.com/…W768.webp"],
    "imageCount": 1,
    "brokerName": "Ron Matheson",
    "brokerPhone": "(800) 251-1559",
    "brokerCompany": "WebsiteClosers.com",
    "brokerProfileUrl": "https://www.bizbuysell.com/business-broker/ron-matheson/…/",
    "brokerActiveListings": 312,
    "brokerSoldListings": 540,
    "isBrokerListing": true,
    "leadScore": 92,
    "monitorStatus": "new",
    "scrapedAt": "2026-06-24T00:00:00.000Z"
}
```

Fields are `null` only when BizBuySell genuinely doesn't publish them (e.g. cash flow "Not Disclosed", owner-listed FSBO with no broker) — not because the scraper skipped them.

### Monitor mode — only new & changed deals

Turn on **monitorMode** to track listings across runs. The actor remembers every listing it has seen (in a named key-value store) and, on the next run, outputs only listings that are **new** or whose **asking price / cash flow / title changed** — each tagged with `monitorStatus: "new"` or `"updated"`.

This is the perfect way to build a **fresh-deal feed**: pair it with [Apify Schedules](https://docs.apify.com/platform/schedules) to run daily or weekly, and only pay for the new deals each run surfaces. Monitor mode keeps its own state and **does not interfere with the Apify scheduler** — schedule freely.

### 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 hourly/daily/weekly with monitor mode to watch a state, industry, or saved search for new listings.
- **[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/bizbuysell-scraper').call({
    states: ['Florida', 'Texas'],
    categories: ['Restaurants & Food'],
    minCashFlow: 50000,
    includeDetails: true,
    maxItems: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} business-for-sale listings`);
```

### 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 deals or broker leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a monitored search finds new listings.
- **[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 manufacturing businesses for sale in Texas under $2M with seller financing and list the brokers" and let it run this scraper.

### More scrapers from scrapesage

Build a complete **deal-sourcing & business-intelligence stack**:

- **[Crexi Scraper](https://apify.com/scrapesage/crexi-scraper)** — commercial real estate for sale and lease.
- **[SBA Loan Leads Scraper](https://apify.com/scrapesage/sba-loan-leads-scraper)** — SBA 7(a)/504 borrowers and lenders (acquisition financing).
- **[US Business Formation Scraper](https://apify.com/scrapesage/us-business-formation-scraper)** — newly registered businesses, state by state.
- **[US UCC Filings Scraper](https://apify.com/scrapesage/us-ucc-filings-scraper)** — UCC liens for due diligence and lender intel.
- **[US Franchise Registrations Scraper](https://apify.com/scrapesage/us-franchise-registrations-scraper)** — franchise FDD registrations and franchisors.
- **[SEC Form D Funding Scraper](https://apify.com/scrapesage/sec-form-d-funding-scraper)** — private-placement fundraising events.
- **[ImportYeti Scraper](https://apify.com/scrapesage/importyeti-scraper)** — US import / supplier intelligence by company.
- **[Texas Business Leads Scraper](https://apify.com/scrapesage/texas-business-leads-scraper)** — registered Texas businesses as B2B leads.

### Tips

- **State + industry**: combine `states` and `categories` for tight targeting (e.g. Texas + Restaurants & Food).
- **Big result sets**: BizBuySell returns ~60 listings per page; raise `maxItems` and `maxPagesPerSearch` to go deeper, or split by state/industry.
- **Reliability**: keep the default **US residential** proxy. BizBuySell blocks datacenter IPs; the actor warms up a session cookie and auto-retries on a fresh IP when an individual residential IP is challenged.
- **Cost control**: detail enrichment is opt-in and billed separately — leave it off when the search-card financials (asking price, cash flow, EBITDA) are enough.

### FAQ

**How do I scrape BizBuySell for a specific state or industry?** Put the state(s) in `states` and/or the industry in `categories`. Combine them to narrow to a state + industry. For anything more specific, search on bizbuysell.com and paste the resulting URL into `searchUrls`.

**Does it get broker contact details?** Yes — the listing broker's name, phone, brokerage, and profile URL come straight from BizBuySell's listing data (no website crawl needed). Owner-listed (FSBO) listings without a broker return `null` for these.

**Where do gross revenue and year established come from?** Those live on each listing's detail page. Turn on `includeDetails` to fetch them (billed per detail-enrichment event).

**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 get only new listings?** Turn on `monitorMode` and run on a [Schedule](https://docs.apify.com/platform/schedules). Each run outputs only new or price-changed listings.

**Is scraping BizBuySell legal?** This actor collects publicly available listing data only. You are responsible for using the data in compliance with applicable laws and BizBuySell'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

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

US states to scrape businesses for sale from. Leave empty to scrape the nationwide feed (or use Search URLs / Categories).

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

Industry categories to scrape. Combine with States to narrow further (state + category). Leave empty for all industries.

## `searchUrls` (type: `array`):

Paste any BizBuySell browse/search URL (e.g. a keyword search, city page, or filtered result). Copy the URL straight from your browser after searching on bizbuysell.com. These run in addition to the States/Categories above.

## `keyword` (type: `string`):

Optional. Only keep listings whose title, description, industry or location contains this text (applied to the listings returned by your search).

## `listingTypes` (type: `array`):

Keep only these listing types. Leave empty to include all.

## `minAskingPrice` (type: `integer`):

Keep only listings with an asking price at or above this value.

## `maxAskingPrice` (type: `integer`):

Keep only listings with an asking price at or below this value.

## `minCashFlow` (type: `integer`):

Keep only listings with annual cash flow (SDE) at or above this value.

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

Fetch each listing's detail page to add gross revenue, full description, year established, employees, inventory, FF\&E, real-estate value and reason for selling. Slower and billed per detail-enrichment event.

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

Maximum number of listing records to return.

## `maxPagesPerSearch` (type: `integer`):

Safety cap on how many result pages (60 listings each) to page through per search.

## `deduplicateListings` (type: `boolean`):

Drop duplicate listings (same listing ID) across all searches in this run.

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

Remember listings seen in previous runs (in a named key-value store) and output only listings that are NEW or whose price / cash flow / title changed. Each record gets a monitorStatus of "new" or "updated". Works independently of Apify Schedules — schedule this actor to run daily/weekly to build a fresh-deal feed.

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

Name of the key-value store that holds monitor-mode state. Use a distinct name per saved search to keep their histories separate.

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

Concurrent detail-page fetches when enrichment is on. Keep modest to stay reliable behind BizBuySell's anti-bot.

## `maxAttemptsPerPage` (type: `integer`):

How many fresh proxy sessions to try before giving up on a page. BizBuySell intermittently blocks individual residential IPs; more attempts = higher coverage.

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

Proxy settings. BizBuySell blocks datacenter traffic — keep the default US RESIDENTIAL proxy for reliable results.

## Actor input object example

```json
{
  "searchUrls": [],
  "includeDetails": false,
  "maxItems": 100,
  "maxPagesPerSearch": 50,
  "deduplicateListings": true,
  "monitorMode": false,
  "monitorStoreName": "bizbuysell-monitor",
  "maxConcurrency": 4,
  "maxAttemptsPerPage": 8,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

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

All scraped listing records 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 = {
    "searchUrls": [],
    "maxItems": 100,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/bizbuysell-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 = {
    "searchUrls": [],
    "maxItems": 100,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "BizBuySell Scraper - Businesses For Sale & Broker Leads",
        "description": "Scrape BizBuySell businesses-for-sale listings by state, category, price or URL. Get asking price, cash flow, EBITDA, gross revenue, broker name & phone, location, financing & lead score.",
        "version": "0.1",
        "x-build-id": "1pvPTNst9S7kmlazl"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapesage~bizbuysell-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapesage-bizbuysell-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapesage~bizbuysell-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapesage-bizbuysell-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapesage~bizbuysell-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapesage-bizbuysell-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "states": {
                        "title": "States",
                        "type": "array",
                        "description": "US states to scrape businesses for sale from. Leave empty to scrape the nationwide feed (or use Search URLs / Categories).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Alabama",
                                "Alaska",
                                "Arizona",
                                "Arkansas",
                                "California",
                                "Colorado",
                                "Connecticut",
                                "Delaware",
                                "District of Columbia",
                                "Florida",
                                "Georgia",
                                "Hawaii",
                                "Idaho",
                                "Illinois",
                                "Indiana",
                                "Iowa",
                                "Kansas",
                                "Kentucky",
                                "Louisiana",
                                "Maine",
                                "Maryland",
                                "Massachusetts",
                                "Michigan",
                                "Minnesota",
                                "Mississippi",
                                "Missouri",
                                "Montana",
                                "Nebraska",
                                "Nevada",
                                "New Hampshire",
                                "New Jersey",
                                "New Mexico",
                                "New York",
                                "North Carolina",
                                "North Dakota",
                                "Ohio",
                                "Oklahoma",
                                "Oregon",
                                "Pennsylvania",
                                "Rhode Island",
                                "South Carolina",
                                "South Dakota",
                                "Tennessee",
                                "Texas",
                                "Utah",
                                "Vermont",
                                "Virginia",
                                "Washington",
                                "West Virginia",
                                "Wisconsin",
                                "Wyoming"
                            ]
                        }
                    },
                    "categories": {
                        "title": "Industry categories",
                        "type": "array",
                        "description": "Industry categories to scrape. Combine with States to narrow further (state + category). Leave empty for all industries.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Agriculture",
                                "Automotive & Boat",
                                "Beauty & Personal Care",
                                "Building & Construction",
                                "Communication & Media",
                                "Education & Children",
                                "Entertainment & Recreation",
                                "Financial Services",
                                "Health Care & Fitness",
                                "Manufacturing",
                                "Online & Technology",
                                "Pet Services",
                                "Real Estate",
                                "Restaurants & Food",
                                "Retail",
                                "Service Businesses",
                                "Transportation & Storage",
                                "Travel",
                                "Wholesale & Distribution"
                            ]
                        }
                    },
                    "searchUrls": {
                        "title": "Search URLs (advanced)",
                        "type": "array",
                        "description": "Paste any BizBuySell browse/search URL (e.g. a keyword search, city page, or filtered result). Copy the URL straight from your browser after searching on bizbuysell.com. These run in addition to the States/Categories above.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "keyword": {
                        "title": "Keyword filter",
                        "type": "string",
                        "description": "Optional. Only keep listings whose title, description, industry or location contains this text (applied to the listings returned by your search)."
                    },
                    "listingTypes": {
                        "title": "Listing types",
                        "type": "array",
                        "description": "Keep only these listing types. Leave empty to include all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Established Business",
                                "Asset Sale",
                                "Business Real Estate",
                                "Startup",
                                "Franchise"
                            ]
                        }
                    },
                    "minAskingPrice": {
                        "title": "Min asking price ($)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Keep only listings with an asking price at or above this value."
                    },
                    "maxAskingPrice": {
                        "title": "Max asking price ($)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Keep only listings with an asking price at or below this value."
                    },
                    "minCashFlow": {
                        "title": "Min cash flow ($)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Keep only listings with annual cash flow (SDE) at or above this value."
                    },
                    "includeDetails": {
                        "title": "Enrich with detail pages",
                        "type": "boolean",
                        "description": "Fetch each listing's detail page to add gross revenue, full description, year established, employees, inventory, FF&E, real-estate value and reason for selling. Slower and billed per detail-enrichment event.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max listings",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of listing records to return.",
                        "default": 100
                    },
                    "maxPagesPerSearch": {
                        "title": "Max pages per search",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Safety cap on how many result pages (60 listings each) to page through per search.",
                        "default": 50
                    },
                    "deduplicateListings": {
                        "title": "Deduplicate listings",
                        "type": "boolean",
                        "description": "Drop duplicate listings (same listing ID) across all searches in this run.",
                        "default": true
                    },
                    "monitorMode": {
                        "title": "Monitor mode (only new / changed)",
                        "type": "boolean",
                        "description": "Remember listings seen in previous runs (in a named key-value store) and output only listings that are NEW or whose price / cash flow / title changed. Each record gets a monitorStatus of \"new\" or \"updated\". Works independently of Apify Schedules — schedule this actor to run daily/weekly to build a fresh-deal feed.",
                        "default": false
                    },
                    "monitorStoreName": {
                        "title": "Monitor store name",
                        "type": "string",
                        "description": "Name of the key-value store that holds monitor-mode state. Use a distinct name per saved search to keep their histories separate.",
                        "default": "bizbuysell-monitor"
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 12,
                        "type": "integer",
                        "description": "Concurrent detail-page fetches when enrichment is on. Keep modest to stay reliable behind BizBuySell's anti-bot.",
                        "default": 4
                    },
                    "maxAttemptsPerPage": {
                        "title": "Max attempts per page",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "How many fresh proxy sessions to try before giving up on a page. BizBuySell intermittently blocks individual residential IPs; more attempts = higher coverage.",
                        "default": 8
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. BizBuySell blocks datacenter traffic — keep the default US RESIDENTIAL proxy for reliable results.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "US"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
