# BizBuySell Scraper & API - Businesses & Franchises For Sale (`scrapers_lat/bizbuysell-businesses-for-sale-scraper`) Actor

Scrape BizBuySell businesses and franchises for sale, no API key. Get asking price, cash flow (SDE), revenue, EBITDA, broker name, phone, website, category, location and photos. Filter by state, price, cash flow and industry for M\&A deal sourcing and acquisition leads. Export JSON, CSV, Excel.

- **URL**: https://apify.com/scrapers_lat/bizbuysell-businesses-for-sale-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Lead generation, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $17.00 / 1,000 results

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

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

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

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

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

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

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

# README

[![BizBuySell Scraper - Businesses & Franchises For Sale](https://scrapers.lat/banners/bizbuysell-businesses-for-sale-scraper.png)](https://console.apify.com/actors/TGievhrTLzfRYqAXq/input)

## BizBuySell Scraper & API - Businesses & Franchises For Sale

**The fastest, most complete BizBuySell scraper and API on Apify - no API key or login required.** Pull the entire BizBuySell marketplace of US businesses for sale and franchises for sale in minutes, with full financials, broker contacts, categories, photos and coordinates on every listing. Turn BizBuySell into a structured deal-sourcing feed and business-for-sale dataset for M\&A, private equity, search funds, business brokers and franchise buyers, then export to JSON, CSV or Excel.

Whether you are trying to **buy a business**, build an **acquisition pipeline**, generate **business acquisition leads**, run **market research** on a niche, source **SBA-eligible** and **cash-flow / EBITDA**-qualified deals, benchmark **valuation comps** by cash flow and EBITDA multiples, find **franchises for sale**, or generate **business-broker leads**, this actor gives you every field the seller disclosed, cleanly typed and ready to filter. It is the BizBuySell data feed and unofficial BizBuySell API you would otherwise have to build yourself.

**📥 [Input](https://apify.com/scrapers_lat/bizbuysell-businesses-for-sale-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/bizbuysell-businesses-for-sale-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/bizbuysell-businesses-for-sale-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/bizbuysell-businesses-for-sale-scraper/examples)**

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify\&logoColor=white)
![Coverage](https://img.shields.io/badge/Coverage-United%20States-blue)
![Speed](https://img.shields.io/badge/Whole%20market-under%202%20min-success)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)
![Billing](https://img.shields.io/badge/Billing-Pay%20per%20result-brightgreen)

### Why this is the best BizBuySell scraper

- **Whole market in under 2 minutes.** A filtered set of 4,000+ listings, with all fields, is returned in a handful of calls and tens of seconds of wall-clock. No 200-page cap, no silent truncation, no per-page crawling.
- **Full financials on every listing.** Asking price, cash flow (SDE), gross revenue, EBITDA, net operating income, inventory, FF\&E, real estate, rent, and price-to-cash-flow and price-to-EBITDA multiples, all parsed to plain numbers.
- **Complete broker and seller contact.** Broker name, brokerage, phone, profile URL, active and sold listing counts, plus an optional add-on for the broker's external website, LinkedIn, Facebook, YouTube, Instagram and license number.
- **Everything else the listing carries.** Category names, full description, reason for selling, growth, support and training, competition, facilities, financing, franchise flags, employees, year established, home-based, relocatable, absentee-owner, images, ZIP, latitude and longitude.
- **A true superset of every competitor.** Every input any other BizBuySell actor accepts and every output field any of them returns, plus extras none of them have (see the comparison table below).
- **Deal-ready extras.** A built-in acquisition lead score (0-100) on every row, structured filters, raw search-URL input, monitor mode for new-listing alerts, and optional AI summary, AI acquisition scoring and AI deal-attribute extraction.

### What you get on every business for sale

Each row is one BizBuySell listing, flattened for clean CSV and Excel columns:

- **Identity and links** - listing ID, listing URL, business name, ad headline, full description.
- **Category** - primary and secondary industry category names and IDs.
- **Financials (USD)** - asking price, gross revenue, cash flow (SDE), EBITDA, net operating income, inventory value, FF\&E, real estate value, rent, SDE multiple, EBITDA multiple, inventory-included and real-estate-included flags.
- **Operations** - year established, employees (full and part time) with notes, home-based, relocatable, absentee-owner, building square feet, property type.
- **Deal narrative** - reason for selling, growth and expansion, support and training, competition, facilities, financing options, seller-financing flag, franchise and franchise-resale flags.
- **Franchise economics** - initial franchise fee, initial capital required, number of existing units and opportunities, and fees-and-payments detail (populated on franchise-for-sale listings).
- **Commercial real estate** - lease rate and duration, lease terms and expiry, triple-net (NNN) flag, building square feet, year of construction, asking price per square foot and net operating income.
- **Location** - location text, city, county, state (full name and 2-letter code), ZIP, latitude, longitude, country, and an address-confidential flag.
- **Broker and seller** - broker name (plus first and last name), brokerage, phone, broker headshot and company logo, profile URL and ID, seller type, is-broker-listing, active and sold listing counts, and (opt-in) broker website, LinkedIn, Facebook, YouTube, Instagram and license number.
- **Media** - primary image URL, all image URLs, image count.
- **Signals** - acquisition lead score, lead tier (hot/warm/cold) and the reasons behind the score, listing profile view count (buyer interest), NDA-required flag, plus price-reduced, recently-added, recently-updated and hot-property flags.

### How we compare

Every direct BizBuySell scraper on the Apify Store, named, with price and where this actor meets or beats it. This actor is a strict **superset**: it accepts every input the others accept and returns every field any of them returns, then adds more. It emits about **115 clean fields per listing**.

| Scraper | Price | Output fields | Financials (EBITDA / NOI / revenue) | Lease data | Broker enrichment (site / social / license) | Category names | Images + coords | AI add-ons | Filter richness | Speed and page cap |
|---|---|---|---|---|---|---|---|---|---|---|
| **This actor** | Pay per result | **~115** | **Full** (asking, cash flow, revenue, EBITDA, NOI, inventory, FF\&E, real estate, multiples) | **Yes** | **Yes** (website, LinkedIn, Facebook, YouTube, Instagram, license) | **Yes** | **Yes, all images + lat/long** | **Yes** (summary, score, extraction, contact email) | **Highest** (price, cash flow, revenue, EBITDA, employees, year ranges, plus booleans, states, categories, URLs, file) | **JSON API, whole market under 2 min, no page cap** |
| shahidirfan | $1.49 / 1k | ~40 | Full incl. EBITDA | Yes | No | Yes | Yes | No | keyword only | HTML, `max_pages` 20 cap |
| scrapesage | $2.30 / 1k | ~35 | EBITDA, revenue | No | No | Yes | Yes | No | Good (price, cash flow) | Moderate, no cap |
| acquistion-automation | $45 / mo | ~30 | EBITDA, revenue | No | Website only | Yes | No | No | Listing URLs only | Rental, no cap |
| good_cheap | $25 / mo | ~25 | Revenue, cash flow | No | No | Yes | No | No | Listing URLs only | Rental |
| parseforge | $0.14 / result | ~20 | Revenue, cash flow | No | No | No | No | No | Listing URLs only | Per result |
| lexis-solutions | $35 / mo | ~15 | Partial (no revenue / EBITDA) | No | No | No | Yes | No | Listing URLs only | Rental |
| crawlerbros | $3.00 / 1k | ~30 | Revenue, cash flow, EBITDA | No | No | Yes | Yes | No | Search URL only | Mobile HTML, 1,000 cap |
| getdataforme | $9.00 / 1k | ~20 | No (broker profiles) | No | No | Yes | No | No | Broker profiles only | Profiles only |
| ecomscrape (search) | $15 / mo | ~25 | Partial | No | No | Yes | Partial | No | Per URL | Rental, per URL |
| ecomscrape (details) | $15 / mo | ~30 | Revenue, cash flow, EBITDA | No | Seller only | Yes | Partial | No | Per URL | Rental, per URL |

We concede one axis honestly: **shahidirfan ($1.49 / 1k) and scrapesage ($2.30 / 1k) have a lower headline per-listing price.** We justify our price on coverage and speed: full financials plus NOI and multiples, the complete broker block, broker website and social links and license, category names, every image with coordinates, an acquisition lead score, the richest filter set (the only actor with revenue, EBITDA, employee and year-range filters), AI add-ons, the whole market in a single pay-per-result run in under two minutes, and no 200-page HTML cap. There are **zero output fields any competitor returns that this actor does not**, and no competitor matches our field count, financial depth, broker enrichment or filter richness.

#### Capability detail

| Capability | This actor | shahidirfan | scrapesage | acquistion‑automation | good_cheap | parseforge | lexis‑solutions | crawlerbros | getdataforme | ecomscrape |
|---|---|---|---|---|---|---|---|---|---|---|
| Search URLs + listing URLs input | Yes | Yes | Yes | listing only | listing only | both | listing only | search only | profile only | listing only |
| Structured filters (state, price, cash flow) | Yes (+ revenue, EBITDA, employees, year, booleans) | keyword only | Yes | No | No | No | No | No | No | No |
| Bulk URLs from file / Sheet | Yes | No | Yes | No | No | No | No | No | No | No |
| Listing types (established / asset / franchise / RE / startup) | Yes | via URL | Yes | via URL | via URL | via URL | via URL | via URL | No | via URL |
| Asking price | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Cash flow (SDE) | Yes | Yes | Yes | Yes | Yes | Yes | partial | Yes | No | Yes |
| Gross revenue | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes |
| EBITDA | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes |
| Inventory / FF\&E / real estate | Yes | Yes | partial | Yes | Yes | Yes | No | Yes | No | Yes |
| Lease block (rate, term, expiry) | Yes | Yes | No | No | No | No | No | No | No | No |
| Category names | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes |
| Broker name / phone / company | Yes | Yes | Yes | Yes | Yes | Yes | No | No | seller only | seller only |
| Broker website + socials + license | Yes (add-on) | No | No | website only | No | No | No | No | No | No |
| Broker active / sold counts | Yes | No | Yes | No | No | No | No | No | No | No |
| Broker headshot + company logo | Yes | No | No | No | No | No | No | No | No | No |
| Franchise fee + initial investment | Yes | No | No | No | No | No | No | No | No | No |
| Listing view count (buyer interest) | Yes | No | No | No | No | No | No | No | No | No |
| Images (all) + coordinates | Yes | Yes | Yes | No | No | No | Yes | Yes | No | partial |
| Acquisition lead score | Yes (free) | No | Yes | No | No | No | No | No | No | No |
| Monitor mode (new listings only) | Yes | No | Yes | No | dedup only | dedup only | No | No | No | No |
| Whole market, no page cap | Yes | max_pages 20 | Yes | Yes | Yes | Yes | Yes | 1,000 cap | profiles only | per-URL |
| AI summary / score / extraction | Yes | No | No | No | No | No | No | No | No | No |
| Contact email enrichment | Yes (add-on) | No | No | No | No | No | No | No | No | No |
| Pricing model | Pay per result | Pay per result | Pay per result | Rental + usage | Rental | Per result | Rental + usage | Pay per result | Pay per result | Rental + usage |

Some competitors advertise a lower headline per-result price. This actor justifies its price on coverage and speed: full financials, the complete broker block, broker website and socials, category names, images, coordinates, a lead score and structured filters in a single pay-per-result run, with the whole market returned in under two minutes and no page cap. There are **zero output fields any competitor returns that this actor does not**.

### Data coverage and honesty

BizBuySell listings are written by sellers and brokers, so some financial fields are intentionally left blank ("Not Disclosed" on the site). We **return every field the seller disclosed** and use `null` for the rest. We never invent or guess a value. Typical disclosure rates across a broad run:

| Field | Disclosed |
|---|---|
| Title, description, category, listing URL, franchise and home-based flags | ~100% |
| Broker name | ~98% |
| Broker phone | ~97% |
| Gross revenue | ~93% |
| Asking price | ~77-83% |
| Cash flow (SDE) | ~77-80% |
| Reason for selling | ~67-71% |
| Support and training | ~65-70% |
| Year established | ~63-68% |
| Facilities | ~49-57% |
| Growth | ~47-53% |
| Full-time employees | ~41-51% |
| Competition | ~40-47% |
| EBITDA | ~41-43% |
| FF\&E | ~38-40% |
| Inventory | ~33-36% |
| Financing | ~27-30% |
| Real estate | ~14% |
| Latitude / longitude | ~10% |

These are genuine seller-disclosure rates, not a scraping limitation. If a value is on the listing, this actor returns it.

### Use cases

- **M\&A and search-fund deal sourcing** - pull every business for sale in your target size and industry, ranked by lead score and price-to-cash-flow multiple.
- **Business-broker lead generation** - build a list of brokers with phone, brokerage, website and social profiles from live inventory.
- **Franchise analysis** - filter to franchise and franchise-resale listings and get the initial franchise fee, initial capital required and unit counts alongside the financials.
- **Market research and valuation comps** - benchmark asking prices, cash flow and EBITDA multiples by state, city and category.
- **Deal-flow monitoring** - schedule the actor in monitor mode to receive only newly listed businesses that match your buy box.

### Quickstart

Open the actor, paste this input and press Run. It returns Florida businesses with at least $500k cash flow, full financials and broker contacts.

```json
{
  "keywords": ["restaurant"],
  "location": "Florida",
  "minCashFlow": 500000,
  "maxBusinesses": 100,
  "fetchDetails": true
}
```

Prefer to build your search in a browser? Paste any BizBuySell search URL into `searchUrls` and the actor replays your exact filters:

```json
{
  "searchUrls": ["https://www.bizbuysell.com/texas-businesses-for-sale/?q=..."],
  "maxBusinesses": 500
}
```

### Example output record

One real dataset item (trimmed to key fields). Every field the seller disclosed is returned; undisclosed figures are `null`.

```json
{
  "listingId": "2545088",
  "businessName": "Established Renewable Energy- Sell, Install & Service- Mid Atlantic",
  "category": "Building and Construction",
  "askingPrice": 6500000,
  "grossRevenue": 5600000,
  "cashFlow": 1150000,
  "ebitda": 950000,
  "yearEstablished": 2009,
  "location": "Hillsborough County, FL",
  "state": "Florida",
  "stateCode": "FL",
  "brokerName": "Marvin Baker",
  "brokerCompany": "MBA Tampa Bay",
  "brokerPhone": "(813) 810-5636",
  "listingUrl": "https://www.bizbuysell.com/business-opportunity/established-renewable-energy-sell-install-and-service-mid-atlantic/2545088/",
  "imageUrl": "https://images.bizbuysell.com/shared/listings/254/2545088/beb7e5cf-68a0-474b-9e7a-f54f22086fd7.webp",
  "imageCount": 1,
  "leadScore": 93,
  "leadTier": "hot",
  "source": "bizbuysell.com"
}
```

### Run via API and CLI

Replace `<TOKEN>` with your Apify API token.

Run synchronously and get dataset items in one call:

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~bizbuysell-businesses-for-sale-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"keywords":["car wash"],"states":["Texas","Florida"],"minCashFlow":100000,"maxBusinesses":200}'
```

Apify CLI:

```bash
apify call scrapers_lat/bizbuysell-businesses-for-sale-scraper \
  --input '{"searchUrls":["https://www.bizbuysell.com/established-businesses-for-sale/"],"maxBusinesses":500}'
```

### Fetch results

```bash
## JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
## CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
```

`<DATASET_ID>` is `defaultDatasetId` in the run object. Use `offset` and `limit` to page through large result sets.

### Billing

- **Pay per result.** You are charged per listing returned (`result` event). Full-detail listings also incur the `details` event, which covers the full financial and broker enrichment on each record. See the [pricing tab](https://apify.com/scrapers_lat/bizbuysell-businesses-for-sale-scraper/pricing) for current prices.
- **No charge on failure.** If a run cannot reach the source or matches nothing, the actor writes a single `error` item and charges nothing. Empty runs cost nothing.
- **Add-ons are opt-in and paying-only.** AI summary, AI acquisition score, AI deal-attribute extraction, broker website and socials, and contact-email enrichment run only when you enable them, and only on paid Apify plans.
- **Spend cap respected.** Set `maxTotalChargeUsd` on the run; once reached, the actor stops emitting and charging further results.
- **Free Apify plans** are capped at 10 listings per run. Upgrade for unlimited.

### FAQ

**Do I get the financials?** Yes, when `fetchDetails` is on (the default). Cash flow (SDE), gross revenue, EBITDA, inventory and FF\&E are parsed to plain USD numbers. Listings that do not disclose a figure return `null`.

**Can I scrape a specific search or listing?** Yes. Paste search-result URLs or individual listing URLs into `searchUrls`. Your on-site filters are replayed exactly.

**How fast is it?** A full filtered market of thousands of listings returns in tens of seconds to about two minutes, with all fields.

**Is there a BizBuySell API? Do I need an API key?** BizBuySell has no public API. This actor is the practical alternative: a structured BizBuySell data feed you call over the Apify API, with no API key, account or login on BizBuySell required. You get clean JSON, CSV or Excel instead of scraping HTML yourself.

**Can I get franchise data?** Yes. Filter to franchises and franchise resales, and each row includes franchise flags plus the initial franchise fee, initial capital required, number of units and opportunities when the listing discloses them.

**Can I find SBA-eligible or cash-flow-qualified deals?** Yes. Filter by minimum and maximum cash flow (SDE), gross revenue and EBITDA to shortlist businesses that fit typical SBA and acquisition criteria, then rank by the built-in acquisition lead score and price-to-cash-flow multiple.

**How do I get only new listings?** Turn on `monitorMode` and schedule the actor. It returns only businesses it has not delivered before.

**Is this an official BizBuySell tool?** No. This actor is independent and not affiliated with BizBuySell. It returns only data that is publicly visible on BizBuySell listings. Use it in accordance with BizBuySell's terms of service.

### Related scrapers

- [BizQuest Businesses For Sale Scraper](https://apify.com/scrapers_lat/bizquest-scraper): BizQuest businesses and franchises for sale.
- [Franchise Opportunities Scraper](https://apify.com/scrapers_lat/franchise-opportunities-scraper): Franchise opportunities and investment details.
- [Crexi Commercial Real Estate Scraper](https://apify.com/scrapers_lat/crexi-scraper): Commercial real estate listings and brokers.
- [Aircraft For Sale Scraper](https://apify.com/scrapers_lat/aircraft-for-sale-scraper): Aircraft for sale listings.
- [Colorado Business Entities Scraper](https://apify.com/scrapers_lat/colorado-business-entities-scraper): Colorado registered business entities.
- [Cybo Business Leads Scraper](https://apify.com/scrapers_lat/cybo-business-leads-scraper): Business directory leads worldwide.

### More scrapers at scrapers.lat

Built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at [scrapers.lat](https://scrapers.lat).

***

> Independent tool, not affiliated with BizBuySell. Accesses only publicly available listing data. Use in accordance with BizBuySell's terms of service.

# Actor input Schema

## `keywords` (type: `array`):

One or more business types or keywords to search, e.g. 'restaurant', 'car wash', 'HVAC', 'liquor store', 'laundromat'. Each keyword runs its own search in the same run. Leave empty to list every business for sale.

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

US state or city to filter by, e.g. 'California', 'Texas', 'Florida', 'Miami'. Applies to every keyword search. Leave empty for nationwide results.

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

Optional. Search several US states in one run, e.g. \['Texas','Florida','Georgia']. One search runs per state. Overrides the single Location field when set.

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

Optional. Extra industry categories to search, e.g. \['Auto Repair','Gas Station','Daycare']. One search runs per category.

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

Optional. Which kinds of listings to include: 'Established Business', 'Asset Sale', 'Business Real Estate', 'Startup', 'Franchise'. Leave empty for all businesses for sale.

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

Optional. Paste any BizBuySell search-result URLs or individual listing URLs. The scraper replays them exactly, so any on-site filter you build in your browser is honored. Can be combined with keyword searches.

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

Optional. A link to a plain-text or CSV file (or public Google Sheet export link) with one BizBuySell URL per line. All BizBuySell URLs found are added to the run.

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

Only keep listings with an asking price at or above this amount.

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

Only keep listings with an asking price at or below this amount.

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

Only keep listings with cash flow (seller's discretionary earnings) at or above this amount.

## `maxCashFlow` (type: `integer`):

Only keep listings with cash flow at or below this amount.

## `minRevenue` (type: `integer`):

Only keep listings with gross revenue at or above this amount.

## `maxRevenue` (type: `integer`):

Only keep listings with gross revenue at or below this amount.

## `minEbitda` (type: `integer`):

Only keep listings with EBITDA at or above this amount.

## `maxEbitda` (type: `integer`):

Only keep listings with EBITDA at or below this amount.

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

Only keep listings with at least this many employees.

## `maxEmployees` (type: `integer`):

Only keep listings with at most this many employees.

## `establishedAfterYear` (type: `integer`):

Only keep businesses established in or after this year, e.g. 2010.

## `establishedBeforeYear` (type: `integer`):

Only keep businesses established in or before this year.

## `industry` (type: `string`):

Optional. Only keep listings whose category contains this text (e.g. 'restaurant', 'automotive'). Leave empty for no filter.

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

Keep only listings offering seller financing.

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

Keep only listings where real estate is included in the asking price.

## `homeBased` (type: `boolean`):

Keep only home-based businesses.

## `relocatable` (type: `boolean`):

Keep only businesses that can be relocated.

## `absenteeOwner` (type: `boolean`):

Keep only absentee-owner (semi-passive) businesses.

## `daysListedAgo` (type: `integer`):

Only keep listings first posted within this many days, e.g. 30 for new listings this month.

## `maxBusinesses` (type: `integer`):

Maximum number of business listings to return across all searches. The whole matching market can be returned in one run (no page cap). Free Apify plans are capped at 10 per run.

## `fetchDetails` (type: `boolean`):

Return the full record: cash flow, gross revenue, EBITDA, inventory, FF\&E, real estate, year established, employees, reason for selling, growth, support, financing, competition, facilities and the broker's name, company and phone. Turn off for a lighter, cheaper run with only the core listing fields.

## `onlyCompleteResults` (type: `boolean`):

Keep only listings that disclose an asking price, cash flow and a broker contact.

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

Remove duplicate listings within the run (by listing ID).

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

Return only businesses not seen in previous runs. Ideal for a scheduled deal-flow alert. Uses a named store to remember what it has already delivered.

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

Name of the store used to remember previously seen listings in monitor mode. Use one name per saved search.

## `includeRawListing` (type: `boolean`):

Attach the complete raw listing object (every underlying field) to each record for power users.

## `useDatacenterProxy` (type: `boolean`):

Use datacenter proxies instead of the default US residential proxies. Cheaper but a lower success rate; residential is recommended.

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

How many broker profiles to fetch in parallel when the broker website add-on is on.

## `withAiProfileSummary` (type: `boolean`):

Add an AI-generated plain-English summary of each business-for-sale listing. Paid Apify plans only.

## `withAiLeadScore` (type: `boolean`):

Add an AI acquisition-opportunity score (0-100) with tier and rationale for each listing. Paid Apify plans only.

## `withAiExtract` (type: `boolean`):

Add AI-extracted deal attributes (reason for selling, years established, employees, seller financing, real estate, relocatable) from each listing description. Paid Apify plans only.

## `enrichBrokerWebsite` (type: `boolean`):

Fetch each broker's public profile to capture their external website, LinkedIn / Facebook / YouTube / Instagram links and license number. Paid Apify plans only.

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

Optional paid add-on, off by default. For each result without an email, attempt to find a public business contact email and a contact person's name. Billed per attempt, plus an extra charge only when an email is found.

## `enrichContactsMax` (type: `integer`):

Cap how many results the contact-email add-on tries to enrich, to control add-on cost. Free Apify accounts are capped at 3.

## Actor input object example

```json
{
  "keywords": [
    "restaurant"
  ],
  "location": "Florida",
  "searchUrls": [
    "https://www.bizbuysell.com/florida-businesses-for-sale/",
    "https://www.bizbuysell.com/Business-Opportunity/example/1234567/"
  ],
  "sellerFinancing": false,
  "realEstateIncluded": false,
  "homeBased": false,
  "relocatable": false,
  "absenteeOwner": false,
  "maxBusinesses": 100,
  "fetchDetails": true,
  "onlyCompleteResults": false,
  "deduplicateListings": true,
  "monitorMode": false,
  "monitorStoreName": "bizbuysell-monitor",
  "includeRawListing": false,
  "useDatacenterProxy": false,
  "maxConcurrency": 8,
  "withAiProfileSummary": false,
  "withAiLeadScore": false,
  "withAiExtract": false,
  "enrichBrokerWebsite": false,
  "enrichContacts": false,
  "enrichContactsMax": 50
}
```

# Actor output Schema

## `results` (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 = {
    "keywords": [
        "restaurant"
    ],
    "location": "Florida",
    "maxBusinesses": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/bizbuysell-businesses-for-sale-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 = {
    "keywords": ["restaurant"],
    "location": "Florida",
    "maxBusinesses": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/bizbuysell-businesses-for-sale-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 '{
  "keywords": [
    "restaurant"
  ],
  "location": "Florida",
  "maxBusinesses": 100
}' |
apify call scrapers_lat/bizbuysell-businesses-for-sale-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapers_lat/bizbuysell-businesses-for-sale-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/TGievhrTLzfRYqAXq/builds/plCthr2vsQq3dbNef/openapi.json
