BizBuySell Scraper - Businesses For Sale & Broker Leads avatar

BizBuySell Scraper - Businesses For Sale & Broker Leads

Pricing

from $2.30 / 1,000 business listing scrapeds

Go to Apify Store
BizBuySell Scraper - Businesses For Sale & Broker Leads

BizBuySell Scraper - Businesses For Sale & Broker Leads

Scrape BizBuySell businesses-for-sale listings by state, category, price or URL. Get asking price, cash flow, EBITDA, gross revenue, broker name & phone, location, financing & lead score. Independent tool, not affiliated with BizBuySell.

Pricing

from $2.30 / 1,000 business listing scrapeds

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

1

Bookmarked

63

Total users

21

Monthly active users

9 days ago

Last modified

Share

BizBuySell Scraper - Businesses For Sale & Broker Leads (Financials, Cash Flow & Broker Phone)

Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by CoStar Group, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "BizBuySell" is referenced only to describe the publicly available website this Actor collects data from.

Extract BizBuySell businesses for sale as clean, ready-to-use records: asking price, cash flow (SDE), EBITDA, gross revenue, seller financing, the SBA Loan Eligible badge, the listing contact's name and phone, the brokerage, and fresh-deal signals. Search by state, industry, keyword, price, cash flow, revenue or listing age, or paste any BizBuySell search or listing URL, and turn every listing into a deal lead.

No login and no API key. The data comes from BizBuySell's own listing data, and the connection through BizBuySell's bot protection is handled for you.

What you get

DataWhere it comes from
Asking price, cash flow (SDE), EBITDAevery listing (as the seller discloses them)
Startups: cash required and initial fee (franchiseInitialCapital, franchiseInitialFee)startup listings that state them (a startup has no asking price yet)
Location, listing type, photos, short descriptionevery listing (a startup, not tied to a place yet, has no location)
Seller financing, real estate included, price reduced, SBA Loan Eligible badgeevery listing
New listing / recently updated flags, premium placement levelevery listing
Listing contact name + phone, brokerage, broker profile, industryBizBuySell's search data for its premium (Diamond) listings; with Enrich with detail pages, every listing that names a contact, plus its industry and sub-industry in BizBuySell's own categories
Gross revenue, full description, sub-industry, year established, employeesEnrich with detail pages
Inventory and FF&E value (and whether the inventory is included in the price), real estate owned or leased, building size, rent, lease expiryEnrich with detail pages
Financing terms, support & training, competition, growth, reason for sellingEnrich with detail pages
Street address, ZIP code, coordinates, county, business website, price-to-cash-flow and price-to-EBITDA multiples, listing views, last updatedEnrich with detail pages, where the seller publishes them (an address or website the seller keeps confidential stays out)
Franchise opportunities: cash required, average unit revenue, franchise fee, total investment, unitsListing types: Franchise (fee, investment and units with detail pages)
Lead score (0-100)every listing
Monitor mode: only new or changed listings on each runoptional

Use cases

  • Deal sourcing and acquisitions: business buyers, search funds, private equity and family offices filter by industry, state, asking price, cash flow and revenue to keep a live pipeline of on-market businesses.
  • Broker and M&A lead generation: listings carry the listing contact's name and phone and the brokerage, so you can prospect business brokers and intermediaries directly, ranked by leadScore.
  • Valuation comps and market sizing: pull asking price, cash flow and revenue by industry and state for valuation benchmarks and market research.
  • Lender and financing outreach: SBA lenders and acquisition lenders can target listings that offer seller financing or carry BizBuySell's SBA Loan Eligible badge.
  • Fresh-deal alerts: schedule monitor mode daily or weekly to receive only newly listed or price-changed businesses.

How to use

  1. Sign up for Apify. The free plan is enough to try this actor.
  2. Open the BizBuySell Scraper, choose States and/or Industry categories, add a Keyword or price / cash-flow filters if you like (or paste BizBuySell search or listing URLs), and click Start.
  3. Watch results arrive in the dataset table.
  4. Export as JSON, CSV, Excel, XML or RSS, or pull results through the Apify API.

