# BizQuest Business Listings Scraper (`parseforge/bizquest-scraper`) Actor

Scrapes business-for-sale listings from BizQuest with filters for location, industry, price, cash flow, and listing age. Returns each listing as a flat row.

- **URL**: https://apify.com/parseforge/bizquest-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Developer tools, Automation, Lead generation
- **Stats:** 83 total users, 9 monthly users, 100.0% runs succeeded, 5 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $16.00 / 1,000 result items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### BizQuest Business Listings Scraper

**Scrape BizQuest business-for-sale listings with price, cash flow, location, and industry filters.** Every listing comes with its asking price, cash flow, location, and listing age. No login or API key. Export to CSV, JSON, Excel, or XML.

BizQuest's website has no public API, and manually copying listings is slow and error-prone. This reads the public business-for-sale listings directly, filtered by location, industry, price, cash flow, and listing age, and returns each match in one fixed schema.

| Who uses it | What they scrape BizQuest for |
|---|---|
| Business buyers | Find businesses for sale that match their budget and industry |
| Business brokers | Monitor new listings for clients and generate leads |
| Market researchers | Analyze listing prices and cash flow multiples by region |
| Investors | Screen for acquisition targets with specific financial criteria |
| Lead generation agencies | Build prospect lists of business sellers |

### What it does

This Actor collects business-for-sale listings from BizQuest by location, industry, price, cash flow, and listing age, and returns each one as a flat row.

- 📍 **Location filter:** narrow results to a city or state, like California or Texas.
- 🏭 **Industry filter:** target specific sectors such as Restaurant, Retail, or Manufacturing.
- 💰 **Price range:** set minimum and maximum asking price in USD.
- 📈 **Cash flow range:** filter by seller's discretionary earnings (SDE).
- 🕒 **Listing age:** only include listings added within the last N days.
- 🔗 **AND logic:** force all filters to apply together for precise results.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with BizQuest data

**🔍 Find acquisition targets.**

A business buyer sets location to Texas, industry to Manufacturing, and price between $500k and $2M to get a shortlist of viable businesses.

**📊 Monitor market trends.**

A market researcher runs the Actor weekly with no filters to track average asking prices and cash flow multiples across regions.

**📈 Generate broker leads.**

A business broker filters for listings added in the last 7 days in their state to contact new sellers immediately.

**💼 Screen investments.**

An investor sets minimum cash flow to $200k and maximum price to $5M to identify profitable opportunities.

**📋 Build prospect lists.**

A lead generation agency scrapes all listings in a niche industry to compile a database of business owners looking to sell.

### Why choose this scraper

|  | What you get |
|---|---|
| **No API needed** | Scrape public BizQuest listings without registration or API keys |
| **Flexible filters** | Combine location, industry, price, cash flow, and listing age |
| **Structured output** | Get clean JSON, CSV, Excel, or XML with consistent fields |
| **Scalable** | Collect up to 1,000,000 listings per run |

### How it compares

This Actor focuses on flexible filtering and clean structured output, while competitors may offer additional contact or financial details.

| Feature | ParseForge | BizQuest Business Listings Scraper | BizQuest Scraper with Contacts & Financials |
|---|---|---|---|
| Location filter | Yes | Not listed | Yes |
| Industry filter | Yes | Not listed | Yes |
| Price range filter | Yes | Not listed | Yes |
| Cash flow filter | Yes | Not listed | Yes |
| Listing age filter | Yes | Not listed | Not listed |
| Contact information | Not listed | Not listed | Yes |
| Financial details | Not listed | Not listed | Yes |

### Configure the run

