BizBuySell Scraper avatar

BizBuySell Scraper

Pricing

from $1.49 / 1,000 results

Go to Apify Store
BizBuySell Scraper

BizBuySell Scraper

Scrape BizBuySell business listings for market research, investment analysis & due diligence. Extract business data, valuations, and contact info at scale. Perfect for brokers, investors & entrepreneurs conducting market intelligence.

Pricing

from $1.49 / 1,000 results

Rating

5.0

(8)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

4

Bookmarked

215

Total users

68

Monthly active users

8 hours ago

Last modified

Share

What does BizBuySell Businesses For Sale Scraper do?

BizBuySell Businesses For Sale Scraper extracts structured business-for-sale and franchise listing data from BizBuySell. Use it to collect listing titles, prices, category breadcrumbs, original listing dates, locations, broker details, financial signals, listing URLs, and detail text for market research, deal sourcing, lead generation, and monitoring workflows.

You can start with a BizBuySell search URL, a category URL, a franchise URL, or a location. The Actor saves one dataset item per listing, ready for CSV, Excel, JSON, Google Sheets, a CRM, or your own database.

Why use this Actor?

  • Build a repeatable list of active business listings by niche, state, city, keyword, or category.
  • Segment opportunities with category_full and category_final, for example restaurants, self-storage, routes, ecommerce, or manufacturing.
  • Judge listing age with date_listed instead of the scrape timestamp.
  • Collect broker names, companies, profile links, and phone numbers for outreach.
  • Compare asking price, cash flow, EBITDA, gross revenue, inventory, FFE, lease terms, and franchise investment fields when the seller publishes them.
  • Schedule runs, export the dataset, or pull results through the Apify API.
  • Recover from temporary rejections: the Actor retries, then tries an equivalent route for the same public listings before it stops.

What data can you extract from BizBuySell?

FieldTypeDescription
sourceStringSource identifier, usually bizbuysell.
listing_categoryStringListing mode, such as business or franchise.
listing_idIntegerUnique BizBuySell listing number.
site_specific_idIntegerSite-specific listing identifier when available.
titleStringListing headline.
urlStringDirect listing URL.
category_fullStringFull category breadcrumb, for example Industrial > Self-Storage.
category_finalStringFinal category name, for example Self-Storage.
date_listedStringOriginal listing date in YYYY-MM-DD format when available.
locationStringListing location text.
state_codeStringState or region code.
priceNumberAsking price when published.
cash_flowNumberCash flow value when published.
ebitdaNumberEBITDA value when published.
gross_revenueNumberGross revenue when published.
inventory_valueNumberInventory value when published.
ffe_valueNumberFurniture, fixtures, and equipment value when published.
year_establishedNumberYear the business was established.
employees_full_timeNumberFull-time employee count.
employees_part_timeNumberPart-time employee count.
lease_rate_per_square_footNumberLease rate per square foot when published.
lease_rate_durationNumberLease rate duration when published.
lease_expiration_dateStringValid lease expiration date when published. Empty or Unix epoch values are omitted.
lease_termsStringLease terms text.
real_estate_included_in_asking_priceBooleanWhether real estate is included in the asking price.
inventory_included_in_asking_priceBooleanWhether inventory is included in the asking price.
home_basedBooleanWhether the business is home based.
relocatableBooleanWhether the business is relocatable.
absentee_ownerBooleanWhether absentee ownership is indicated.
listing_price_reducedBooleanWhether the listing has a price reduction marker.
recently_addedBooleanWhether BizBuySell marks the listing as recently added.
recently_updatedBooleanWhether BizBuySell marks the listing as recently updated.
hot_propertyBooleanHot property marker.
image_urlStringPrimary listing image URL when available.
image_urlsArrayAvailable listing image URLs.
broker_nameStringBroker or contact name.
broker_companyStringBroker company name.
broker_profile_urlStringBroker profile URL.
contact_phoneStringPublic contact phone number when available.
summaryStringListing summary.
business_highlightsStringBusiness highlights when available.
facilitiesStringFacilities details.
growthStringGrowth details.
competitionStringCompetition details.
reason_for_sellingStringSeller reason when published.
supportStringTraining or support details.
financing_optionsStringFinancing details when available.
fetched_atStringISO timestamp for when the Actor collected the record.
search_urlStringBizBuySell URL used for the run.

