BizBuySell Scraper - Businesses for Sale, Financials & Brokers avatar

BizBuySell Scraper - Businesses for Sale, Financials & Brokers

Pricing

$0.80 / 1,000 listings

Go to Apify Store
BizBuySell Scraper - Businesses for Sale, Financials & Brokers

BizBuySell Scraper - Businesses for Sale, Financials & Brokers

Scrape BizBuySell businesses for sale with the full listing: asking price, cash flow, revenue, EBITDA, inventory, FF&E, real estate, employees, rent, reason for selling, photos, documents and page views, plus the broker or owner name and phone. Filters, past 10,000 results, monitor. No login.

Pricing

$0.80 / 1,000 listings

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

What does BizBuySell Scraper do?

BizBuySell Scraper exports businesses for sale from BizBuySell.com, the largest business-for-sale marketplace in the US (45,060 listings collected in one run on 2026-10-16). Each row is one listing with its full record: asking price, cash flow (SDE), gross revenue, EBITDA, inventory, FF&E, real estate, year established, employees, rent and lease, facilities, competition, growth, support and training, reason for selling, photos and attached documents, plus the broker or owner contact (name, phone, brokerage, broker profile). Search funds, private-equity and independent sponsors, business brokers, SBA lenders, franchise developers and market researchers use it for deal sourcing, valuation comps and broker lead lists.

Also known as: BizBuySell API, BizBuySell data export, businesses for sale scraper, business broker leads, M&A deal flow scraper.

  • 🏢 The whole listing in every row: no "detail" add-on and no second request per listing - the financials, the narrative sections and the contact come in the same row.
  • 🔎 All the site's search filters: state, city, county, Canada and other countries, keyword, 207 categories, listing type, asking price, cash flow, revenue, established after, listed within N days, seller financing, real estate included, home-based, absentee owner, price reduced, SBA eligible, franchise resales, broker or owner listings, 6 sort orders.
  • ➕ Extra row filters: EBITDA range, employee range, established in or before a year, phone only.
  • 🔗 Or paste URLs: any BizBuySell search page (its own filters kept), listing pages, or bare listing numbers.
  • 🧩 Past the 10,000 limit: BizBuySell serves 10,000 results per search; bigger searches are split by state, listing type and category, and duplicates are removed. One run collected the whole site (45,060 listings) in under 4 minutes.
  • 👀 Page views per listing, sale-flyer and financial-summary PDF links, YouTube videos, the call-tracking number and the owner's website when published.
  • 🔔 Monitor mode: on a schedule, return only new listings and listings whose asking price changed.
  • 🔓 No login, no cookies, no API key.

What data can you get from BizBuySell?

🆔 Listing number + URL🏷️ Title + tagline📂 Listing type
🗂️ Category, group, second category💲 Asking price📈 Cash flow (SDE)
🧾 Gross revenue📊 EBITDA, pre-tax net income📦 Inventory (+ included?)
🪑 FF&E🏠 Real estate: owned / leased, value, included?➗ Price / cash flow, / EBITDA, / revenue
📅 Year established👥 Employees (full-time, part-time)🔑 Rent, rent period, lease expiration
🏭 Facilities, building sq ft⚔️ Competition🚀 Growth & expansion
🎓 Support & training❓ Reason for selling💳 Seller financing + details
📍 City, county, state, ZIP, country🗺️ Street address + coordinates (when public)🏡 Home-based, relocatable, absentee
🤝 Broker or owner📞 Contact name + phone☎️ Call-tracking number
🏛️ Brokerage + broker profile🌐 Business website🖼️ Photos + count
📄 Documents (PDF flyers)🎬 Video links👀 Page views, hot / new / updated badges

