BusinessesForSale Scraper
Pricing
from $0.99 / 1,000 results
BusinessesForSale Scraper
Extract business listings from BusinessesForSale with complete details, including business name, price, location, category, revenue, cash flow, description, images, broker information, and listing URL. Ideal for market research, lead generation, investment analysis, and business intelligence.
Pricing
from $0.99 / 1,000 results
Rating
0.0
(0)
Developer
Shahid Irfan
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
2
Monthly active users
9 days ago
Last modified
Categories
Share
Collect public business-for-sale listings from BusinessesForSale.com. Give the Actor a search URL, or a keyword and location, and it saves listing records to an Apify dataset.
The output covers business details, asking prices, revenue, cash flow, location, labels, tags, contact links, and listing URLs. It works for buyers, brokers, analysts, and lead generation teams that need search results in a structured file instead of a browser tab.
What it collects
| Field | Description |
|---|---|
listing_id | Listing or advert identifier from the search card |
title | Business listing title |
url | Listing page URL |
description | Summary shown on the search card |
location | Location text from the card |
region | Region when the location includes one |
country | Country code or country name when available |
asking_price | Displayed asking price |
price | Numeric asking price |
currency | Price currency code |
revenue | Displayed revenue or turnover |
sales_revenue | Sales revenue, or the revenue value when the card uses one label |
cash_flow | Displayed cash flow |
growth | Growth value on M&A Vault cards |
profitability | Profitability value on M&A Vault cards |
leverage | Leverage value on M&A Vault cards |
listing_type | Business, franchise, or teaser |
labels | Badges such as Business, High Value, or Price Reduced |
tags | Tags such as Real Property, Lease, or Quick Sale |
is_premium | True when the card is marked premium |
contact_url | Contact seller URL when the card provides one |
image_url | Listing image URL |
position | Position on the search page |
source_url | Search page that produced the record |
source_type | search_page or json_ld |
scraped_at | Collection timestamp |
How it works
- The Actor reads the run input.
- It opens the supplied search URL, or builds a search from the keyword and location.
- It reads the 25 listing cards on each page.
- It follows the site's own next-page link.
- It saves each page to the dataset as soon as the page is parsed.
- It stops when it reaches
results_wanted,max_pages, or the last page.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | None | BusinessesForSale search or category URL. Takes priority over keyword and location. |
keyword | String | No | Gas Station | Search keyword used when startUrl is empty. |
location | String | No | None | Location used with the keyword, or alone when the keyword is empty. |
results_wanted | Integer | No | 20 | Maximum number of listings to save. |
max_pages | Integer | No | 5 | Maximum number of pages to process for each source. |
proxyConfiguration | Object | No | {} | Optional proxy. The Actor starts direct and uses Apify Proxy if the site blocks a request. Set useApifyProxy to false to disable the fallback. |
startUrl wins when it is present. Without a URL, the Actor builds a search from keyword and location. The default keyword keeps runs with no search input working.
Usage examples
Scrape a category URL
{"startUrl": "https://www.businessesforsale.com/search/hotels-for-sale","results_wanted": 20,"max_pages": 2}
Search by keyword
{"keyword": "Gas Station","results_wanted": 20,"max_pages": 1}
Search by keyword and location
{"keyword": "Restaurant","location": "Florida","results_wanted": 50,"max_pages": 3}
Sample output
{"listing_id": "3992541","title": "COAM Waiver! Gas Station Property In Cordele, GA","url": "https://us.businessesforsale.com/us/coam-waiver-gas-station-property-in-cordele-ga.aspx","description": "THE COAM OPPORTUNITY: Seller will obtain a COAM waiver for the property! The Buyer will NOT be locked into the existing COAM agreement!","location": "Cordele, Georgia, US","region": "Georgia","country": "US","asking_price": "$399,000","price": 399000,"currency": "USD","revenue": "$342,000","sales_revenue": "$342,000","cash_flow": "$132,000","listing_type": "business","labels": ["Business"],"tags": ["Real Property"],"contact_url": "https://us.businessesforsale.com/us/coam-waiver-gas-station-property-in-cordele-ga/contact","image_url": "https://www.businessesforsale.com/uploadsstatic/a3992541mediumthumbnail.jpg","position": 1,"source_url": "https://www.businessesforsale.com/search?formName=searchForm&newSearch=Search&keywords=Gas+Station","source_type": "search_page","scraped_at": "2026-10-22T07:12:00.289Z"}
Reliability
- The Actor follows the site's pagination instead of guessing page numbers.
- Blocked, rate-limited, and server-error responses are retried with a different browser profile.
- When direct access is blocked on Apify, the Actor can retry through Apify Proxy groups. A proxy you configure is used from the start.
- An unsupported page-size parameter is removed before the first request.
- If the result cards change, the Actor can use the page's embedded structured data as a fallback.
- A search with no matches is saved as an empty run, not reported as a crash.
- A 404 or 410 URL error is reported in the log and fails the run when no listings were collected.
Limits
- The source returns 25 listings per page. Use
max_pagesandresults_wantedto control run size. - The Actor reads public search pages only. It does not log in.
- Some sellers hide price, revenue, or cash flow. Those cards keep text such as
On requestand leave the numeric field empty. - Listing detail pages are not opened. The dataset comes from the search cards.
- Category URLs can change on the source. A supplied URL is used as given, except for the page-size cleanup.
Integrations
- Google Sheets for review and sharing.
- CSV, Excel, JSON, and XML exports from the Apify dataset.
- Webhooks to start a workflow after a run.
- Make, Zapier, or your own service through the Apify API.
FAQ
Can I use a search URL instead of a keyword?
Yes. Put the URL in startUrl. It takes priority over keyword and location.
Can I search without a URL?
Yes. Leave startUrl empty and provide keyword, location, or both.
Can I collect more than one page?
Yes. Raise max_pages and results_wanted. The Actor follows the site's next-page link until it reaches a limit.
Why are some financial fields missing?
Some sellers do not publish asking price, revenue, or cash flow. The Actor leaves the numeric price empty when the card says On request or Undisclosed.
Why does a large results_wanted value still stop early?
The source may have fewer matches than requested, or max_pages may be lower than the number of pages needed. Raise max_pages or use a broader search.
Can I export the dataset to CSV or Excel?
Yes. Apify datasets export to CSV, Excel, JSON, XML, and other formats.
Is scraping BusinessesForSale.com legal?
Scraping public data can be legal, but you are responsible for following applicable laws, the site's terms, and privacy rules. Use the Actor for lawful research and compliance-friendly workflows.
Legal notice
This Actor collects publicly available business listing data. Users are responsible for how they use the data and for complying with applicable laws, platform terms, and data protection rules.