Input

{
"states": ["Florida", "Texas"],
"categories": ["Restaurants & Food"],
"keyword": "pizza",
"minAskingPrice": 100000,
"minCashFlow": 50000,
"listingTypes": ["Established Business"],
"includeDetails": true,
"maxItems": 100,
"monitorMode": false
}
  • states: US states to search (Florida, Texas, California, ...). Leave States, Industry categories and Search URLs empty to search the nationwide feed.
  • categories: industry categories (Restaurants & Food, Health Care & Fitness, Manufacturing, Online & Technology, ...). Combine with states for a state + industry search.
  • keyword: BizBuySell's own keyword search over titles and full listing text, for example laundromat or liquor store.
  • minAskingPrice / maxAskingPrice / minCashFlow / minGrossRevenue: financial filters.
  • listedWithinDays: only listings published or re-published in the last N days.
  • listingTypes: Established Business, Asset Sale, Business Real Estate, Startup, Franchise.
  • searchUrls: (advanced) BizBuySell search or browse URLs copied from your browser (city and county pages, filtered searches), and single listing or franchise pages.
  • includeDetails (default off): add each listing's full record (the detail fields listed above).
  • maxItems (default 100): maximum records for the whole run, shared fairly between your searches.
  • monitorMode (default off): output only new or changed listings compared with earlier runs.

Filters run on BizBuySell's side. Keyword, asking price, cash flow, gross revenue, listing age and listing type are sent to BizBuySell's own search, so a narrow search costs one or two pages, not a crawl of thousands of listings. The price and cash-flow limits are checked again on every row. A search with no matches ends at once, with nothing billed.

Importing a list of URLs from a file

Got the URLs already? You do not have to add them one at a time. Import URLs from a file takes one URL per line, two ways:

  1. Paste the list: open your .txt, select all, paste it into the box.
  2. Link the file: put a single link there instead and it is downloaded for you: a public .txt/.csv, a Google Sheets or Drive share link (converted to CSV export automatically), or an Apify key-value-store record.
{ "urlsFromFile": "https://example.com/my-urls.txt" }

Imported URLs are added to searchUrls. Blank lines, Windows line endings, a UTF-8 BOM, # comments, surrounding quotes and extra CSV columns are all tolerated, and duplicates are only scraped once. If the file cannot be read, the run says so on the run card instead of quietly returning nothing.

Output

One record per business for sale. An example with detail enrichment on (contact and address details replaced by placeholders):

{
"listingId": 2551135,
"listingType": "Established Business",
"name": "Bakery & Creamery Franchise, 10+ Years Established, Priced to Sell!",
"url": "https://www.bizbuysell.com/business-opportunity/.../2551135/",
"description": "A nationally recognized bakery and creamery franchise in one of the busiest retail corridors in Fort Bend County...",
"location": "Missouri City, TX",
"city": "Missouri City",
"state": "TX",
"stateName": "Texas",
"askingPrice": 210000,
"cashFlow": 72940,
"ebitda": null,
"grossRevenue": 335594,
"currency": "USD",
"priceReduced": false,
"realEstateIncluded": false,
"sellerFinancingAvailable": true,
"sbaLoanEligible": false,
"industry": "Restaurants & Food",
"subIndustry": "Bakeries",
"category": "Restaurants & Food",
"rent": 4897,
"rentPeriod": "per month",
"isNewListing": false,
"isRecentlyUpdated": true,
"adLevel": "Diamond",
"imageCount": 3,
"brokerName": "Alex Morgan",
"brokerPhone": "(555) 010-0142",
"brokerPhoneType": "direct",
"listingPhone": "(555) 010-0199",
"brokerCompany": "Example Business Brokers",
"brokerProfileUrl": "https://www.bizbuysell.com/business-broker/.../",
"isBrokerListing": true,
"yearEstablished": 2015,
"employees": "6 part-time",
"employeeCount": 6,
"inventoryValue": 1500,
"inventoryIncluded": true,
"ffeValue": 34476,
"realEstateOwnership": "Leased",
"buildingSqFt": 1650,
"leaseExpiration": "2027-11-01",
"financingDetails": "Seller financing available",
"reasonForSelling": "Owner is stepping back to focus on family and other ventures.",
"streetAddress": "100 Example Rd",
"zipCode": "77459",
"county": "Fort Bend County",
"latitude": 29.57,
"longitude": -95.54,
"businessWebsite": "https://www.example.com",
"priceToCashFlowMultiple": 2.88,
"listingViews": 412,
"lastUpdated": "2026-10-16T14:02:11Z",
"detailScraped": true,
"leadScore": 98,
"scrapedAt": "2026-10-17T19:55:42.034Z"
}