Drive the Actor from location, industry, price, cash flow, and listing age filters, alone or together, and filters run as each listing is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "maxItems": 10,
  "location": "California",
  "industry": "Restaurant",
  "forceAllFilters": true
}
```

A larger pull:

```json
{
  "maxItems": 200,
  "location": "California",
  "industry": "Restaurant",
  "forceAllFilters": true
}
```

### Pricing

Pay-per-result: **$0.02134 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $2.13 |
| 1,000 results | $21.34 |
| 10,000 results | $213.40 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [BizQuest Business Listings Scraper](https://apify.com/parseforge/bizquest-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to BizQuest through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/bizquest-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check your filters. If Force All Filters is enabled, listings must match every criterion. Try relaxing or removing some filters, or increase the listing age.

**The run stops before reaching maxItems.**

There may be fewer listings matching your filters than the maximum you set. The Actor stops when no more listings are available.

**Some listings are missing fields.**

BizQuest listings may not include all data points. The Actor returns whatever is available on the page, so some fields may be empty.

**The Actor is slow.**

Scraping many listings takes time. Reduce maxItems or narrow your filters to speed up the run.

**I get an error about invalid input.**

Ensure numeric fields like price and cash flow are positive integers. Listing age must be a positive integer as well.

### FAQ

| Question | Answer |
|---|---|
| Do I need a BizQuest account or API key? | No. The Actor reads public listing pages directly, so no login or API key is required. |
| Can I filter by multiple criteria at once? | Yes. Set location, industry, price, cash flow, and listing age. With Force All Filters enabled, listings must match all specified criteria. |
| What is cash flow (SDE)? | SDE stands for Seller's Discretionary Earnings, a common measure of a business's profitability. You can filter by minimum and maximum SDE in USD. |
| How many listings can I scrape in one run? | You can set the maximum number of listings up to 1,000,000 per run. The Actor will stop after reaching that limit. |
| What output formats are supported? | You can export the results as CSV, JSON, Excel, or XML from the Apify dataset. |
| Can I schedule this Actor to run automatically? | Yes. Use Apify's scheduler to run it daily, weekly, or at any interval to keep your data fresh. |
| Does this Actor scrape contact information? | The Actor returns listing data as shown on BizQuest. Contact details may be limited depending on the listing. |
| Is it legal to scrape BizQuest? | You should review BizQuest's terms of service and comply with applicable laws. The Actor only accesses publicly available data. |
| Can I filter by listing age? | Yes. Use the Listing Age (Days) input to include only listings added within the last N days, such as 7, 30, or 90. |
| What if I leave all filters empty? | The Actor will scrape all available listings up to the maximum number you set, without any filtering. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by BizQuest, LLC. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `maxItems` (type: `integer`):

How many business listings to collect per run.

## `location` (type: `string`):

Filter by location (optional). Examples: 'California', 'New York', 'Texas', 'Florida'

## `industry` (type: `string`):

Filter by industry (optional). Examples: 'Restaurant', 'Retail', 'Manufacturing', 'Technology'

## `priceMin` (type: `integer`):

Minimum asking price in USD (optional).

## `priceMax` (type: `integer`):

Maximum asking price in USD (optional).

## `cashFlowMin` (type: `integer`):

Minimum cash flow (SDE) in USD (optional).

## `cashFlowMax` (type: `integer`):

Maximum cash flow (SDE) in USD (optional).

## `dateListingAdded` (type: `integer`):

Only include listings added within the last N days. Common values: 7, 30, 60, 90 days. Leave empty for all listings.

## `forceAllFilters` (type: `boolean`):

When enabled, listings must match ALL specified filters (price, cash flow, etc.) to be included. When disabled, relies on BizQuest's default filtering behavior.

## Actor input object example

```json
{
  "maxItems": 10,
  "location": "California",
  "industry": "Restaurant",
  "dateListingAdded": 30,
  "forceAllFilters": true
}
```

# Actor output Schema

## `businesses` (type: `string`):

Complete dataset with all scraped business listings including financial data, location details, contact information, and business characteristics

## `overview` (type: `string`):

Overview view of business listings with key fields displayed in a table format

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10,
    "location": "California",
    "industry": "Restaurant",
    "forceAllFilters": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/bizquest-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "maxItems": 10,
    "location": "California",
    "industry": "Restaurant",
    "forceAllFilters": True,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/bizquest-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "location": "California",
  "industry": "Restaurant",
  "forceAllFilters": true
}' |
apify call parseforge/bizquest-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/bizquest-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/rm7JzZcHGcUsApKs8/builds/09qtlVcUscIjIgWdz/openapi.json
