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

BizBuySell Scraper: Scrape businesses for sale from BizBuySell by state, city, industry, price or cash flow: asking price, cash flow, revenue, EBITDA, year established, broker.

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

## Pricing

from $0.70 / 1,000 business listings

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

## BizBuySell Scraper - Businesses for Sale, Prices & Cash Flow

### What is BizBuySell Scraper?

**BizBuySell Scraper** is a tool that lets you **scrape businesses for sale from BizBuySell**: title, location, industry, asking price, cash flow (SDE), gross revenue, EBITDA, inventory, FF\&E, real estate, year established, employees, reason for selling, financing, franchise, the full description and the listing broker's name, firm and profile link. Type a state or city, pick industries and price or cash flow ranges, or paste any BizBuySell link, click **Start**, and download the listings as Excel, CSV or JSON.

- ⚡ **Fast:** 500 listings from a state search in about 20 seconds, 100 listings with full details in under a minute (our tests)
- 🔎 **Search your way:** states, cities, counties, 20 industries, price, cash flow and revenue ranges, listing types, keywords, or any BizBuySell search link
- 💰 **Clean numbers:** every money field as a number you can sort and filter, plus the text as shown ("Not Disclosed" stays visible)
- 🔓 **No login:** no BizBuySell account needed
- 💸 **Free to try:** the $5 of free usage every Apify account gets each month covers about 5,000 business listings

### What can BizBuySell Scraper do?

- **Scrape businesses for sale in any US state, city or county**, like `Texas`, `Austin, TX` or `Travis County, TX`
- **Scrape BizBuySell by industry**: restaurants, retail, service businesses, manufacturing, online and technology and 15 more
- **Filter by asking price, cash flow and gross revenue**, the way you would on BizBuySell
- **Find established businesses, asset sales, start-ups or business real estate**, with real estate included or seller financing offered
- **Search listings by keyword**, like `car wash`, `HVAC` or `daycare`
- **Get full listing details**: financials, year established, employees, reason for selling, financing terms, franchise and the complete description
- **Paste any BizBuySell search link** with the filters you set on the site, or single listing links
- **Collect whole markets**: big searches are read past BizBuySell's 10,000-results-per-search limit
- Export to Excel, CSV, JSON, HTML or XML, or send the data to Google Sheets, Make, Zapier and more

### What data can you extract from BizBuySell?

| | | |
|---|---|---|
| 🏷️ Title and listing number | 📍 Location, city and state | 🏭 Industry |
| 💵 Asking price | 💸 Cash flow (SDE) | 📈 Gross revenue |
| 📊 EBITDA | 📦 Inventory | 🪑 Furniture, fixtures & equipment |
| 🏢 Real estate (owned or leased) | 📅 Year established | 👥 Employees |
| ❓ Reason for selling | 🤝 Financing | 🔁 Franchise |
| 📝 Full description | 🧑‍💼 Broker name and firm | 🔗 Broker profile link |

### How to scrape BizBuySell

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open **BizBuySell Scraper**.
3. Enter locations (`Texas`, `Austin, TX`), pick industries, set filters, or paste BizBuySell links.
4. Set how many listings you want per search, and turn on **Include full listing details** if you need revenue, inventory, employees and the full description.
5. Click **Start**, then download the listings as Excel, CSV, JSON or HTML.

### How much does it cost to scrape BizBuySell listings?

You pay only for the listings you get. A listing from search results is a **business listing**; a listing saved with **Include full listing details** turned on, or from a single listing link, is a **listing with full details**.

| Apify plan | Business listings per 1,000 | Listings with full details per 1,000 |
|---|---|---|
| Free | **$1.00** | **$2.50** |
| Starter (Bronze) | **$0.90** | **$2.25** |
| Scale (Silver) | **$0.80** | **$2.00** |
| Business (Gold) and higher | **$0.70** | **$1.75** |

Platform usage is included in these prices, so there is nothing else to pay.

Example: 1,000 businesses for sale in Texas cost $1.00 on the Free plan and $0.70 on Business. The same 1,000 listings with full details cost $2.50 on the Free plan.

Every Apify account gets **$5 of free usage each month**, enough for about 5,000 business listings at Free-plan prices. See the **Pricing** tab for details.

### ⬇️ Input

| Setting | What it does |
|---|---|
| **Locations** | US states, cities or counties: `Texas`, `TX`, `Austin, TX`, `Travis County, TX`. Leave empty to search all of BizBuySell |
| **Industries** | One or more of BizBuySell's 20 industries. With locations, every location is searched for every industry |
| **BizBuySell links** | Search links (a state, city, industry or any search with filters set on the site) and single listing links |
| **Max listings per search** | How many listings to save for each search (default 100). Set 0 for all of them |
| **Include full listing details** | Adds gross revenue, inventory, FF\&E, real estate, year established, employees, reason for selling, financing, franchise, industry and the full description |
| **Filters** | Asking price, cash flow and gross revenue ranges, listing types, keyword, real estate included, seller financing |

Restaurants in Austin with full details:

