BizBuySell Scraper - Businesses for Sale, Financials & Brokers
Pricing
$0.80 / 1,000 listings
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
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
- Create a free Apify account - the free plan comes with monthly credit.
- Open BizBuySell Scraper and pick states, categories or a keyword - or paste BizBuySell search or listing URLs.
- Narrow it down with the financial and listing filters, or leave them empty for every listing.
- Set Max listings (100 by default; 0 = everything that matches).
- Click Start. 100 listings take a few seconds; 1,000 took 8 seconds and the whole site under 4 minutes in our tests.
- Download the results as JSON, CSV, Excel or HTML, or read them through the API.
⬇️ Input
| Parameter | Type | Description |
|---|---|---|
| 🔍 What to scrape | ||
startUrls | list | BizBuySell search pages (filters in the q parameter kept), listing pages, or listing numbers |
listingIds | list | Listing numbers, e.g. 2507315 (100 per request) |
keyword | text | The site's keyword search |
states | multi-select | US states (or codes like TX), Canada, Caribbean, Mexico, Puerto Rico, United Kingdom, Australia. Several places = one search |
city / county | text | A city or county inside the ONE state picked |
categories | multi-select | 207 categories (a group includes its sub-categories); names and ids also accepted through the API |
listingTypes | multi-select | established, asset-sale, real-estate-for-sale, real-estate-for-lease, start-up |
| 💰 Financial filters | ||
minAskingPrice / maxAskingPrice | number | USD, site filter |
minCashFlow / maxCashFlow | number | USD, site filter |
minGrossRevenue / maxGrossRevenue | number | USD, site filter |
minEbitda / maxEbitda | number | USD, applied to the rows (listings without EBITDA are left out) |
minEmployees / maxEmployees | number | Applied to the rows |
establishedAfterYear | number | Site filter |
establishedBeforeYear | number | Established in or before this year, applied to the rows |
listedWithinDays | number | Only listings published in the last N days |
| ✅ Listing filters | ||
sellerType | select | any (default), broker, owner |
sellerFinancingOnly, realEstateIncludedOnly, absenteeOwnerOnly, priceReducedOnly, sbaEligibleOnly | true/false | Site filters, off by default |
homeBased, franchiseResales | select | any (default), only, exclude |
hideNoAskingPrice | true/false | Leave out listings without a price |
includeRelocatable | true/false | Also return relocatable businesses from elsewhere (site option) |
withPhoneOnly | true/false | Only rows with a contact or tracking phone (others are not charged) |
| ⚙️ Run options | ||
sortBy | select | recommended (BizBuySell's order), newest, price-asc, price-desc, cashflow-desc, cashflow-asc |
maxResults | number | Default 100; 0 = everything. In monitor mode it is the number of listings checked |
maxResultsPerSearch | number | Cap per pasted URL / search; 0 = none |
splitLargeSearches | true/false | Default true: go past the site's 10,000 results per search |
includeImages | true/false | Default true: every photo URL in images |
monitorMode + monitorStoreName | true/false + text | Only new / re-priced listings on later runs |
maxConcurrency | number | Parts of a split search read at once (1-4, default 2) |
proxyConfiguration | proxy | Optional; 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.
| Field | Meaning | Fill |
|---|---|---|
listingId, url, title, listingType, category, categoryGroup, categoryId | Identity and category | 100% |
tagline, secondaryCategory | Ad line, second category | 35% / 53% |
askingPrice | Asking price, USD | 95% |
cashFlow | Cash flow / SDE | 53% |
grossRevenue | Annual gross revenue | 71% |
ebitda, preTaxNetIncome | EBITDA, pre-tax net income | 11% / 2% |
inventory, inventoryIncludedInPrice | Inventory value, included in price | 34% |
ffe | Furniture, fixtures & equipment | 35% |
realEstate, realEstateValue, realEstateIncludedInPrice | owned / leased / none, value, included | 90% / 8% / 100% |
askingToCashFlow, askingToEbitda, askingToRevenue | Asking price divided by each (computed) | 51% / 9% / 68% |
sellerFinancing, financing | Seller financing offered, details | 99% / 27% |
yearEstablished | Year established | 68% |
employees, fullTimeEmployees, partTimeEmployees, employeeNotes | Staff | 41% (notes 19%) |
rent, rentPeriod, leaseExpiration, buildingSqFt | Rent, lease, building | 36% / 19% / 44% |
summary, facilities, competition, growth, support, reasonForSelling | Listing sections | 100% / 57% / 40% / 44% / 67% / 70% |
homeBased, relocatable, absenteeOwner, isFranchise, franchiseBrand | Business flags (11% are franchises) | 100% (brand 5%) |
location, city, county, state, zip, country | Location | 99% / 58% / 88% / 99% / 57% / 99% (city and ZIP are often kept confidential) |
streetAddress, latitude, longitude | When the seller made them public | 10% / 15% |
sellerType | broker 78%, owner 13%, broker or M&A advisor 5%, other roles (franchisor, accountant, attorney...) 2% | 99% |
contactName, contactFirstName, contactLastName | Who to contact | 99% |
contactPhone | Contact phone | 97% |
trackedPhone | BizBuySell call-tracking number | 77% |
brokerCompany, brokerProfileUrl, brokerId | Brokerage and profile | 78% |
businessWebsite | The business's website | 14% |
imageUrl, images, imageCount | Photos | 100% |
documents | {name, url} of attached PDFs (flyers, financial summaries) | 10% |
videoUrls | YouTube links | 3% |
pageViews | Times the listing was viewed on BizBuySell | 100% |
hotProperty, recentlyAdded, recentlyUpdated | Site badges | 100% |
lastUpdated | Date the listing was last edited | 100% |
changeType, previousAskingPrice, firstSeenAt | Monitor mode only | monitor rows |
source, scrapedAt | Search or URL that produced the row, time collected | 100% |
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
splitLargeSearcheson (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
listedWithinDaysto filter by listing age,sortBy: newest, andlastUpdated. - 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.