Phones. brokerPhone is the contact's direct line when BizBuySell publishes it (brokerPhoneType: "direct"), otherwise the listing's call-tracking number ("tracking"), which BizBuySell forwards to the broker. listingPhone is the call-tracking number BizBuySell shows on broker listings.

Details come from BizBuySell's full listing records. With Enrich with detail pages on, the actor reads each listing's complete record as BizBuySell publishes it (one request covers a whole result page), so details arrive in seconds. A listing whose record is not returned falls back to its own page, which is slow and can fail: such a listing keeps its search data and is not charged for a detail enrichment, and a page that loads without its financial section keeps what it did show (detailPartial: true), also not charged. The run card says how many were added.

Empty values are honest. A field is null when BizBuySell does not publish it: asking price, cash flow or EBITDA "Not Disclosed", no location or asking price on a startup listing, no broker on a for-sale-by-owner listing, no SBA prequalification, auction dates on non-auction listings, an address or website the seller keeps confidential, or detail fields on a run without detail enrichment. BizBuySell's search data carries the listing contact and the industry for its premium (Diamond) listings; for every other listing, Enrich with detail pages adds them from the listing's full record.

Monitor mode: only new and changed deals

Turn on monitorMode to follow a search over time. The actor remembers every listing it has delivered (in a named key-value store) and, on later runs, outputs only listings that are new or whose asking price, cash flow or title changed, each tagged monitorStatus: "new" or "updated".

Each run reads what BizBuySell listed or re-published recently: the first run covers the last 7 days, and later runs cover the days since the last complete check. A run that stops at Max listings before it has read everything leaves the rest for the next run, so no new listing is skipped. A quiet check reads a page or two, and listings you already have are never billed again. Pair it with Apify Schedules for a daily or weekly fresh-deal feed. Use a different Monitor store name for each saved search to keep their histories apart.

Franchise opportunities

BizBuySell shows franchise opportunities inside its search results. Pick Listing types: Franchise to collect them (with franchise resales): name, cash required (franchiseInitialCapital), average unit revenue, category, logo and photos. With Enrich with detail pages each franchise also gets its franchise fee, net worth required, total investment range, number of units, year franchising started, headquarters and website. Without the Franchise type, franchise placements and broker ads are left out, so every row is a business for sale.

Pasting listing URLs

