# BizQuest Scraper & API - Businesses For Sale & Broker Leads (`scrapers_lat/bizquest-scraper`) Actor

Scrape BizQuest businesses and franchises for sale, no API key. Get asking price, cash flow, EBITDA, broker name, phone, company, industry, financing, images, location. Filters for M\&A deal sourcing and acquisition leads. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/bizquest-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Business, Lead generation, Automation
- **Stats:** 6 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $15.39 / 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.
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

[![BizQuest Business for Sale & Broker Contact Scraper](https://scrapers.lat/banners/bizquest-scraper.png)](https://console.apify.com/actors/dKpWveBcAcMuYxM5K/input)

## BizQuest Scraper & API - Businesses For Sale & Broker Leads

Scrape **BizQuest** businesses and franchises for sale with no API key. Pull asking price, cash flow, EBITDA, gross revenue, industry, financing and real-estate flags, images, full location, and the **business broker or seller contact** (name, company, phone, profile) - the data you need for **M\&A deal sourcing**, **business acquisition leads**, and franchise research. Export to JSON, CSV, or Excel.

Here is one real result, with every field the actor returns:

```json
{
  "imageUrl": "https://images.bizquest.com/shared/listings/251/2517142/9ee5575f-17f6-4bbd-b281-22b0cfa82ab1-W336.webp",
  "title": "Fully Built Restaurant / Coffee Shop",
  "url": "https://www.bizquest.com/business-for-sale/fully-built-restaurant-coffee-shop/BW2517142/",
  "listingId": "2517142",
  "askingPrice": 599000,
  "currency": "USD",
  "availability": "InStock",
  "city": "Hoboken",
  "state": "NJ",
  "postalCode": "07030",
  "country": "US",
  "location": "Hoboken, NJ",
  "description": "150 seats / Full kitchen (vented) / 2 story",
  "totalListingsForSearch": 412,
  "observedAt": "2026-08-10T14:04:10.140Z",
  "error": null,
  "headline": "Fully Built Restaurant / Coffee Shop",
  "county": null,
  "listingType": "Established Business",
  "industry": "Food & Beverage",
  "industryId": 224,
  "stateName": "New Jersey",
  "stateCode": "NJ",
  "sellerType": "Business Broker",
  "sellerUserTypeId": 60,
  "brokerName": "Rami Rosen",
  "brokerCompany": null,
  "brokerPhone": "(646) 465-1580",
  "brokerPhoneAlt": null,
  "brokerPhoneExt": null,
  "brokerEmail": null,
  "brokerProfileUrl": "https://www.bizquest.com/business-broker/rami-rosen/BW1525577/",
  "brokerPhotoUrl": null,
  "brokerCompanyLogoUrl": null,
  "brokerIntroduction": null,
  "brokerCertifications": null,
  "brokerActiveListings": 7,
  "brokerSoldListings": 3,
  "brokerSbaEligibleListings": 0,
  "brokerContactId": 1525577,
  "brokerAccountId": null,
  "cashFlow": null,
  "ebitda": 200000,
  "grossRevenue": null,
  "financingAvailable": false,
  "realEstateIncluded": false,
  "priceReduced": false,
  "recentlyAdded": false,
  "recentlyUpdated": true,
  "featured": false,
  "franchiseResale": false,
  "franchiseInitialFee": null,
  "franchiseInitialCapital": null,
  "leaseRatePerSqFt": 22000,
  "auctionStartDate": null,
  "auctionEndDate": null,
  "auctionDateDisplay": null,
  "externalUrl": null,
  "images": [
    "https://images.bizquest.com/shared/listings/251/2517142/9ee5575f-17f6-4bbd-b281-22b0cfa82ab1-W336.webp",
    "https://images.bizquest.com/shared/listings/251/2517142/eee0c991-7484-446a-923c-71a660b2cac7-W336.webp",
    "https://images.bizquest.com/shared/listings/251/2517142/7e7808da-9089-4007-a771-dc9551edece2-W336.webp"
  ]
}
```

The most complete **BizQuest scraper and API** available. It returns every field the listing exposes pre-login, including the **business broker or seller contact** (name, company, phone, alternate phone, profile, photo, certifications, portfolio counts) and the financials BizQuest publishes (asking price, EBITDA, gross revenue, franchise fees, listing type, financing and real-estate flags), plus optional AI acquisition scoring and deal extraction, with more than 20 filters to target the deals you want. No BizQuest API key, no login, no browser needed.

**📥 [Input](https://apify.com/scrapers_lat/bizquest-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/bizquest-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/bizquest-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/bizquest-scraper/examples)**

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify\&logoColor=white)
![Coverage](https://img.shields.io/badge/Coverage-United%20States-blue)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)
![Billing](https://img.shields.io/badge/Billing-Pay%20per%20result-brightgreen)

### Table of contents

- [What it does](#what-it-does)
- [Quickstart](#quickstart)
- [Input reference](#input-reference)
- [Output reference](#output-reference)
- [Example output record](#example-output-record)
- [How we compare](#how-we-compare)
- [Run via API and CLI](#run-via-api-and-cli)
- [Fetch results](#fetch-results)
- [Billing and limits](#billing-and-limits)
- [FAQ and troubleshooting](#faq-and-troubleshooting)

### What it does

The actor searches BizQuest for US businesses for sale. Build the search from a keyword, industry, and state, or pass a direct BizQuest listing URL. It paginates the results and writes one normalized record per listing, with asking price, location, industry, listing type, images, and the flags BizQuest shows (financing available, real estate included, price reduced, recently added).

With broker contact and financials enabled (the default), each listing also carries the broker or seller name, company, phone, alternate phone, and profile, plus the financials BizQuest exposes before login (EBITDA, lease rate, franchise fees). BizQuest hides cash flow behind "Sign In to View" and gates broker emails behind a contact form, so those fields stay `null` on most listings; the actor never invents them.

Prices and financials are parsed to plain integers. A set of post-collection filters (price range, cash flow, EBITDA, gross revenue, keyword contains, financing, real estate, price reduced, recently added) lets you narrow a broad search. Optional AI add-ons add a summary, an acquisition score, and structured deal-attribute extraction.

### Quickstart

Open the actor, paste this into the input, and press Run. It returns 10 listings with broker contact and financials.

```json
{
  "maxListings": 10,
  "withDetails": true
}
```

Target a specific search with filters, or pass a direct URL:

```json
{
  "category": "restaurants",
  "state": "florida-fl",
  "minPrice": 100000,
  "maxListings": 25
}
```

### Input reference

| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| `maxListings` | integer | no | `10` | Maximum listings to collect. Free Apify plans are capped at 10 per run. |
| `startUrl` | string | no | (empty) | A BizQuest listing URL to scrape directly. Overrides the keyword, industry, and state filters. |
| `query` | string | no | (empty) | Keyword to search, for example `coffee`, `laundromat`, `pizza`, `gym`. Matched as a category slug, so single business-type words work best. |
| `category` | enum | no | (any) | BizQuest industry, for example `restaurants`, `retail`, `auto-and-automotive`, `health-and-medical`. |
| `state` | enum | no | (any) | US state slug, for example `florida-fl`, `texas-tx`, `california-ca`. |
| `minPrice` | integer | no | (none) | Keep only listings with asking price at or above this amount (USD). |
| `maxPrice` | integer | no | (none) | Keep only listings with asking price at or below this amount (USD). |
| `withDetails` | boolean | no | `true` | Include broker contact and the financials BizQuest exposes pre-login. Turn off for a lean listings-only output. |
| `keywordContains` | string | no | (empty) | Post-collection filter: keep only listings whose title, description, industry, or location contains this text. Requires `withDetails`. |
| `minCashFlow` | integer | no | (none) | Keep only listings with published cash flow at or above this amount. Few listings publish cash flow pre-login. |
| `maxCashFlow` | integer | no | (none) | Keep only listings with published cash flow at or below this amount. |
| `minEbitda` | integer | no | (none) | Keep only listings with published EBITDA at or above this amount. |
| `maxEbitda` | integer | no | (none) | Keep only listings with published EBITDA at or below this amount. |
| `minGrossRevenue` | integer | no | (none) | Keep only listings with published gross revenue at or above this amount. |
| `maxGrossRevenue` | integer | no | (none) | Keep only listings with published gross revenue at or below this amount. |
| `listingType` | enum | no | (any) | Keep only `established`, `franchise`, `auction`, or `asset` listings. |
| `financingAvailableOnly` | boolean | no | `false` | Keep only listings that offer seller or third-party financing. |
| `realEstateIncludedOnly` | boolean | no | `false` | Keep only listings where real estate is included in the asking price. |
| `priceReducedOnly` | boolean | no | `false` | Keep only listings whose price was recently reduced. |
| `recentlyAddedOnly` | boolean | no | `false` | Keep only listings BizQuest flags as recently added. |
| `recentlyUpdatedOnly` | boolean | no | `false` | Keep only listings BizQuest flags as recently updated. |
| `franchiseResaleOnly` | boolean | no | `false` | Keep only franchise-resale listings (an existing franchise unit being resold). |
| `absenteeOwnerOnly` | boolean | no | `false` | Keep only listings that mention absentee or semi-absentee (passive) ownership. |
| `withAiProfileSummary` | boolean | no | `false` | Add an AI plain-English summary per listing. Billed only when produced. Paid Apify plans only. |
| `withAiLeadScore` | boolean | no | `false` | Add an AI acquisition score (0-100) with tier and rationale. Billed only when produced. Paid Apify plans only. |
| `withAiExtract` | boolean | no | `false` | Add AI-extracted deal attributes from the description. Billed only when produced. Paid Apify plans only. |

### Output reference

One dataset item per listing. Types: `string`, `integer`, `boolean`, `string[]`, `object`, or `null` when the source value is absent. Fields marked "detail" are populated only when `withDetails` is on.

| Field | Type | Description |
|---|---|---|
| `imageUrl` | string | Primary listing image URL. |
| `title` | string | Listing title. |
| `url` | string | Canonical BizQuest listing URL. |
| `listingId` | string | BizQuest listing ID. |
| `askingPrice` | integer | Asking price in USD, or `null` if not disclosed. |
| `currency` | string | Currency of the asking price, for example `USD`. |
| `availability` | string | Offer availability, for example `InStock`. |
| `city` | string | Listing city. |
| `state` | string | Two-letter US state code. |
| `postalCode` | string | ZIP / postal code, when published. |
| `country` | string | Country code, for example `US`. |
| `location` | string | Combined location text. |
| `description` | string | Listing description shown pre-login. |
| `totalListingsForSearch` | integer | Total listings BizQuest reports match the current search. |
| `observedAt` | string | ISO 8601 timestamp of when the record was collected. |
| `error` | string | `null` on success. On a failed run, a single item with a populated `error` field is written instead. |
| `headline` | string | Listing headline (detail). |
| `county` | string | County, when published (detail). |
| `listingType` | string | Listing type, for example `Established Business` (detail). |
| `industry` | string | Industry name (detail). |
| `industryId` | integer | BizQuest numeric industry ID (detail). |
| `stateName` | string | Full state name (detail). |
| `stateCode` | string | Two-letter state code from the listing blob (detail). |
| `sellerType` | string | Contact type, for example `Business Broker` (detail). |
| `sellerUserTypeId` | integer | BizQuest numeric contact-type ID (detail). |
| `brokerName` | string | Broker or seller name (detail). |
| `brokerCompany` | string | Broker company (detail). |
| `brokerPhone` | string | Broker phone (detail). |
| `brokerPhoneAlt` | string | Broker alternate phone (detail). |
| `brokerPhoneExt` | string | Broker phone extension (detail). |
| `brokerEmail` | string | Broker email. Usually `null`; BizQuest gates emails behind a contact form (detail). |
| `brokerProfileUrl` | string | Broker profile URL (detail). |
| `brokerPhotoUrl` | string | Broker headshot photo URL (detail). |
| `brokerCompanyLogoUrl` | string | Broker company logo URL, when published (detail). |
| `brokerIntroduction` | string | Broker bio / introduction text, when published (detail). |
| `brokerCertifications` | string | Broker certifications, when published (detail). |
| `brokerActiveListings` | integer | Number of active listings the broker has on BizQuest (detail). |
| `brokerSoldListings` | integer | Number of listings the broker has sold on BizQuest (detail). |
| `brokerSbaEligibleListings` | integer | Number of the broker's listings that are SBA-eligible (detail). |
| `brokerContactId` | integer | BizQuest broker contact ID (detail). |
| `brokerAccountId` | integer | BizQuest broker account ID (detail). |
| `cashFlow` | integer | Cash flow in USD. Usually `null`; hidden behind "Sign In to View" (detail). |
| `ebitda` | integer | EBITDA in USD, when published (detail). |
| `grossRevenue` | integer | Gross revenue in USD, when published (detail). |
| `financingAvailable` | boolean | Whether financing is offered (detail). |
| `realEstateIncluded` | boolean | Whether real estate is included (detail). |
| `priceReduced` | boolean | Whether the price was recently reduced (detail). |
| `recentlyAdded` | boolean | Whether BizQuest flags the listing as recently added (detail). |
| `recentlyUpdated` | boolean | Whether the listing was recently updated (detail). |
| `featured` | boolean | Whether the listing is featured (detail). |
| `franchiseResale` | boolean | Whether the listing is a franchise resale (detail). |
| `franchiseInitialFee` | integer | Franchise initial fee, for franchise listings (detail). |
| `franchiseInitialCapital` | integer | Franchise initial capital required (detail). |
| `leaseRatePerSqFt` | integer | Lease rate value published on the listing (detail). |
| `auctionStartDate` | string | Auction start date, for auction listings (detail). |
| `auctionEndDate` | string | Auction end date (detail). |
| `auctionDateDisplay` | string | Auction date display text (detail). |
| `externalUrl` | string | External listing URL, when present (detail). |
| `images` | string\[] | All listing image URLs (detail). |
| `aiProfileSummary` | string | AI summary, or `null` unless enabled. |
| `aiLeadScore` | integer | AI acquisition score 0-100, or `null` unless enabled. |
| `aiLeadTier` | string | AI acquisition tier, or `null` unless enabled. |
| `aiLeadRationale` | string | AI score rationale, or `null` unless enabled. |
| `aiDealAttributes` | object | AI-extracted deal attributes, or `null` unless enabled. |

### Example output record

Real record from a live run (input `{"maxListings": 10, "withDetails": true}`):

```json
{
  "title": "Fully Built Restaurant / Coffee Shop",
  "url": "https://www.bizquest.com/business-for-sale/fully-built-restaurant-coffee-shop/BW2517142/",
  "listingId": "2517142",
  "askingPrice": 599000,
  "currency": "USD",
  "city": "Hoboken",
  "state": "NJ",
  "location": "Hoboken, NJ",
  "listingType": "Established Business",
  "industry": "Food & Beverage",
  "stateName": "New Jersey",
  "brokerName": "Rami Rosen",
  "brokerPhone": "(646) 465-1580",
  "ebitda": 200000,
  "cashFlow": null,
  "recentlyUpdated": true,
  "observedAt": "2026-08-10T14:04:10.140Z",
  "error": null
}
```

### How we compare

This actor is built to be a strict superset of the other BizQuest scrapers on Apify: it accepts the same inputs and returns the same fields they do, plus extras none of them offer. Comparison based on each actor's public input and output schema.

| Capability | This actor | memo23 | parseforge | powerai | fatihtahta |
|---|---|---|---|---|---|
| Keyword / industry / state search | Yes | Yes | Yes | Yes | Yes |
| Direct search-URL input | Yes | Yes | No | No | No |
| Price min/max filter | Yes | Yes | Yes | No | Yes |
| Cash flow min/max filter | Yes | Yes | Yes | No | No |
| EBITDA min/max filter | Yes | No | No | No | Yes |
| Gross revenue min/max filter | Yes | No | No | No | Yes |
| Listing-type filter (franchise/asset/auction) | Yes | No | No | No | Yes |
| Financing / real-estate / absentee filters | Yes | No | No | No | Partial |
| Broker or seller name + phone | Yes | Yes | No | Partial | Yes |
| Broker company, profile, photo, certifications | Yes | No | No | No | Partial |
| Broker portfolio counts (active / sold / SBA) | Yes | No | No | No | No |
| Asking price + EBITDA + gross revenue | Yes | Yes | Yes | Partial | Yes |
| Franchise economics (initial fee / capital / resale) | Yes | No | No | No | No |
| Auction fields | Yes | No | No | No | No |
| All listing images | Yes | Partial | No | No | Yes |
| Search match count per record | Yes | No | No | No | No |
| AI acquisition score + deal extraction | Yes | No | No | No | Partial |
| No-charge-on-failure + spend cap | Yes | Partial | Partial | Partial | Partial |

Notes on honesty: BizQuest hides **cash flow** behind "Sign In to View" and gates **broker email** behind a contact form for everyone, and **employee count, inventory, and established year** live only on the login-walled detail page. This actor reports what BizQuest publishes pre-login and never fabricates those values; the optional AI extract add-on can pull reason-for-selling, employees, and established year from the listing description text when the seller states them.

### Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace `<TOKEN>` with your Apify API token.

Run synchronously and get dataset items in one call:

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~bizquest-scraper/run-sync-get-dataset-items?token=%3CTOKEN%3E" \
  -H "Content-Type: application/json" \
  -d '{"category":"restaurants","state":"florida-fl","minPrice":100000,"maxListings":25}'
```

Start a run asynchronously:

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~bizquest-scraper/runs?token=%3CTOKEN%3E" \
  -H "Content-Type: application/json" \
  -d '{"query":"laundromat","state":"texas-tx","maxListings":100}'
```

Apify CLI:

```bash
apify call scrapers_lat/bizquest-scraper \
  --input '{"startUrl":"https://www.bizquest.com/businesses-for-sale-in-texas-tx/"}'
```

### Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing `format`:

```bash
## JSON
curl "https://api.apify.com/v2/datasets/%3CDATASET_ID%3E/items?token=%3CTOKEN%3E&clean=true&format=json"

## CSV
curl "https://api.apify.com/v2/datasets/%3CDATASET_ID%3E/items?token=%3CTOKEN%3E&clean=true&format=csv"

## Paginate large datasets
curl "https://api.apify.com/v2/datasets/%3CDATASET_ID%3E/items?token=%3CTOKEN%3E&offset=1000&limit=1000"
```

`<DATASET_ID>` is returned as `defaultDatasetId` in the run object. Use `offset` and `limit` to page through large result sets. `clean=true` drops empty and internal fields.

### Billing and limits

- **Pay per result.** You are charged per listing returned (`result` event). See the [pricing tab](https://apify.com/scrapers_lat/bizquest-scraper/pricing) for the current per-result price.
- **No charge on failure.** If a run errors, the actor writes an item with a populated `error` field and does not charge for it. Empty runs cost nothing.
- **AI add-ons are opt-in.** AI summary, lead score, and deal-attribute extraction are billed per listing only when usable output is produced, and only on paid Apify plans.
- **Spend cap respected.** Set `maxTotalChargeUsd` on the run; once reached, the actor stops emitting and charging further billable results.
- **Free Apify plans** are capped at 10 listings per run. Upgrade for higher `maxListings`.

### FAQ and troubleshooting

**Is there a BizQuest API? Do I need an API key?**
BizQuest does not offer a public data API. This actor is a BizQuest API alternative: it reads the public listing pages directly, so you get structured JSON, CSV, or Excel with no BizQuest API key, no login, and no scraping code to maintain.

**Can I use this for M\&A deal sourcing and acquisition leads?**
Yes. It is built for buyers, business brokers, search funds, and M\&A advisors who need business-for-sale data and business broker leads at scale: asking price, cash flow, EBITDA, gross revenue, industry, financing, location, and broker name, company, and phone for outreach.

**Does it cover franchises and franchise resales?**
Yes. Franchise and franchise-resale listings are included, with franchise initial fee, initial capital, the `franchiseResale` flag, and the `listingType` filter to isolate them.

**Can I filter by SBA eligibility or cash flow?**
You can filter by published cash flow, EBITDA, and gross revenue, and each broker record includes a count of their SBA-eligible listings. Note that BizQuest publishes cash flow on only some listings pre-login.

**A run returned 0 records. Why?**
The keyword, industry, state, or filters matched nothing. Loosen the filters or widen the price range. Zero-result runs are not charged.

**Why is `cashFlow` null on most listings?**
BizQuest hides cash flow behind "Sign In to View" on the public listing. The actor reports only what BizQuest publishes pre-login and never invents figures. EBITDA is published on more listings and is captured when present.

**Why is `brokerEmail` null?**
BizQuest gates broker emails behind a contact form, so they are not available pre-login. Broker name and phone are captured when published.

**Can I scrape one specific search or listing?**
Yes. Put the URL in `startUrl`. It overrides the keyword, industry, and state filters.

**How do the price and cash-flow filters work?**
BizQuest does not filter by these on the server, so the actor applies them to the values it collects. Listings without a published value for a filtered field are excluded when that filter is set.

**Is this an official BizQuest tool?**
No. This actor is independent and has no affiliation with BizQuest. It reads only data that is publicly available on BizQuest listing pages. Use it in accordance with BizQuest's terms of service.

### Related scrapers

- [BizBuySell Businesses & Franchises For Sale Scraper](https://apify.com/scrapers_lat/bizbuysell-businesses-for-sale-scraper): BizBuySell businesses and franchises for sale.
- [Franchise Opportunities Scraper](https://apify.com/scrapers_lat/franchise-opportunities-scraper): Franchise opportunities and investment details.
- [Crexi Commercial Real Estate Scraper](https://apify.com/scrapers_lat/crexi-scraper): Commercial real estate listings and brokers.
- [Aircraft For Sale Scraper](https://apify.com/scrapers_lat/aircraft-for-sale-scraper): Aircraft for sale listings.
- [Colorado Business Entities Scraper](https://apify.com/scrapers_lat/colorado-business-entities-scraper): Colorado registered business entities.
- [Cybo Business Leads Scraper](https://apify.com/scrapers_lat/cybo-business-leads-scraper): Business directory leads worldwide.

### More scrapers at scrapers.lat

Built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at [scrapers.lat](https://scrapers.lat).

***

> Independent tool, not affiliated with BizQuest. Accesses only publicly available listing data. Use in accordance with BizQuest's terms of service.

# Actor input Schema

## `maxListings` (type: `integer`):

Maximum number of listings to collect. Optional.

## `withAiProfileSummary` (type: `boolean`):

Add an AI-generated plain-English summary of each business-for-sale listing. Billed per listing only when a summary is produced. Paid Apify plans only.

## `withAiLeadScore` (type: `boolean`):

Add an AI acquisition-opportunity score (0-100) with tier and rationale for each listing. Billed per listing only when a score is produced. Paid Apify plans only.

## `withAiExtract` (type: `boolean`):

Add AI-extracted deal attributes (reason for selling, years established, employees, seller financing, real estate, relocatable) from each listing description. Billed per listing only when attributes are produced. Paid Apify plans only.

## `withDetails` (type: `boolean`):

When on (default), each listing also includes the business broker or seller contact (name, company, phone, profile URL) plus financials BizQuest exposes pre-login (listing type, EBITDA, real-estate-included flag, franchise fees). No extra requests are made. Note: BizQuest does not publish broker email addresses (they are gated behind a contact form), and cash flow is hidden behind 'Sign In to View', so those stay null. Turn this off for a lean listings-only output.

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

Optional. A BizQuest businesses-for-sale listing URL to scrape directly, for example https://www.bizquest.com/restaurants-for-sale-in-florida-fl/ or https://www.bizquest.com/businesses-for-sale-in-texas-tx/. When set, it overrides the keyword, industry and state filters below. Leave empty to build the search from the filters.

## `query` (type: `string`):

Optional keyword to search, for example coffee, laundromat, pizza, gym. BizQuest matches the keyword as a category slug, so single business-type words work best.

## `category` (type: `string`):

Optional industry to filter by. Pick one of the main BizQuest categories.

## `state` (type: `string`):

Optional US state to filter by.

## `minPrice` (type: `integer`):

Optional. Keep only listings with an asking price at or above this amount (USD). Listings without a published price are excluded when this is set.

## `maxPrice` (type: `integer`):

Optional. Keep only listings with an asking price at or below this amount (USD). Listings without a published price are excluded when this is set.

## `keywordContains` (type: `string`):

Optional free-text filter applied after collection. Keeps only listings whose title, description, industry or location contains this text (case-insensitive). Use it to narrow a broad search, for example "waterfront", "SBA", "absentee" or "liquor license".

## `minCashFlow` (type: `integer`):

Optional. Keep only listings with a published cash flow at or above this amount (USD). Note: BizQuest hides cash flow behind 'Sign In to View' on most listings, so this keeps only the few that publish it pre-login.

## `maxCashFlow` (type: `integer`):

Optional. Keep only listings with a published cash flow at or below this amount (USD). Applies only to listings that publish cash flow pre-login.

## `minEbitda` (type: `integer`):

Optional. Keep only listings with a published EBITDA at or above this amount (USD). Listings that do not publish EBITDA are excluded when this is set.

## `maxEbitda` (type: `integer`):

Optional. Keep only listings with a published EBITDA at or below this amount (USD). Applies only to listings that publish EBITDA pre-login.

## `minGrossRevenue` (type: `integer`):

Optional. Keep only listings with a published gross revenue at or above this amount (USD). Applies only to listings that publish revenue pre-login.

## `maxGrossRevenue` (type: `integer`):

Optional. Keep only listings with a published gross revenue at or below this amount (USD). Applies only to listings that publish revenue pre-login.

## `listingType` (type: `string`):

Optional. Keep only listings of this type: established business, franchise, auction, or asset sale.

## `financingAvailableOnly` (type: `boolean`):

When on, keep only listings that offer seller or third-party financing.

## `realEstateIncludedOnly` (type: `boolean`):

When on, keep only listings where the real estate is included in the asking price.

## `priceReducedOnly` (type: `boolean`):

When on, keep only listings whose asking price was recently reduced.

## `recentlyAddedOnly` (type: `boolean`):

When on, keep only listings BizQuest flags as recently added.

## `recentlyUpdatedOnly` (type: `boolean`):

When on, keep only listings BizQuest flags as recently updated.

## `franchiseResaleOnly` (type: `boolean`):

When on, keep only franchise-resale listings (an existing franchise unit being resold).

## `absenteeOwnerOnly` (type: `boolean`):

When on, keep only listings whose title, headline or description mentions absentee or semi-absentee (passive) ownership.

## Actor input object example

```json
{
  "maxListings": 10,
  "withAiProfileSummary": false,
  "withAiLeadScore": false,
  "withAiExtract": false,
  "withDetails": true,
  "listingType": "",
  "financingAvailableOnly": false,
  "realEstateIncludedOnly": false,
  "priceReducedOnly": false,
  "recentlyAddedOnly": false,
  "recentlyUpdatedOnly": false,
  "franchiseResaleOnly": false,
  "absenteeOwnerOnly": false
}
```

# Actor output Schema

## `results` (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 = {
    "maxListings": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/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 = { "maxListings": 10 }

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/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 '{
  "maxListings": 10
}' |
apify call scrapers_lat/bizquest-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapers_lat/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/dKpWveBcAcMuYxM5K/builds/54XHMLs5HdRA7c024/openapi.json