Franchise records can also include fields such as cash_required, investment_minimum, investment_maximum, net_worth_required, franchise_fee, franchised_units, total_number_of_units, franchising_since, corporate_headquarters, ceo_name, average_unit_revenue, general_description, website, category_names, and location_filters.

How to use BizBuySell Businesses For Sale Scraper

  1. Open the Actor in Apify Console.
  2. Keep the prefilled search URL in startUrls, paste the BizBuySell search, category, state, city, or franchise URL you need, or clear it and set location.
  3. Add a keyword when you want to narrow the selected URL.
  4. Set results_wanted to the number of listings you want and max_pages to cap pagination.
  5. Run the Actor.
  6. Download the dataset or connect it to your workflow.

To search by location instead of a URL, clear startUrls (submit an empty list) and set location. API callers can also simply omit startUrls: unlike the Console prefill, it has no schema default, so omitting it does not force the national page. A custom URL always wins when both are present, and the run log tells you when the location value was ignored. If an older saved input contains only the national default URL plus a location, the Actor honors the location and logs the recovery.

Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlsArrayNo- (Console prefill only)BizBuySell search, category, state, city, or franchise URL. The first valid URL is used. Omit it to search by location.
keywordStringNo-Optional keyword filter applied to the selected URL.
locationStringNo-US state, city, or City, ST. Used when startUrls is empty or still contains only the national default URL.
results_wantedIntegerNo20Maximum number of records to save.
max_pagesIntegerNo20Maximum number of result pages to process.
proxyConfigurationObjectNo{"useApifyProxy": false}Optional proxy configuration. Residential proxies help with very large batches.
autoProxyFallbackBooleanNotrueIf direct requests are blocked, retry once with Apify Residential Proxy for the rest of the run.

Usage Examples

Basic business listing extraction

Collect the first business listings from the main BizBuySell search page:

{
"startUrls": [{ "url": "https://www.bizbuysell.com/businesses-for-sale/" }],
"results_wanted": 20,
"max_pages": 2
}

Omit startUrls and pass a state, city, or City, ST. The Actor resolves the value to the correct BizBuySell search path before collecting:

{
"location": "alabama",
"results_wanted": 100,
"max_pages": 5
}

Supported forms include alabama, AL, Los Angeles, "Los Angeles, CA", "Los Angeles County, CA", and "Los Angeles Metro Area, CA".

Narrow the main search page to restaurant listings and limit the run to a practical research batch:

{
"startUrls": [{ "url": "https://www.bizbuysell.com/businesses-for-sale/" }],
"keyword": "restaurant",
"results_wanted": 100,
"max_pages": 5
}

Category or state URL

Use a specific BizBuySell URL when you already have a target market or business category:

{
"startUrls": [{ "url": "https://www.bizbuysell.com/california-businesses-for-sale/" }],
"results_wanted": 150,
"max_pages": 6
}

Franchise listings

Collect franchise opportunities from BizBuySell franchise pages:

{
"startUrls": [{ "url": "https://www.bizbuysell.com/franchise-for-sale/" }],
"results_wanted": 20
}

Sample Output

{
"source": "bizbuysell",
"listing_category": "business",
"fetched_at": "2026-07-29T05:11:00.694Z",
"search_url": "https://www.bizbuysell.com/businesses-for-sale/",
"seo_path": "/businesses-for-sale/",
"listing_id": 2534561,
"site_specific_id": 2534561,
"title": "Established Restaurant Group with 2 Locations & Built-In Foot Traffic",
"url": "https://www.bizbuysell.com/business-opportunity/example-listing/2534561/",
"category_full": "Restaurants & Food > Full-Service Restaurants",
"category_final": "Full-Service Restaurants",
"date_listed": "2026-06-12",
"location": "Sumter County, FL",
"state_code": "FL",
"price": 750000,
"cash_flow": 376360,
"year_established": 2008,
"lease_rate_duration": 40,
"broker_company": "Example Business Brokers",
"broker_name": "Example Broker",
"image_url": "https://images.bizbuysell.com/shared/listings/253/2534561/example-W768.webp",
"image_urls": [
"https://images.bizbuysell.com/shared/listings/253/2534561/example-W768.webp",
"https://images.bizbuysell.com/shared/listings/253/2534561/example-W336.webp"
],
"contact_phone": "(407) 555-0100",
"recently_added": true,
"listing_price_reduced": false,
"summary": "Established restaurant group with repeat traffic and experienced management."
}

