BizBuySell Scraper
Pricing
$1.19 / 1,000 results
BizBuySell Scraper
Collect public business and franchise listings by search URL, location, and keyword. Export asking prices, financials, categories, listing details, and contact information.
Pricing
$1.19 / 1,000 results
Rating
0.0
(0)
Developer
MLG Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape BizBuySell business-for-sale and franchise listings from public search pages. Export BizBuySell listing data to CSV or JSON for market research, deal review, and recurring monitoring; the structured dataset is a practical BizBuySell API alternative for public listings.
Use a state, city, category, or franchise search URL, or enter a state name and an optional keyword. The scraper follows result pages, removes duplicate listings, and can visit business detail pages for revenue, category, equipment, facilities, financing, and other published facts. Each saved row represents one public listing. The search URL and collection time are retained so you can trace a row back to its source.
What data can you extract from BizBuySell?
Fields are flat and use consistent camelCase names. A field appears only when its value is available. Business and franchise listings expose different fields; for example, a franchise card can provide an investment range while a business listing can provide cash flow. Examples in the table show the format, including values that may come from different records.
| Field | Description | Example |
|---|---|---|
source | Source site identifier | bizbuysell |
listingCategory | Business or franchise record | business |
listingId | Public business listing number | 2557755 |
siteSpecificId | Secondary site listing identifier | 2557755 |
title | Listing headline | Two-Unit Bubble Tea Franchise Package - Kern County, CA |
url | Canonical public listing URL | https://www.bizbuysell.com/business-opportunity/.../2557755/ |
summary | Short search-result description | Two established locations... |
description | Full business description where published | Two established locations of an international bubble tea franchise... |
categoryFull | Complete business category path | Coffee Shops and Cafes |
categoryFinal | Final business category | Coffee Shops and Cafes |
location | Displayed business location | Kern County, CA |
stateCode | State or region abbreviation | CA |
price | Published asking price or franchise card price | 540000 |
cashFlow | Seller discretionary earnings or cash flow | 115431 |
ebitda | Published EBITDA | 3355000 |
grossRevenue | Published gross revenue | 923046 |
investmentMinimum | Lower published franchise investment | 199 |
investmentMaximum | Upper published franchise investment | 499 |
currency | Currency code for franchise investment | USD |
inventoryValue | Published inventory value | 28104 |
ffeValue | Furniture, fixtures, and equipment value | 97220 |
yearEstablished | Year business was established | 2022 |
employeesFullTime | Full-time employee count | 1 |
employeesPartTime | Part-time employee count | 14 |
leaseRatePerSquareFoot | Published lease rate per square foot | 6932 |
leaseRateDuration | Published lease duration code | 40 |
realEstateIncludedInAskingPrice | Whether real estate is marked as included | false |
inventoryIncludedInAskingPrice | Whether inventory is stated as included | true |
imageUrl | Primary listing image URL | https://images.bizbuysell.com/shared/listings/...webp |
imageUrls | Business listing image URLs | ["https://images.bizbuysell.com/...webp"] |
brokerName | Public contact or broker name | Public contact name |
brokerCompany | Broker company | Broker office |
brokerProfileUrl | Public broker profile URL | https://www.bizbuysell.com/brokers/... |
contactPhone | Public contact phone | (000) 000-0000 |
businessHighlights | Detail page subheading | Seller Financing Available |
facilities | Facilities description | Two leased storefronts |
competition | Competition description | Limited local competition |
growth | Growth and expansion description | Expand catering |
financingOptions | Published financing details | Seller financing available |
support | Support and training details | Four weeks of training |
reasonForSelling | Stated reason for sale | Owner pursuing another venture |
leaseTerms | Published lease terms | Terms available on request |
listingPriceReduced | Listing price reduction marker | false |
recentlyAdded | Recently added marker | true |
recentlyUpdated | Recently updated marker | false |
hotProperty | Hot-property marker | false |
fetchedAt | UTC time the result page was fetched | 2026-09-26T14:29:22Z |
searchUrl | Public search result page used | https://www.bizbuysell.com/california-businesses-for-sale/ |
cashRequired | Minimum published cash requirement | 199 |
franchiseFee | Published minimum franchise fee | 25000 |
totalNumberOfUnits | Total franchise units | 120 |
franchisingSince | Year franchising began | 2010 |
corporateHeadquarters | Published headquarters location | New York, NY |
ceoName | Published franchise executive name | Published executive name |
netWorthRequired | Published required net worth | 100000 |
How to scrape BizBuySell
- Paste one or more public search URLs into
startUrls. A state or category URL is the clearest way to define the exact market. A broad business or franchise search URL also works. - Set
results_wantedto the number of unique listings you need. Setmax_pageshigh enough to reach that number; a business result page usually contributes about 50 primary listings. - Leave
includeDetailsenabled when you need full business descriptions, gross revenue, category paths, inventory, facilities, or training details. Disable it for a faster first pass through search cards. - Run the scraper and download the default dataset. Sort or filter the exported rows using
listingCategory,stateCode, price, and other fields.
Each search URL is processed in the order supplied. The scraper stops when it reaches the requested result count, exhausts the configured page count, or reaches the run's event budget. A listing that appears twice is saved once. If you use several overlapping state and category searches, this prevents duplicate URLs from consuming your result cap.
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | URL list | Empty | Public business, location, category, or franchise result pages. |
keyword | Text | Empty | Keep items whose title or short summary contains the phrase. This is applied to collected cards. |
location | Text | Empty | State slug when no start URL is supplied, such as california. For cities or combined filters, use a full search URL. |
results_wanted | Integer | 100 | Maximum unique dataset items across all searches. |
max_pages | Integer | 10 | Maximum pages inspected for each search. |
includeDetails | Boolean | true | Visit detail pages to enrich business and franchise records. |
proxyConfiguration | Object | Enabled | Proxy settings for requests during the run. |
A realistic input for a state-level business search is:
{"startUrls": [{"url": "https://www.bizbuysell.com/california-businesses-for-sale/"}],"results_wanted": 100,"max_pages": 3,"includeDetails": true}
For a restaurant category, supply the category search URL shown in your browser. A combined state and category URL can be used directly. For franchises, use a broad or filtered franchise search URL. The keyword setting filters visible card text after each page has been fetched; it does not change the site's search query. If the keyword is narrow, raise max_pages so enough candidate cards are inspected.
Output example
This trimmed item comes from a live California business search. Long description text, image URLs, and public contact details are omitted here for readability; they remain in the dataset when published.
{"source": "bizbuysell","listingCategory": "business","listingId": 2557755,"title": "Two-Unit Bubble Tea Franchise Package - Kern County, CA","url": "https://www.bizbuysell.com/business-opportunity/two-unit-bubble-tea-franchise-package-kern-county-ca/2557755/","location": "Kern County, CA","stateCode": "CA","price": 540000,"cashFlow": 115431,"grossRevenue": 923046,"categoryFull": "Coffee Shops and Cafes","yearEstablished": 2022,"inventoryValue": 28104,"ffeValue": 97220,"inventoryIncludedInAskingPrice": true,"searchUrl": "https://www.bizbuysell.com/california-businesses-for-sale/"}
The title describes a business resale that happens to involve a franchise. Its listingCategory is therefore business. Records from the franchise opportunity search use listingCategory: "franchise" and can include investmentMinimum, investmentMaximum, cashRequired, and other franchise-specific fields.
Use cases
- Acquisition research: Compare asking prices and cash flow across a defined state or industry. Keep the canonical URL so an analyst can open the source listing before contacting a seller.
- Market mapping: Build a list of active opportunities by category and location, then see which segments have more listings and which financial fields are frequently published.
- Broker review: Group listings by public broker or office information, inspect the advertised inventory, and route promising opportunities into a review queue.
- Franchise comparison: Compare published investment ranges and cash requirements across opportunity cards. Use the detail fields when the franchisor provides more context.
- Recurring watchlists: Run the same search regularly and compare listing IDs between snapshots. The
fetchedAttimestamp shows when a row was collected; it is not the original posting date. - Data cleanup: Normalize public listing cards into one flat structure before importing them into a spreadsheet, database, or internal reporting workflow.
These records are starting points for review. A published asking price, cash flow figure, or investment range is an advertisement supplied on the listing, not an audited valuation. Confirm any decision-critical number from the original listing and underlying documents.
How much does it cost to scrape BizBuySell?
The current event price is $0.0012 per saved result, or $1.20 per 1,000 results. The result count is the number of dataset items delivered, not the number of pages requested. A 30-result run costs $0.036 in result events; 1,000 results cost $1.20; 5,000 results cost $6.00. The platform usage covered by the actor price is included in these examples. Your actual total depends on the number of results delivered and any account-level billing terms.
Use results_wanted to set a hard upper bound on delivered rows. A larger max_pages lets a narrow keyword search inspect more cards, but it does not force extra paid results beyond the requested cap. Enabling detail pages adds requests and can take longer, while the result event price remains tied to saved items. A small initial run is useful for checking whether a URL contains the market you intended.
Tips for best results
Start from the exact public search URL for your geography and category. A state name in location builds a simple state business search, but a full URL supports city paths and combined filters more precisely. Public search links are also easier to audit later because searchUrl records the page used for each item.
Set the result cap and page cap together. For example, a request for 150 business listings should allow at least three pages when the search has enough inventory. Search pages can contain sponsored or related cards in addition to primary results; the scraper selects primary business opportunity URLs and deduplicates them. Franchise result pages generally expose 50 card records per page. Site inventory changes, so exact counts can vary.
Turn off includeDetails if you only need title, location, asking price, cash flow where shown, image, and public contact information from business search cards. Keep it on for long descriptions and the detail sections. Not every advertiser completes every section. Empty financial and operational fields are omitted rather than invented.
For keyword filtering, use distinctive words. The match is case-insensitive and checks the title plus short card summary. A keyword that appears only deep in a detail description will not match. If a keyword yields fewer results than requested, increase max_pages or start from a more targeted category URL. For a stable category query, the category URL is usually more reliable than a broad search plus post-filtering.
Limits
BizBuySell can challenge requests to its main search host. This scraper reads the publicly rendered search data through the site's static-content host for business pages and uses the public franchise search pages for franchise cards. The data route has been tested for business page pagination, state and category paths, franchise pagination, and detail pages. Access can still change. If a page is blocked or its structure changes, the run may stop with an error instead of returning fabricated records.
The business result state is capped at about 50 primary cards per page, so larger exports require pagination. The site has a practical search-result depth cap; very broad searches may not expose every listing through a single path. To cover more of the market, run separate state, city, or category searches. Overlapping searches are deduplicated within one run.
The source does not consistently publish an original posting date on the public listing pages used here. fetchedAt is the collection timestamp and should not be interpreted as the listing's age. Financial numbers, photos, broker details, and operational descriptions vary by advertiser. Some business detail pages may fail independently; when that happens, the search-card record can still be saved with fewer fields. Franchise cards have a different source structure, so business-only fields such as cash flow may be absent.
The scraper collects public listing and public business-contact information. It does not open private messages, access accounts, submit lead forms, or retrieve information hidden behind an agreement. Treat public contact fields responsibly and use them only for legitimate research and outreach.
Automation examples
A recurring acquisition workflow can request: “Collect 100 California business listings from this search URL, then show those with an asking price below 750,000 and published cash flow above 100,000.” The dataset fields support that filter after the run.
A franchise comparison workflow can request: “Collect the first 50 franchise opportunities from this search URL and sort by minimum published investment.” If a field is missing, the listing did not expose it in the public pages collected by the scraper.
FAQ
Can I export the data to CSV or a spreadsheet?
Yes. Download the default dataset in CSV or JSON, or connect the dataset to a spreadsheet workflow. Each item is flat, so columns map directly to fields such as price, location, and categoryFinal.
Can I search one state, city, or category?
Yes. Paste the corresponding public result URL into startUrls. The location shortcut is best for a simple state path. Use a full URL for city and combined category searches.
Do I need to configure a proxy?
The default proxy setting is ready for ordinary runs. The scraper can escalate when a request is blocked. A site challenge can still prevent access, so review the run log if a page repeatedly fails.
How fast is a run?
A search-card-only run makes roughly one request per result page. Detail enrichment visits each selected listing and takes longer. In live validation, 30 enriched business listings completed in about half a minute, but response time and blocking vary.
Can I schedule a search and monitor changes?
Yes. Schedule repeated runs with the same input, then compare listingId or url across datasets. Keep fetchedAt for snapshot timing. A missing item in one snapshot should be checked against the live search before treating it as sold.
Why is a field empty or absent?
The listing may not publish it, the card may use a different format, or a detail request may have failed. Missing data is omitted so an empty field is not mistaken for zero. Check the original URL for decision-critical information.
Is scraping BizBuySell legal?
Public data collection depends on applicable law, site terms, and how the results are used. Review those requirements for your jurisdiction, respect privacy rules, and avoid misuse of public contact information.
Integrations
The default dataset can feed an API consumer, webhook, scheduled import, spreadsheet, or database. For recurring research, save the input search URLs with each run and compare stable listing IDs over time. Downstream filters can separate business resales from franchise opportunities using listingCategory without parsing page content again.
Support
Open an issue on the Issues tab with the search URL, run ID, and expected field. We reply within 24 hours and add fields on request when the public page provides them.