```json
{
  "locations": ["Austin, TX"],
  "industries": ["restaurants-food"],
  "maxItems": 50,
  "includeDetails": true
}
```

Profitable established businesses in Florida and Georgia asking under $1 million:

```json
{
  "locations": ["Florida", "Georgia"],
  "listingTypes": ["established"],
  "askingPriceMax": 1000000,
  "cashFlowMin": 150000,
  "maxItems": 500
}
```

A search link from BizBuySell, plus a single listing:

```json
{
  "startUrls": [
    "https://www.bizbuysell.com/texas/restaurants-and-food-businesses-for-sale/",
    "https://www.bizbuysell.com/business-opportunity/full-service-auto-and-light-truck-repair-business/2535275/"
  ]
}
```

### ⬆️ Output

Every listing is one row. A listing with full details:

```json
{
  "id": "2535275",
  "url": "https://www.bizbuysell.com/business-opportunity/full-service-auto-and-light-truck-repair-business/2535275/",
  "title": "Full-Service Auto & Light Truck Repair Business",
  "listingType": "Established business",
  "location": "Houston, TX",
  "city": "Houston",
  "state": "TX",
  "industry": "Auto Repair and Service Shops > Tire Stores",
  "askingPrice": 2520000,
  "askingPriceText": "$2,520,000",
  "cashFlow": null,
  "cashFlowText": "Not Disclosed",
  "grossRevenue": 5800000,
  "grossRevenueText": "$5,800,000",
  "ebitda": 720000,
  "ebitdaText": "$720,000",
  "inventory": null,
  "inventoryText": null,
  "ffe": null,
  "ffeText": null,
  "realEstate": "Leased",
  "realEstateValue": null,
  "yearEstablished": 2008,
  "employees": 22,
  "employeesText": "22 (16 Full-time, 4 Part-time, 2 Contractors)",
  "reasonForSelling": "Transitioning to semi-retirement.",
  "financing": "Seller financing available",
  "isFranchise": false,
  "franchise": null,
  "summary": "Established full-service auto and light truck repair business serving the Houston, Texas area since 2008. The company provides a wide range of automotive repair, diagnostics, preventive maintenance,...",
  "description": "Established full-service auto and light truck repair business serving the Houston, Texas area since 2008. ...",
  "brokerName": "Teet Ratsep",
  "brokerFirm": "Legacy Acquisitions USA",
  "brokerProfileUrl": "https://www.bizbuysell.com/business-broker/teet-ratsep/legacy-acquisitions-usa/44114/",
  "detailsIncluded": true,
  "searchSource": "Texas",
  "scrapedAt": "2026-10-02T10:53:49Z"
}
```

Money fields come twice: as a number (`askingPrice`) for sorting and filtering, and as shown on BizBuySell (`askingPriceText`). When a seller does not disclose a figure, the number is empty and the text says "Not Disclosed".

### Which fields come with which setting?

| Field | Search results | With full details |
|---|---|---|
| Title, location, asking price, cash flow, EBITDA, summary, listing type | ✅ | ✅ |
| Broker name, firm and profile link | when the result shows them | ✅ |
| Gross revenue, inventory, FF\&E, real estate | | ✅ |
| Year established, employees, reason for selling, financing, franchise | | ✅ |
| Industry and full description | | ✅ |

Listings sold by their owners have no broker. Start-ups and real estate listings show fewer financial fields than established businesses.

### How can I use BizBuySell data?

- **Buy a business:** shortlist businesses in your area and price range, sorted by cash flow
- **Search funds and private equity:** build a deal pipeline by industry and size, and see new listings each week
- **Valuation research:** compare asking price to cash flow and revenue across thousands of listings in one industry
- **Business brokers:** watch competing listings and pricing in your market
- **Lenders and SBA loan officers:** find acquisition deals that need financing
- **Market analysis:** track how many businesses are for sale by state, city and industry over time

### Scrape more business, property and lead data

