
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape businesses for sale from BizBuySell and BizQuest: asking price, cash flow, gross revenue, EBITDA, year established, employees, location, description, reason for selling, and the broker's name, company and phone. Search by location, industry, keyword and price or cash flow, or paste URLs.
Scrape businesses for sale from BizBuySell and BizQuest, two US business-for-sale marketplaces that share one listing database. Get the asking price, cash flow, gross revenue, EBITDA, inventory, FF&E, year established, employees, location, full description, reason for selling, lease details, and the broker's name, company, phone and license. Search by location, industry, keyword and financial filters, or paste URLs from either site. No account or cookies needed.
California, Austin, TX, Los Angeles County, CA) and/or Industries (e.g. Restaurants, Car Washes), a Keyword, or paste BizBuySell or BizQuest URLs.| Field | Description |
|---|---|
locations | States, City, ST or County Name County, ST (empty = whole US) |
industries | Industry names, e.g. Restaurants, Coin Laundry & Laundromat, Gas Stations, Internet Related (unknown names are searched as keywords) |
keyword | Search keyword |
startUrls | Search and listing URLs from bizbuysell.com or bizquest.com |
maxResults | Total listings to save (0 = no limit) |
minPrice / maxPrice, minCashFlow / maxCashFlow, minRevenue / maxRevenue | Financial filters in USD |
listedWithinDays, establishedAfterYear | Freshness and age filters |
includeDetails | Full listing details (default on) |
outputSite | Which site's link goes in url (both are always included) |
{
"locations": ["Texas", "Miami, FL"],
"industries": ["Car Washes"],
"minCashFlow": 100000,
"maxPrice": 2000000,
"maxResults": 100
}
One row per listing. Main fields:
| Field | Description |
|---|---|
id, url, bizBuySellUrl, bizQuestUrl | Listing number and links |
title, adLine, industry, description | What the business is |
askingPrice, cashFlow, grossRevenue, ebitda | Financials (USD) |
inventory, ffe, realEstate, inventoryIncluded, realEstateIncluded | Assets |
priceToCashFlowMultiple, priceToEbitdaMultiple, priceReduced | Valuation |
yearEstablished, yearsInOperation, fullTimeEmployees, partTimeEmployees | Business facts |
location, city, county, state, zip | Location (as disclosed by the seller) |
reasonForSelling, facilities, competition, growthOpportunities, supportAndTraining, financing | Seller notes |
homeBased, relocatable, absenteeOwner, isFranchise, leaseRate, leaseExpiration, buildingSqft | More details |
brokerName, brokerCompany, brokerPhone, brokerLicense, brokerProfileUrl | Broker or seller contact |
images, profileViews, hotProperty, recentlyAdded, lastUpdated | Media and activity |
Example (trimmed, broker details changed):
{
"id": "2530464",
"url": "https://www.bizbuysell.com/business-opportunity/turnkey-sports-bar-and-restaurant-with-live-entertainment-in-prime-loc/2530464/",
"bizQuestUrl": "https://www.bizquest.com/business-for-sale/turnkey-sports-bar-and-restaurant-with-live-entertainment-in-prime-loc/BW2530464/",
"title": "Turnkey Sports Bar & Restaurant with Live Entertainment in Prime Loc.",
"askingPrice": 105000,
"cashFlow": 48398,
"grossRevenue": 231600,
"inventory": 10000,
"inventoryIncluded": true,
"ffe": 121900,
"priceToCashFlowMultiple": 2.17,
"yearEstablished": 2023,
"partTimeEmployees": 4,
"industry": "Food & Beverage",
"location": "Los Angeles County, California",
"state": "CA",
"reasonForSelling": "Focus on other investments",
"supportAndTraining": "2 weeks",
"financing": "Seller will consider all offers",
"buildingSqft": 2600,
"leaseExpiration": "2027-03-12",
"brokerName": "Alex Example",
"brokerCompany": "Example Business Brokers",
"brokerPhone": "(555) 010-0000",
"profileViews": 1394
}
You pay $0.80 per 1,000 listings ($0.0008 per listing), with no start fee, plus a small amount of platform usage (compute and datacenter proxy traffic, about $0.015 per 1,000 detailed listings in our tests). For example, 1,000 fully detailed listings cost about $0.82 in total.
Is it legal to scrape BizBuySell and BizQuest? The actor only reads listing data that both sites show to every visitor without an account. Check the sites' terms and your local laws for your use case.
Do I need an account or a proxy? No account. The default datacenter proxy works in our tests; its traffic is billed as platform usage.
Why does BizQuest return the same listings as BizBuySell? Both marketplaces belong to the same company and share one listing database. Each row has both links, so you don't pay twice.
How many results can I get? The sites show at most 10,000 results per search; larger searches are split by asking price automatically, without duplicates.
Why are some fields empty? Sellers decide what to disclose. Many hide the city or address, cash flow or EBITDA, and some listings have no broker phone.
Can I schedule it or use the API? Yes. Schedule runs in the console or start them through the API and read the dataset as JSON, CSV or Excel.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
locationsarrayOptionalLocations
US states ('California', 'TX'), cities ('Austin, TX') or counties ('Los Angeles County, CA'). Leave empty for the whole US.
industriesarrayOptionalIndustries
Industry names as on BizQuest, e.g. 'Restaurants', 'Car Washes', 'Coin Laundry & Laundromat', 'Gas Stations', 'Health & Medical', 'Internet Related'. Names that match no industry are searched as keywords. Main groups: Auto & Automotive, Building & Construction Service, Business Service, Chemicals, Clothing & Fashion, Communication & Media, Educational, Entertainment & Leisure, Financial, Food & Beverage, General Merchandise, Hair & Beauty, Health & Medical, Home & Garden, Home & Office Furniture, Internet Related, Machinery, Manufacturing, Moving, Storage & Delivery, Non-Classifiable Establishments, Office, Personal Product & Service, Professional Service, Real Estate, Retail Stores, Technology, Transportation, Wholesale & Distribution.
keywordstringOptionalKeyword
Optional keyword, e.g. 'laundromat' or 'franchise'.
startUrlsarrayOptionalBizBuySell or BizQuest URLs
Optional. Search pages (e.g. https://www.bizbuysell.com/texas/austin-businesses-for-sale/ or https://www.bizquest.com/restaurants-for-sale-in-california-ca/) and listing pages from either site.
maxResultsintegerOptionaldefault 20Maximum results
Most listings to save in this run. 0 means no limit.
Filters apply to location, industry and keyword searches (and to pasted search URLs that have no filters of their own).
minPriceintegerOptionalMinimum asking price (USD)
Optional.
maxPriceintegerOptionalMaximum asking price (USD)
Optional.
minCashFlowintegerOptionalMinimum cash flow (USD)
Optional.
maxCashFlowintegerOptionalMaximum cash flow (USD)
Optional.
minRevenueintegerOptionalMinimum gross revenue (USD)
Optional.
maxRevenueintegerOptionalMaximum gross revenue (USD)
Optional.
listedWithinDaysintegerOptionalListed within (days)
Only listings added in the last N days.
establishedAfterYearintegerOptionalEstablished after (year)
Optional.
includeDetailsbooleanOptionaldefault trueFull listing details
Adds gross revenue, EBITDA, inventory, FF&E, real estate, year established, employees, reason for selling, facilities, competition, growth, support and training, financing, lease details, broker license and all images. Turn off for a faster search-only scrape (price, cash flow, location, broker name and phone).
outputSiteenumOptionaldefault "bizbuysell"Main URL
Both sites list the same businesses. Every row has both links; this picks which one goes in the url column.
maxResultsPerSearchintegerOptionalMaximum results per search
Optional cap for each location, industry or URL search.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy
Datacenter proxies work in our tests. Switch to residential if you see blocks.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | string | null | Listing number |
| url | string | null | Listing page |
| bizBuySellUrl | string | null | BizBuySell page |
| bizQuestUrl | string | null | BizQuest page |
| title | string | null | Headline |
| adLine | string | null | Tagline |
| askingPrice | number | null | Asking price (USD) |
| cashFlow | number | null | Cash flow / SDE (USD) |
| grossRevenue | number | null | Gross revenue (USD) |
| ebitda | number | null | EBITDA (USD) |
| inventory | number | null | Inventory (USD) |
| inventoryIncluded | boolean | null | Inventory included in price |
| ffe | number | null | Furniture, fixtures and equipment (USD) |
| realEstate | number | null | Real estate (USD) |
| realEstateIncluded | boolean | null | Real estate included in price |
| priceToCashFlowMultiple | number | null | Price / cash flow |
| priceToEbitdaMultiple | number | null | Price / EBITDA |
| priceReduced | boolean | null | Price reduced |
| yearEstablished | number | null | Year established |
| yearsInOperation | number | null | Years in operation |
| employees | number | null | Employees |
| fullTimeEmployees | number | null | Full-time employees |
| partTimeEmployees | number | null | Part-time employees |
| employeeNotes | string | null | Employee notes |
| industry | string | null | Industry |
| location | string | null | Location |
| city | string | null | City |
| county | string | null | County |
| state | string | null | State |
| zip | string | null | ZIP |
| streetAddress | string | null | Street address |
| country | string | null | Country |
| description | string | null | Business description |
| reasonForSelling | string | null | Reason for selling |
| facilities | string | null | Facilities |
| competition | string | null | Competition |
| growthOpportunities | string | null | Growth and expansion |
| supportAndTraining | string | null | Support and training |
| financing | string | null | Financing |
| homeBased | boolean | null | Home based |
| relocatable | boolean | null | Relocatable |
| absenteeOwner | boolean | null | Absentee owner |
| isFranchise | boolean | null | Franchise |
| franchiseBrand | string | null | Franchise brand |
| buildingSqft | number | null | Building size (sq ft) |
| leaseRate | number | null | Lease rate |
| leaseExpiration | string | null | Lease expiration |
| leaseTerms | string | null | Lease terms |
| brokerName | string | null | Broker or contact name |
| brokerCompany | string | null | Brokerage |
| brokerPhone | string | null | Broker phone |
| brokerLicense | string | null | Broker license |
| brokerLicenseVerified | boolean | null | License verified |
| brokerProfileUrl | string | null | Broker profile |
| brokerPhotoUrl | string | null | Broker photo |
| listedBy | string | null | broker or owner |
| images | array | null | Images |
| imageUrl | string | null | Main image |
| profileViews | number | null | Listing views |
| hotProperty | boolean | null | Hot property |
| recentlyAdded | boolean | null | Recently added |
| recentlyUpdated | boolean | null | Recently updated |
| lastUpdated | string | null | Last updated |
| detailsScraped | boolean | null | Full details loaded |
| source | string | null | Input that found it |
| scrapedAt | string | null | Scraped at |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Listing | One business listing saved to the dataset. | $0.0008 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/bizquest-scraper').call({
"locations": [
"California"
],
"industries": [
"Restaurants"
],
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/bizquest-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/bizquest-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Business listings with full details from BizBuySell.
Business-for-sale listings from BizQuest with details.
Listings within an asking price range.
Listings from a pasted BizBuySell search URL.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.