How to scrape BizBuySell with BizBuySell Scraper

  1. Create a free Apify account - the free plan comes with monthly credit.
  2. Open BizBuySell Scraper and pick states, categories or a keyword - or paste BizBuySell search or listing URLs.
  3. Narrow it down with the financial and listing filters, or leave them empty for every listing.
  4. Set Max listings (100 by default; 0 = everything that matches).
  5. Click Start. 100 listings take a few seconds; 1,000 took 8 seconds and the whole site under 4 minutes in our tests.
  6. Download the results as JSON, CSV, Excel or HTML, or read them through the API.

⬇️ Input

ParameterTypeDescription
🔍 What to scrape
startUrlslistBizBuySell search pages (filters in the q parameter kept), listing pages, or listing numbers
listingIdslistListing numbers, e.g. 2507315 (100 per request)
keywordtextThe site's keyword search
statesmulti-selectUS states (or codes like TX), Canada, Caribbean, Mexico, Puerto Rico, United Kingdom, Australia. Several places = one search
city / countytextA city or county inside the ONE state picked
categoriesmulti-select207 categories (a group includes its sub-categories); names and ids also accepted through the API
listingTypesmulti-selectestablished, asset-sale, real-estate-for-sale, real-estate-for-lease, start-up
💰 Financial filters
minAskingPrice / maxAskingPricenumberUSD, site filter
minCashFlow / maxCashFlownumberUSD, site filter
minGrossRevenue / maxGrossRevenuenumberUSD, site filter
minEbitda / maxEbitdanumberUSD, applied to the rows (listings without EBITDA are left out)
minEmployees / maxEmployeesnumberApplied to the rows
establishedAfterYearnumberSite filter
establishedBeforeYearnumberEstablished in or before this year, applied to the rows
listedWithinDaysnumberOnly listings published in the last N days
✅ Listing filters
sellerTypeselectany (default), broker, owner
sellerFinancingOnly, realEstateIncludedOnly, absenteeOwnerOnly, priceReducedOnly, sbaEligibleOnlytrue/falseSite filters, off by default
homeBased, franchiseResalesselectany (default), only, exclude
hideNoAskingPricetrue/falseLeave out listings without a price
includeRelocatabletrue/falseAlso return relocatable businesses from elsewhere (site option)
withPhoneOnlytrue/falseOnly rows with a contact or tracking phone (others are not charged)
⚙️ Run options
sortByselectrecommended (BizBuySell's order), newest, price-asc, price-desc, cashflow-desc, cashflow-asc
maxResultsnumberDefault 100; 0 = everything. In monitor mode it is the number of listings checked
maxResultsPerSearchnumberCap per pasted URL / search; 0 = none
splitLargeSearchestrue/falseDefault true: go past the site's 10,000 results per search
includeImagestrue/falseDefault true: every photo URL in images
monitorMode + monitorStoreNametrue/false + textOnly new / re-priced listings on later runs
maxConcurrencynumberParts of a split search read at once (1-4, default 2)
proxyConfigurationproxyOptional; by default the Actor connects directly and moves to residential proxies by itself only if BizBuySell refuses

With an empty input the Actor returns the first 100 listings of the whole site in BizBuySell's own order.

Input JSON

{
"states": ["Florida", "Georgia"],
"categories": ["restaurants-and-food-businesses"],
"minCashFlow": 100000,
"sellerType": "broker",
"sortBy": "newest",
"maxResults": 200
}

Paste URLs instead (or as well):

{
"startUrls": [
"https://www.bizbuysell.com/texas/houston-businesses-for-sale/",
"https://www.bizbuysell.com/business-opportunity/rare-waterfront-opportunity/2507315/"
],
"maxResultsPerSearch": 50
}

⬆️ Output

One row per listing. A real row from the test run (shortened; long text fields cut):

{
"listingId": 2561833,
"url": "https://www.bizbuysell.com/business-opportunity/profitable-senior-care-advisory-business/2561833/",
"title": "Profitable Senior Care Advisory Business",
"listingType": "Established business",
"category": "Assisted Living & Nursing Homes",
"categoryGroup": "Health Care & Fitness",
"askingPrice": 275000,
"cashFlow": 139448,
"grossRevenue": 346581,
"askingToCashFlow": 1.97,
"yearEstablished": 2019,
"support": "Seller willing to train.",
"reasonForSelling": "Family commitments",
"location": "Austin, TX",
"city": "Austin", "county": "Travis County", "state": "TX", "zip": "78748",
"sellerType": "broker",
"contactName": "Dave Godwin, CBI, IBBA, M&A Source",
"contactPhone": "(479) 263-7330",
"trackedPhone": "(539) 999-0309",
"brokerCompany": "CBI Team",
"brokerProfileUrl": "https://www.bizbuysell.com/business-broker/dave-godwin-cbi-ibba-manda-source/cbi-team/291/",
"pageViews": 106,
"lastUpdated": "2026-10-16"
}

Fields

Fill = share of rows with a value, measured on the full-site run of 2026-10-16 (45,060 listings). Sellers decide what they disclose; a missing value is null, never a made-up zero.

FieldMeaningFill
listingId, url, title, listingType, category, categoryGroup, categoryIdIdentity and category100%
tagline, secondaryCategoryAd line, second category35% / 53%
askingPriceAsking price, USD95%
cashFlowCash flow / SDE53%
grossRevenueAnnual gross revenue71%
ebitda, preTaxNetIncomeEBITDA, pre-tax net income11% / 2%
inventory, inventoryIncludedInPriceInventory value, included in price34%
ffeFurniture, fixtures & equipment35%
realEstate, realEstateValue, realEstateIncludedInPriceowned / leased / none, value, included90% / 8% / 100%
askingToCashFlow, askingToEbitda, askingToRevenueAsking price divided by each (computed)51% / 9% / 68%
sellerFinancing, financingSeller financing offered, details99% / 27%
yearEstablishedYear established68%
employees, fullTimeEmployees, partTimeEmployees, employeeNotesStaff41% (notes 19%)
rent, rentPeriod, leaseExpiration, buildingSqFtRent, lease, building36% / 19% / 44%
summary, facilities, competition, growth, support, reasonForSellingListing sections100% / 57% / 40% / 44% / 67% / 70%
homeBased, relocatable, absenteeOwner, isFranchise, franchiseBrandBusiness flags (11% are franchises)100% (brand 5%)
location, city, county, state, zip, countryLocation99% / 58% / 88% / 99% / 57% / 99% (city and ZIP are often kept confidential)
streetAddress, latitude, longitudeWhen the seller made them public10% / 15%
sellerTypebroker 78%, owner 13%, broker or M&A advisor 5%, other roles (franchisor, accountant, attorney...) 2%99%
contactName, contactFirstName, contactLastNameWho to contact99%
contactPhoneContact phone97%
trackedPhoneBizBuySell call-tracking number77%
brokerCompany, brokerProfileUrl, brokerIdBrokerage and profile78%
businessWebsiteThe business's website14%
imageUrl, images, imageCountPhotos100%
documents{name, url} of attached PDFs (flyers, financial summaries)10%
videoUrlsYouTube links3%
pageViewsTimes the listing was viewed on BizBuySell100%
hotProperty, recentlyAdded, recentlyUpdatedSite badges100%
lastUpdatedDate the listing was last edited100%
changeType, previousAskingPrice, firstSeenAtMonitor mode onlymonitor rows
source, scrapedAtSearch or URL that produced the row, time collected100%

The Console shows four views: Listings, Financials, Contacts and Business details. A RUN_SUMMARY record in the key-value store lists every search with the total the site counted, the parts it was split into, pages read, rows delivered and its status.

Use cases

  • 🎯 Search funds and independent sponsors: a daily feed of new listings with cash flow above your floor in your states, with the broker's phone.
  • 🏦 SBA lenders and acquisition-loan brokers: listings marked SBA eligible or with seller financing, with asking price, cash flow and revenue to pre-screen.
  • 🤝 Business brokers: competitor inventory by category and county, broker names and brokerages, page views per listing.
  • 📐 Valuation and M&A research: price-to-cash-flow and price-to-revenue multiples by category and state from tens of thousands of asking prices.
  • 🍕 Franchise developers: franchise resales by brand and region.
  • 📞 Lead generation: owner-listed businesses with the owner's name, phone and website.

How much does it cost to scrape BizBuySell?

You pay per listing delivered; there is no start fee and no extra charge for the details or the contact. The price per listing is shown on the Actor's pricing tab.

  • Duplicates, rows removed by the EBITDA / employee / year / phone filters, and monitor-mode listings that did not change are never charged.
  • A run stops cleanly at the maximum charge you set for it: every row in the dataset is a charged row.

Integrations, API, scheduling & MCP

Run BizBuySell Scraper on a schedule (daily with monitor mode is the usual set-up), get a webhook when it finishes, and send results to Google Sheets, Slack, Make, Zapier or n8n through Apify integrations. Call it from code with the Python or JavaScript client, or connect it to an AI assistant through the MCP server.

More business-for-sale scrapers

🏪 BizQuest Scraper
BizQuest businesses for sale with broker name and phone.
🏢 Crexi Scraper
Commercial real estate listings and brokers.
🌾 LandWatch Scraper
Land and farm listings with brokers.

More from ScrapersDelight.

Limits & empty runs

  • BizBuySell serves at most 10,000 results per search. With splitLargeSearches on (default) a bigger search is split; the whole site (45,060 listings) arrived in one run, with 524 cross-listed duplicates removed and not charged.
  • The site's publish date is not part of the data BizBuySell serves outside its web pages, so there is no "date listed" column; use listedWithinDays to filter by listing age, sortBy: newest, and lastUpdated.
  • Franchise-directory offers and broker-directory profiles are not listings and are not scraped (use the broker fields on each listing).
  • An unknown city, county or URL path ends the search as "rejected by the site" (shown in the run status and RUN_SUMMARY); nothing is charged. A run whose every search fails is marked FAILED.
  • A monitor run that finds nothing new delivers 0 rows and costs nothing per row.

FAQ

How much does BizBuySell Scraper cost?

One charge per listing delivered, with every field included; see the pricing tab. Filtered, duplicate and unchanged-monitor rows are free.

How many listings can BizBuySell Scraper return?

Everything on the site: the full-site test run returned 45,060 listings. A single search is limited by BizBuySell to 10,000; the Actor splits larger searches automatically.

Does BizBuySell Scraper return the broker's phone number?

Yes: 97% of rows have the contact's phone and 77% also carry BizBuySell's call-tracking number. Broker rows add the brokerage and the broker's BizBuySell profile; owner rows often add the website and sometimes the street address.

Can BizBuySell Scraper return cash flow, revenue and EBITDA?

Yes, together with asking price, inventory, FF&E, real estate, rent and the computed price multiples - when the seller discloses them (cash flow 53%, revenue 71%, EBITDA 11% of all listings).

Can I monitor BizBuySell for new listings with BizBuySell Scraper?

Yes. Turn on monitor mode, give the watch a store name and schedule the run: later runs return only new listings and listings whose asking price changed (changeType, previousAskingPrice).

Can I use BizBuySell Scraper with BizBuySell URLs I already have?

Yes. Paste any BizBuySell search page - the filters in its address are kept - or listing pages and listing numbers.

Does BizBuySell Scraper need a BizBuySell account, cookies or an API key?

No.

Why did BizBuySell Scraper return fewer rows than I asked for?

The search had fewer matches, rows were removed by the EBITDA / employee / year / phone filters, or the run reached its maximum charge. RUN_SUMMARY shows the count the site reported for each search and the reason.

Can I call BizBuySell Scraper from my code or an AI agent?

Yes, through the Apify API (Python and JavaScript clients) or the MCP server; see Integrations above.

Your feedback

Something missing or not working? Open an issue on the Issues tab - we read every one and usually ship fixes within days.