# BizQuest Scraper (`shahidirfan/bizquest-scraper`) Actor

Extract business-for-sale listings from BizQuest with structured data including business name, price, cash flow, revenue, location, industry, broker details, description, images, and listing URL. Ideal for market research, lead generation, investment analysis, and business intelligence.

- **URL**: https://apify.com/shahidirfan/bizquest-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Categories:** Lead generation, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

### What does BizQuest Scraper do?

BizQuest Scraper collects public business-for-sale listings from BizQuest into a structured Apify dataset. Start with one BizQuest search, category, location, or listing URL, or use a keyword and location to focus the collection. The output is useful for business acquisition research, market monitoring, broker research, and building deal pipelines.

### Why use BizQuest Scraper?

- **Structured listing data** - Turn public BizQuest business listings into records that are ready for analysis instead of copying details by hand.
- **Flexible search coverage** - Use a full BizQuest URL for exact searches, or use keyword and location filters for broader discovery.
- **Clean output** - Empty and unpublished values are omitted, so datasets are easier to export and use downstream.
- **Automation-ready results** - Run on demand, schedule recurring collections, export the dataset, or connect it to webhooks and other Apify integrations.

### What data can you extract from BizQuest?

| Field                                                 | Description                                            |
| ----------------------------------------------------- | ------------------------------------------------------ |
| `listing_id`                                          | BizQuest listing identifier                            |
| `title`                                               | Business listing headline                              |
| `listing_url`                                         | Direct public listing URL                              |
| `location`                                            | Published city, county, state, or region               |
| `description`                                         | Listing summary or business description snippet        |
| `asking_price`                                        | Published asking price when disclosed                  |
| `cash_flow`                                           | Published cash flow when disclosed                     |
| `ebitda`                                              | Published EBITDA when disclosed                        |
| `gross_revenue`                                       | Published gross revenue when disclosed                 |
| `industry`                                            | Business category or industry                          |
| `image_urls`                                          | Public listing image URLs                              |
| `broker_name`                                         | Published broker or contact name                       |
| `broker_company`                                      | Published broker company                               |
| `broker_phone`                                        | Published broker phone number                          |
| `broker_profile_url`                                  | Public broker profile URL                              |
| `broker_certifications`                               | Published broker credentials when available            |
| `lease_rate_per_square_foot`                          | Published lease rate when available                    |
| `business_type_id`                                    | Published category identifier                          |
| `auction_start_date` / `auction_end_date`             | Published auction timing when applicable               |
| `franchise_initial_fee` / `franchise_initial_capital` | Published franchise investment figures when applicable |
| `real_estate_included`                                | Whether the listing indicates real estate is included  |
| `price_reduced`                                       | Whether the listing indicates a price reduction        |
| `hot_listing`                                         | Whether the listing is marked as a hot listing         |

The dataset also includes listing identifiers, media, category and region metadata, lending status, placement flags, and related public links where available. Fields are included only when BizQuest publishes a value for that listing. Confidential values are not replaced with placeholders.

### How to use BizQuest Scraper

1. Copy a public URL from BizQuest, or decide on a keyword and location.
2. Enter the URL or filters in the Actor input form.
3. Set `results_wanted` and `max_pages`.
4. Keep Residential Proxy enabled for dependable access.
5. Run the Actor and download the dataset or send it to an integration.

### Input parameters

| Parameter            | Type    | Required |                    Default | Description                                                      |
| -------------------- | ------- | -------: | -------------------------: | ---------------------------------------------------------------- |
| `startUrl`           | String  |       No | Mid-market business search | One public BizQuest search, category, location, or listing URL   |
| `keyword`            | String  |       No |                          - | Optional business keyword                                        |
| `location`           | String  |       No |                          - | Optional city, county, state, or region                          |
| `results_wanted`     | Integer |       No |                       `20` | Maximum number of listings to save                               |
| `max_pages`          | Integer |       No |                       `10` | Maximum result pages to request, with up to 50 listings per page |
| `proxyConfiguration` | Object  |       No |    Residential Apify Proxy | Proxy settings for the run                                       |

Provide a URL when you want to reproduce an exact BizQuest search. Keyword and location can also be used to narrow the listings returned in a run.

### Usage examples

#### Mid-market businesses

Collect the first 20 listings from the mid-market category.

```json
{
    "startUrl": "https://www.bizquest.com/mid-market-businesses-for-sale/",
    "results_wanted": 20,
    "max_pages": 2
}
```

#### A BizQuest location page