Tips for Best Results

  • Use complete public BizBuySell URLs for state, city, category, or franchise pages.
  • Start with results_wanted: 20 when testing a new search.
  • Increase results_wanted and max_pages together when you need broader coverage.
  • Use category_full, category_final, and date_listed for cleaner market segmentation and listing-age analysis.
  • Use image_urls when you need listing images for review, enrichment, or gallery workflows.
  • Some fields are absent when BizBuySell or the advertiser does not publish them.
  • Empty values are omitted from dataset items, so missing fields usually mean the source listing did not provide that data.

Integrations and Export Formats

The dataset downloads as CSV, Excel, JSON, XML, or RSS from the Apify Console. Send results to Google Sheets, trigger a webhook after a run, or connect the Actor to Make, Zapier, or your own database through the Apify API.

Frequently Asked Questions

Can I export BizBuySell data to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML, RSS, and other supported formats.

Can I scrape a specific state or category?

Yes. Use a state, city, or category URL in startUrls, or provide a location value when you do not pass a URL.

What is the difference between date_listed and fetched_at?

date_listed is the original listing date when BizBuySell publishes it. fetched_at is the timestamp for when this Actor collected the record.

Why is lease_expiration_date missing from some records?

The field is included only when a valid lease expiration date is published. Empty values and placeholder Unix epoch dates are removed from the dataset.

Why do some listings have fewer fields?

BizBuySell listings vary by advertiser, listing type, and category. The Actor keeps available data and omits empty fields to avoid misleading placeholders.

Can I run this Actor on a schedule?

Yes. Use Apify schedules to refresh a search hourly, daily, weekly, or at another interval.

Why was my location ignored?

A custom startUrls URL takes precedence. When the list contains a real search, category, state, city, or franchise URL, the Actor searches that URL and leaves location unused. Clear startUrls (or omit it from an API call) to search a state or city by name. If startUrls contains only the national default URL plus a location, the Actor treats it as an older saved input and uses the location instead.

Location values are resolved against BizBuySell's own region list, so AL, Alabama, Los Angeles, "Los Angeles, CA", counties, and metro areas map to the correct page instead of a guessed slug.

What happens when BizBuySell rejects a request?

The Actor retries temporary failures, rotates browser profiles and API hosts, and waits for cooldown windows instead of failing the page immediately. If a real block persists and autoProxyFallback is enabled, it retries once with Apify Residential Proxy for the rest of the run. When a later request still fails, the records already saved stay in the dataset and the run finishes with a warning. Only a run that collected nothing fails, and its message names the last HTTP status, route, and profile.

Why are some detail fields missing?

Listing detail pages are enriched separately from the search results. When a detail request cannot be completed, the record is still saved with the search data it already has, so listing id, title, price, location, broker, and URL remain available.

Scraping public web data may be legal in many cases, but you are responsible for following applicable laws, BizBuySell terms, privacy rules, and your own compliance requirements.

  • PropertyGuru Scraper - Extract real estate listings, prices, locations, agents, and image sets from PropertyGuru.
  • Propertyfinder Scraper - Collect property listing data from Property Finder for real estate research and market monitoring.
  • Dot Property Scraper - Gather property listings, prices, locations, and details from Dot Property.
  • Funda.nl Real Estate Scraper - Extract Dutch property listings, prices, addresses, and listing details from Funda.nl.

Support

For issues, missing fields, or feature requests, use the Issues tab on the Actor page in Apify Console.

This Actor is designed for legitimate collection and analysis of publicly available BizBuySell listing data. Users are responsible for using the output responsibly and complying with applicable laws, website terms, and data usage rules.