# BizBuySell Scraper (`shahidirfan/bizbuysell-scraper`) Actor

Scrape BizBuySell business listings for market research, investment analysis & due diligence. Extract business data, valuations, and contact info at scale. Perfect for brokers, investors & entrepreneurs conducting market intelligence.

- **URL**: https://apify.com/shahidirfan/bizbuysell-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Categories:** Developer tools, Lead generation, Other
- **Stats:** 6 total users, 3 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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 Businesses For Sale Scraper

Extract business-for-sale listings from BizBuySell in a structured, analysis-ready format. Collect listing prices, cash flow, broker details, and listing links at scale for research, lead generation, and market monitoring. Built for fast repeatable runs with clean dataset output.

### Features

- **Business listing extraction** — Collect core listing records from BizBuySell search pages.
- **Franchise URL support** — Supports `/franchise-for-sale/` URLs with franchise API fallback.
- **Rich commercial fields** — Capture pricing, cash flow, EBITDA, broker details, and listing metadata.
- **Pagination support** — Automatically pulls additional pages until your target result count is reached.
- **Clean dataset output** — Omits empty values so each dataset item contains only meaningful fields.
- **Flexible targeting** — Use start URLs or keyword/location filters for focused runs.

### Use Cases

#### Buyer Deal Sourcing

Build a pipeline of active listings by region, category, or keyword. Quickly review asking prices and broker contacts to prioritize outreach.

#### Market Intelligence

Track pricing and listing movement across business niches. Analyze trends in listing volume, price reductions, and recently added opportunities.

#### Broker & Competitor Monitoring

Watch activity by broker or company over time. Compare inventory levels and listing types to identify market gaps.

#### Data Enrichment Workflows

Send dataset exports into BI tools, spreadsheets, or CRMs. Combine listing data with your internal scoring and outreach process.

---

### Input Parameters

| Parameter            | Type    | Required | Default                    | Description                                            |
| -------------------- | ------- | -------- | -------------------------- | ------------------------------------------------------ |
| `startUrls`          | Array   | No       | —                          | Optional URL list; first valid URL is used.            |
| `keyword`            | String  | No       | `"restaurant"`             | Optional keyword filter.                               |
| `location`           | String  | No       | `"california"`             | Optional location hint when Start URLs are not passed. |
| `results_wanted`     | Integer | No       | `20`                       | Maximum number of records to save.                     |
| `max_pages`          | Integer | No       | `20`                       | Maximum number of paginated requests.                  |
| `proxyConfiguration` | Object  | No       | `{"useApifyProxy": false}` | Optional proxy setup.                                  |

---

### Output Data

Each dataset item can contain:

| Field                                  | Type    | Description                                     |
| -------------------------------------- | ------- | ----------------------------------------------- |
| `listing_id`                           | Integer | Unique listing number.                          |
| `site_specific_id`                     | Integer | Site-specific listing identifier.               |
| `listing_category`                     | String  | Listing category (`business` or `franchise`).   |
| `title`                                | String  | Listing headline.                               |
| `url`                                  | String  | Listing URL.                                    |
| `location`                             | String  | Location text.                                  |
| `state_code`                           | String  | State or region code.                           |
| `price`                                | Number  | Asking price.                                   |
| `cash_flow`                            | Number  | Cash flow value when available.                 |
| `ebitda`                               | Number  | EBITDA value when available.                    |
| `gross_revenue`                        | Number  | Gross revenue when available.                   |
| `investment_minimum`                   | Number  | Minimum franchise investment.                   |
| `image_url`                            | String  | Primary image URL.                              |
| `image_urls`                           | Array   | All available image URLs.                       |
| `broker_name`                          | String  | Broker or contact person name.                  |
| `broker_company`                       | String  | Broker company name.                            |
| `broker_profile_url`                   | String  | Broker profile URL.                             |
| `contact_phone`                        | String  | Contact phone number.                           |
| `listing_price_reduced`                | Boolean | Indicates price reduction.                      |
| `recently_added`                       | Boolean | Indicates recent listing date.                  |
| `recently_updated`                     | Boolean | Indicates recent update.                        |
| `hot_property`                         | Boolean | Hot property marker.                            |
| `real_estate_included_in_asking_price` | Boolean | Real estate included flag.                      |
| `summary`                              | String  | Listing summary from detail API when available. |
| `facilities`                           | String  | Facilities details when available.              |
| `growth`                               | String  | Growth details when available.                  |
| `reason_for_selling`                   | String  | Seller reason when available.                   |
| `support`                              | String  | Support details when available.                 |
| `financing_options`                    | String  | Financing text when available.                  |
| `search_url`                           | String  | URL used for the run.                           |
| `seo_path`                             | String  | Search path used for retrieval.                 |
| `query_string`                         | String  | Query segment used in search.                   |
| `fetched_at`                           | String  | ISO timestamp for extraction time.              |
| `source`                               | String  | Data source identifier.                         |

---

### Usage Examples

#### Basic Run