| Actor | What it gets |
|---|---|
| [Zillow Scraper - Property Listings, Rentals, Sold & Agent Data](https://apify.com/automly/zillow-scraper) | Zillow homes for sale, rentals and sold listings by city, ZIP code or search link, with agent data |
| [Google Maps Scraper](https://apify.com/automly/google-maps-scraper) | Local businesses: names, addresses, phones, websites, ratings, reviews and opening hours |
| [Apartments.com Scraper - Rentals, Prices & Floor Plans](https://apify.com/automly/apartments-com-scraper) | Apartments.com rentals by city or ZIP code: rent, address, phone, floor plans and fees |
| [LinkedIn Company Employees Scraper + Emails (No Login)](https://apify.com/automly/linkedin-company-employees-scraper) | A company's employees on LinkedIn: name, headline, location and profile link |
| [Website Email Scraper](https://apify.com/automly/website-email-scraper) | E-mail addresses from any website: the start page plus its contact, about and team pages |

### ❓FAQ

#### How much does it cost to scrape BizBuySell?

$1.00 per 1,000 business listings on the Free plan and less on paid plans, with platform usage included; listings with full details have their own price. See the cost section above for every plan and price. **Max listings per search** keeps the cost of a run under control, and you can also set a maximum cost per run.

#### How many listings can I get?

As many as a search has. BizBuySell shows at most 10,000 results per search, but bigger searches (like all businesses in the US) still give you every listing. A listing that turns up more than once in a run (in two searches, or twice in one) is saved once.

#### Does it include phone numbers, emails or photos?

No. The scraper saves the public listing text and figures and the listing broker's name, firm and profile link. It leaves out phone numbers, email addresses (also when a seller types them into a description) and photos. To reach a seller, open the listing link.

#### Can I use the filters I set on BizBuySell?

Yes. Set your filters on BizBuySell, copy the page's address and paste it into **BizBuySell links**. Filters in the input form apply on top of it.

#### Can I filter by year established or franchise?

Those are not search filters on BizBuySell. Turn on **Include full listing details** and filter the results by `yearEstablished` and `isFranchise`.

#### Do I need a BizBuySell account?

No. You don't need a BizBuySell account, cookies or an API key: the scraper collects the public listings anyone can see without signing in. Listing statistics and other member-only sections are not included.

#### What happens with a sold or removed listing?

The run goes on with the other inputs, and the run report lists the listings that are no longer on BizBuySell. A link that is not a BizBuySell search or listing is named in an error message before the run starts.

#### Can I scrape the BizBuySell broker directory too?

Yes, with our **BizBuySell Business Brokers Scraper**: brokers by state, city or specialty with their firm, areas served, specialties and listing counts.

#### Can I connect BizBuySell Scraper to other tools or AI agents?

Yes. Start runs and download results with the Apify API or the Python and JavaScript clients, send results to Make, Zapier, n8n, Google Sheets or Slack with Apify integrations and webhooks, or let AI assistants and agents run it through the Apify MCP server at [mcp.apify.com](https://mcp.apify.com). For instant answers inside your app, its real-time API returns listings directly for `/search?location=...` and `/listing?url=...`, without starting a run.

#### Is it legal to scrape BizBuySell?

This scraper only collects public business-for-sale listings that anyone can see on BizBuySell. It leaves out phone numbers, email addresses and photos. Broker names and profile links can still be personal data, which may be protected by laws such as GDPR, so only scrape for a legitimate reason, do not use the data to contact people in ways they have not agreed to, and ask a lawyer if you are unsure. You can read more in [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

BizBuySell Scraper is an independent tool. It is not affiliated with, endorsed by or sponsored by BizBuySell or CoStar.

#### Something isn't working?

Open the **Issues** tab and tell us your input and what you expected, or which field you need. We read every one and usually reply within a day.

### ⭐ Your feedback

Have an idea or found a problem? Tell us in the **Issues** tab. If BizBuySell Scraper saved you time, a short review on the **Reviews** tab helps other people find it.

# Actor input Schema

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

Enter US states, cities or counties, like "Texas", "TX", "Austin, TX" or "Travis County, TX". Leave empty to search all of BizBuySell (with an industry or a filter).

## `industries` (type: `array`):

Pick one or more industries. With locations, every location is searched for every industry.

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

Paste BizBuySell search links (a state, city, industry or any search with filters set on the site) and links to single listings, one per line.

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

How many listings to save for each search (location, industry or link). Set 0 for every listing the search has.

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

Open each listing's page for gross revenue, inventory, FF\&E, real estate, year established, employees, reason for selling, financing, franchise, industry and the full description.

## `askingPriceMin` (type: `integer`):

Only businesses asking at least this much, USD.

## `askingPriceMax` (type: `integer`):

Only businesses asking at most this much, USD.

## `cashFlowMin` (type: `integer`):

Only businesses with at least this cash flow (SDE), USD.

## `cashFlowMax` (type: `integer`):

Only businesses with at most this cash flow (SDE), USD.

## `grossRevenueMin` (type: `integer`):

Only businesses with at least this gross revenue, USD.

## `grossRevenueMax` (type: `integer`):

Only businesses with at most this gross revenue, USD.

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

Pick listing types to include. Leave empty for all of them.

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

Only listings that mention this word or phrase, like "pizza" or "car wash".

## `realEstateIncluded` (type: `boolean`):

Only businesses sold with their real estate.

## `sellerFinancing` (type: `boolean`):

Only businesses whose seller offers financing.

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

The default works for most runs. If results come back empty, try a different proxy option.

## Actor input object example

```json
{
  "locations": [
    "Austin, TX"
  ],
  "maxItems": 20,
  "includeDetails": false,
  "realEstateIncluded": false,
  "sellerFinancing": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

No description

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

No description

## `report` (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 = {
    "locations": [
        "Austin, TX"
    ],
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("automly/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 = {
    "locations": ["Austin, TX"],
    "maxItems": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("automly/bizbuysell-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 '{
  "locations": [
    "Austin, TX"
  ],
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call automly/bizbuysell-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automly/bizbuysell-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/9VUw1ThC5SyL5KtNA/builds/Z3wUjw4CoJBeVIHPp/openapi.json
