BizBuySell Scraper
Pricing
from $1.49 / 1,000 results
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
Maintained by CommunityActor stats
4
Bookmarked
215
Total users
68
Monthly active users
8 hours ago
Last modified
Categories
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_fullandcategory_final, for example restaurants, self-storage, routes, ecommerce, or manufacturing. - Judge listing age with
date_listedinstead 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?
| Field | Type | Description |
|---|---|---|
source | String | Source identifier, usually bizbuysell. |
listing_category | String | Listing mode, such as business or franchise. |
listing_id | Integer | Unique BizBuySell listing number. |
site_specific_id | Integer | Site-specific listing identifier when available. |
title | String | Listing headline. |
url | String | Direct listing URL. |
category_full | String | Full category breadcrumb, for example Industrial > Self-Storage. |
category_final | String | Final category name, for example Self-Storage. |
date_listed | String | Original listing date in YYYY-MM-DD format when available. |
location | String | Listing location text. |
state_code | String | State or region code. |
price | Number | Asking price when published. |
cash_flow | Number | Cash flow value when published. |
ebitda | Number | EBITDA value when published. |
gross_revenue | Number | Gross revenue when published. |
inventory_value | Number | Inventory value when published. |
ffe_value | Number | Furniture, fixtures, and equipment value when published. |
year_established | Number | Year the business was established. |
employees_full_time | Number | Full-time employee count. |
employees_part_time | Number | Part-time employee count. |
lease_rate_per_square_foot | Number | Lease rate per square foot when published. |
lease_rate_duration | Number | Lease rate duration when published. |
lease_expiration_date | String | Valid lease expiration date when published. Empty or Unix epoch values are omitted. |
lease_terms | String | Lease terms text. |
real_estate_included_in_asking_price | Boolean | Whether real estate is included in the asking price. |
inventory_included_in_asking_price | Boolean | Whether inventory is included in the asking price. |
home_based | Boolean | Whether the business is home based. |
relocatable | Boolean | Whether the business is relocatable. |
absentee_owner | Boolean | Whether absentee ownership is indicated. |
listing_price_reduced | Boolean | Whether the listing has a price reduction marker. |
recently_added | Boolean | Whether BizBuySell marks the listing as recently added. |
recently_updated | Boolean | Whether BizBuySell marks the listing as recently updated. |
hot_property | Boolean | Hot property marker. |
image_url | String | Primary listing image URL when available. |
image_urls | Array | Available listing image URLs. |
broker_name | String | Broker or contact name. |
broker_company | String | Broker company name. |
broker_profile_url | String | Broker profile URL. |
contact_phone | String | Public contact phone number when available. |
summary | String | Listing summary. |
business_highlights | String | Business highlights when available. |
facilities | String | Facilities details. |
growth | String | Growth details. |
competition | String | Competition details. |
reason_for_selling | String | Seller reason when published. |
support | String | Training or support details. |
financing_options | String | Financing details when available. |
fetched_at | String | ISO timestamp for when the Actor collected the record. |
search_url | String | BizBuySell 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
- Open the Actor in Apify Console.
- Keep the prefilled search URL in
startUrls, paste the BizBuySell search, category, state, city, or franchise URL you need, or clear it and setlocation. - Add a
keywordwhen you want to narrow the selected URL. - Set
results_wantedto the number of listings you want andmax_pagesto cap pagination. - Run the Actor.
- 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | Array | No | - (Console prefill only) | BizBuySell search, category, state, city, or franchise URL. The first valid URL is used. Omit it to search by location. |
keyword | String | No | - | Optional keyword filter applied to the selected URL. |
location | String | No | - | US state, city, or City, ST. Used when startUrls is empty or still contains only the national default URL. |
results_wanted | Integer | No | 20 | Maximum number of records to save. |
max_pages | Integer | No | 20 | Maximum number of result pages to process. |
proxyConfiguration | Object | No | {"useApifyProxy": false} | Optional proxy configuration. Residential proxies help with very large batches. |
autoProxyFallback | Boolean | No | true | If 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}
Location-only search
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".
Keyword-focused search
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: 20when testing a new search. - Increase
results_wantedandmax_pagestogether when you need broader coverage. - Use
category_full,category_final, anddate_listedfor cleaner market segmentation and listing-age analysis. - Use
image_urlswhen 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.
Is it legal to scrape BizBuySell?
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.
Related Actors
- 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.
Legal Notice
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.