```json
{
    "startUrls": [{ "url": "https://www.bizbuysell.com/businesses-for-sale/" }],
    "results_wanted": 20
}
````

#### Keyword-Focused Run

```json
{
    "keyword": "restaurant",
    "results_wanted": 100,
    "max_pages": 5
}
```

#### State-Specific URL Run

```json
{
    "location": "california",
    "results_wanted": 150
}
```

#### Franchise URL Run

```json
{
    "startUrls": [{ "url": "https://www.bizbuysell.com/franchise-for-sale/" }],
    "results_wanted": 20
}
```

***

### Sample Output

```json
{
    "source": "bizbuysell",
    "fetched_at": "2026-04-02T09:40:12.513Z",
    "search_url": "https://www.bizbuysell.com/businesses-for-sale/",
    "seo_path": "/businesses-for-sale/",
    "listing_category": "business",
    "listing_id": 2489859,
    "site_specific_id": 2489859,
    "title": "10 No Goodwill Corporate Owned Gas stations for lease in Iliinois",
    "url": "https://www.bizbuysell.com/business-opportunity/10-no-goodwill-corporate-owned-gas-stations-for-lease-in-iliinois/2489859/",
    "location": "Bloomington, IL",
    "state_code": "IL",
    "price": 75000,
    "summary": "1-Elwood, IL INSIDE SALE: $54,877.49 PER MONTH...",
    "listing_type_id": 40,
    "ad_level_id": 5,
    "broker_name": "Ajeet Singh",
    "broker_company": "Ajeet Singh",
    "contact_phone": "(847) 529-9778",
    "recently_added": true,
    "listing_price_reduced": false
}
```

***

### Tips for Best Results

#### Start Small First

- Run with `results_wanted: 20` to validate your input quickly.
- Increase volume after confirming output fields match your workflow.

#### Use Targeted URLs

- Use category or state-specific pages to narrow result sets.
- Keep URLs on `www.bizbuysell.com` for best reliability.

#### Balance Speed and Coverage

- Increase `max_pages` only when you need deeper coverage.

#### Keep Data Focused

- Use keyword filters to reduce post-processing effort.

***

### Integrations

Connect your dataset with:

- **Google Sheets** — Review and share opportunities quickly.
- **Airtable** — Build searchable listing databases.
- **CRM systems** — Route broker and listing data into outreach flows.
- **Make** — Automate enrichment and notifications.
- **Zapier** — Trigger business workflows from new records.
- **Webhooks** — Send output to custom APIs.

#### Export Formats

- **JSON** — Structured data pipelines.
- **CSV** — Spreadsheet analysis.
- **Excel** — Reporting and team sharing.
- **XML** — Legacy system integrations.

***

### Frequently Asked Questions

#### How many listings can I collect in one run?

You can collect large volumes by increasing `results_wanted` and `max_pages`. Actual volume depends on available listings for your selected URL and filters.

#### Why do some fields appear in one record but not another?

Listings vary by category and advertiser, so some fields are naturally absent for specific records.

#### Does the actor remove empty values?

Yes. Records are cleaned before saving so empty fields are not included in dataset items.

#### Can I scrape a specific state or category?

Yes. Use a state/category BizBuySell URL in `startUrls`, or provide a `location` value.

#### What if I need more data in one run?

Increase `results_wanted`, and if needed, raise `max_pages`.

***

### Support

For issues or feature requests, use Apify Actor support in the Apify Console.

#### Resources

- [Apify Documentation](https://docs.apify.com/)
- [Apify API Reference](https://docs.apify.com/api/v2)
- [Scheduling Runs](https://docs.apify.com/platform/schedules)

***

### Legal Notice

This actor is intended for lawful data collection and analysis. You are responsible for complying with BizBuySell terms, local regulations, and applicable data usage rules.

# Actor input Schema

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

Optional list of BizBuySell URLs (for example /businesses-for-sale/ or /franchise-for-sale/). The first valid URL is used.

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

Optional keyword filter.

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

Optional location hint used when Start URLs are not provided.

## `results_wanted` (type: `integer`):

Maximum number of listings to save.

## `max_pages` (type: `integer`):

Maximum number of pages to request.

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

Optional Apify Proxy configuration.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.bizbuysell.com/businesses-for-sale/"
    }
  ],
  "keyword": "restaurant",
  "location": "california",
  "results_wanted": 20,
  "max_pages": 3,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

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

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.bizbuysell.com/businesses-for-sale/"
        }
    ],
    "keyword": "restaurant",
    "location": "california",
    "results_wanted": 20,
    "max_pages": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahidirfan/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 = {
    "startUrls": [{ "url": "https://www.bizbuysell.com/businesses-for-sale/" }],
    "keyword": "restaurant",
    "location": "california",
    "results_wanted": 20,
    "max_pages": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("shahidirfan/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 '{
  "startUrls": [
    {
      "url": "https://www.bizbuysell.com/businesses-for-sale/"
    }
  ],
  "keyword": "restaurant",
  "location": "california",
  "results_wanted": 20,
  "max_pages": 3
}' |
apify call shahidirfan/bizbuysell-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "BizBuySell Scraper",
        "description": "Scrape BizBuySell business listings for market research, investment analysis & due diligence. Extract business data, valuations, and contact info at scale. Perfect for brokers, investors & entrepreneurs conducting market intelligence.",
        "version": "1.0",
        "x-build-id": "ubBibhp21dlyxvbOf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/shahidirfan~bizbuysell-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-shahidirfan-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/shahidirfan~bizbuysell-scraper/runs": {
            "post": {
                "operationId": "runs-sync-shahidirfan-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/shahidirfan~bizbuysell-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-shahidirfan-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": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Optional list of BizBuySell URLs (for example /businesses-for-sale/ or /franchise-for-sale/). The first valid URL is used.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "keyword": {
                        "title": "Keyword",
                        "type": "string",
                        "description": "Optional keyword filter."
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Optional location hint used when Start URLs are not provided."
                    },
                    "results_wanted": {
                        "title": "Maximum results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of listings to save.",
                        "default": 20
                    },
                    "max_pages": {
                        "title": "Maximum pages",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of pages to request.",
                        "default": 20
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional Apify Proxy configuration.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