Collect listings from a public location-specific BizQuest URL.

```json
{
    "startUrl": "https://www.bizquest.com/businesses-for-sale-in-florida-fl/",
    "results_wanted": 100,
    "max_pages": 3
}
```

#### Keyword and location research

Use a keyword and location to identify listings relevant to an acquisition thesis.

```json
{
    "keyword": "restaurant",
    "location": "California",
    "results_wanted": 50,
    "max_pages": 5,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}
```

### Sample output

```json
{
    "listing_id": 2535888,
    "title": "Premier Technology Distributor | Doral HQ + Orlando Branch",
    "listing_url": "https://www.bizquest.com/business-for-sale/premier-technology-distributor-doral-hq-orlando-branch/BW2535888/",
    "location": "Miami-Dade County, FL",
    "description": "28-Year Industry Leader | $5.25M Revenue | Real Estate Available",
    "asking_price": 5800000,
    "industry": "Wholesale & Distribution",
    "real_estate_included": true,
    "hot_listing": true,
    "broker_name": "Alina Isenko",
    "broker_company": "The Keyes Company",
    "source": "bizquest.com"
}
```

### Tips for best results

- Use a complete public BizQuest URL for the most precise category, geography, price, or listing-type search.
- Start with 20 results to confirm the output shape, then increase the result and page limits for larger research projects.
- Use Residential Proxy when running at scale or when access from a direct connection is inconsistent.
- Schedule recurring runs to watch a category or local market for new, updated, or price-reduced listings.
- Some financial and contact fields may be absent because the source treats them as confidential. Their omission is expected, not an extraction error.

### Integrations and exports

- **Google Sheets** - Export listing data for deal tracking and spreadsheet analysis.
- **Webhooks** - Send completed run data to a CRM, database, or internal workflow.
- **Make and Zapier** - Trigger no-code automations after a collection completes.
- **Apify API** - Retrieve datasets programmatically for research tools and acquisition pipelines.
- **CSV, Excel, JSON, and XML** - Download results in the format your team uses.

### Frequently asked questions

#### Can I export BizQuest listings to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML, and other supported formats after the run completes.

#### Can I scrape a specific BizQuest search URL?

Yes. Paste one public BizQuest search, category, location, or listing URL into `startUrl`. The Actor preserves that URL's search path and query settings.

#### Can I search by keyword and location?

Yes. Add `keyword`, `location`, or both when you want to focus results on a business type or area.

#### Why is a financial field missing from a result?

BizQuest does not publish every field for every listing. The Actor omits unavailable values instead of saving empty or null columns.

#### Can I schedule this Actor?

Yes. Create an Apify schedule to refresh a market, category, or saved search at your preferred interval.

### Support

For issues, feature requests, or custom data workflows, use the Issues tab on the Actor page or contact the developer through Apify.

### Legal notice

This Actor is intended for legitimate collection of publicly available BizQuest data. You are responsible for complying with applicable laws, privacy obligations, and BizQuest terms when using the resulting data.

# Actor input Schema

## `startUrl` (type: `string`):

One public BizQuest search, category, location, or listing URL. Keyword and location can optionally narrow its results.

## `keyword` (type: `string`):

Optional business keyword. Use it with or without a BizQuest URL.

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

Optional city, county, state, or region filter.

## `results_wanted` (type: `integer`):

Maximum number of listings to save.

## `max_pages` (type: `integer`):

Maximum API result pages to request. Each page contains up to 50 listings.

## `proxyConfiguration` (type: `object`):

Residential Apify Proxy is recommended for reliable BizQuest access.

## Actor input object example

```json
{
  "startUrl": "https://www.bizquest.com/mid-market-businesses-for-sale/",
  "results_wanted": 20,
  "max_pages": 2,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

No description

# 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 = {
    "startUrl": "https://www.bizquest.com/mid-market-businesses-for-sale/",
    "results_wanted": 20,
    "max_pages": 2
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahidirfan/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 = {
    "startUrl": "https://www.bizquest.com/mid-market-businesses-for-sale/",
    "results_wanted": 20,
    "max_pages": 2,
}

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

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

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

```

## CLI example

```bash
echo '{
  "startUrl": "https://www.bizquest.com/mid-market-businesses-for-sale/",
  "results_wanted": 20,
  "max_pages": 2
}' |
apify call shahidirfan/bizquest-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=shahidirfan/bizquest-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/eAlq7DQT3q5ZjSmRD/builds/EN5KFo4iCcBFyf5tC/openapi.json