Paste a single listing (https://www.bizbuysell.com/business-opportunity/.../<id>/) or franchise page into Search or listing URLs to get one complete record for it. A pasted listing is read from BizBuySell's full listing record (from its own page if the record is not returned), so it carries every detail field and is billed as one listing plus one detail enrichment.

How much does it cost to scrape BizBuySell?

This Actor uses Apify's pay-per-event pricing: you are charged only for the results it delivers, with no monthly rental and no start fee. The events it can charge are:

  • Business listing scraped - One BizBuySell listing: title, type, location, industry, asking price, cash flow, EBITDA, financing & RE flags, freshness, premium-placement level, images, broker name + phone + brokerage + profile, and a 0-100 lead score.
  • Detail-page enrichment - Opt-in per-listing detail fetch adding gross revenue, full description, year established, employees, inventory, FF&E, real-estate value, rent & reason for selling. Only charged on success when enrichment is on.

The current price of each event is shown on the Pricing tab of this page. A detail enrichment is charged only when the listing's full details were delivered (its record, or its page read in full), and a pasted listing URL is billed as one listing plus one detail enrichment (a listing only, if it fell back to a page that loaded without the financial section). Runs that find nothing, and listings a monitor already delivered, are not billed. Set a maximum total charge on the run if you want a hard cap on spend: the actor stops before going over it.

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/bizbuysell-scraper').call({
states: ['Florida', 'Texas'],
categories: ['Restaurants & Food'],
minCashFlow: 50000,
includeDetails: true,
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} business-for-sale listings`);

Integrate with any app

Connect the dataset to thousands of apps with no code:

  • Make: multi-step automation scenarios.
  • Zapier: push new deals or broker leads straight into your CRM.
  • Slack: get notified when a monitored search finds new listings.
  • Google Drive / Sheets: auto-export every run to a spreadsheet.
  • Airbyte: pipe results into your data warehouse.
  • GitHub: trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT or any agent framework through the Apify MCP server: ask your assistant to "find manufacturing businesses for sale in Texas under $2M with seller financing and list the brokers" and let it run this scraper.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready: AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402: an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server, with no account and no API key.
  • Skyfire: agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Build a complete deal-sourcing and business-intelligence stack:

Tips

  • State + industry: combine states and categories for tight targeting (for example Texas + Restaurants & Food), and add a keyword to narrow further.
  • Big result sets: BizBuySell returns about 50 listings per page. Raise maxItems and maxPagesPerSearch to go deeper, or split by state or industry.
  • Broker leads: turn on includeDetails to add the contact name and phone, brokerage and industry to every listing that publishes them (search data carries the contact for premium listings only).
  • Cost control: detail enrichment is optional and billed separately; leave it off when the search-level financials are enough.

FAQ

How do I scrape BizBuySell for a specific state or industry? Put the state(s) in states and/or the industry in categories. Combine them for a state + industry search. For anything more specific (a county or city page, a filtered search), search on bizbuysell.com and paste the URL into searchUrls.

Does it get broker contact details? Yes. BizBuySell's search data includes the listing contact's name and phone for its premium (Diamond) listings. For every other listing, turn on includeDetails and the contact, brokerage and phone come from the listing's full record. For-sale-by-owner listings have no brokerage.

Where do gross revenue and year established come from? Each listing's full record. Turn on includeDetails to add them (billed per detail enrichment). The minGrossRevenue filter works without detail pages, because BizBuySell applies it.

Can I export to Google Sheets, CSV, or Excel? Yes: one click in the dataset view, or automatically on every run through the Google Drive integration.

How do I get only new listings? Turn on monitorMode and run it on a Schedule, or set listedWithinDays for a simple "listed in the last N days" search.

Is scraping BizBuySell legal? This actor collects publicly available listing data only. You are responsible for using the data in compliance with applicable laws and BizBuySell's terms.

Data & lawful use

This Actor reads business and professional listings that the professionals themselves published to be found: names, roles, firms, ratings and the contact details shown on the public listing. Because those details belong to identifiable people, treat the output as personal data. If you are in the EU or UK you are the data controller for what you do with it: have a lawful basis (usually legitimate interest for B2B prospecting or market research), keep any outreach relevant to the professional's line of work, honour opt-outs and deletion requests, and do not use the output for spam.

Under Apify's Standard Actor Contract, which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by CoStar Group, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

"BizBuySell" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official BizBuySell product, is not authorised or certified by CoStar Group, Inc., and does not distribute BizBuySell software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome: this actor is actively maintained.