# Vendor & Exhibitor Opportunity Finder (`niche_lens/vendor-exhibitor-opportunity-finder`) Actor

Find public vendor applications, exhibitor packets, booth opportunities, market applications, fair forms, and festival vendor pages.

- **URL**: https://apify.com/niche\_lens/vendor-exhibitor-opportunity-finder.md
- **Developed by:** [Niche Lens](https://apify.com/niche_lens) (community)
- **Categories:** Marketing, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$50.00 / 1,000 vendor opportunity founds

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/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

## Vendor & Exhibitor Opportunity Finder

Find public vendor applications, exhibitor packets, booth opportunities, market applications, festival vendor pages, and trade-show forms.

### What it does

This Actor crawls event, fair, market, chamber, expo, and venue websites for:

- vendor applications and packets
- exhibitor registration pages
- booth/market/concessionaire opportunities
- application URLs and public documents
- deadline clues, fee clues, contact emails/phones, and source context

It is designed for prospecting vendors, food trucks, makers, exhibitors, booth-sales teams, event services, and niche opportunity datasets.

### Billing

This Actor uses Apify Pay Per Event pricing.

- **Paid event:** `VENDOR_OPPORTUNITY`
- **Price:** **$0.05 per billable vendor/exhibitor opportunity** / **$50 per 1,000 extracted opportunities**
- You are charged only for useful opportunity rows with real supporting signals.

No-result/status rows and zero-confidence rows are not emitted with the paid event.

### Good inputs

```json
{
  "startUrls": [
    { "url": "https://examplefair.org" }
  ],
  "maxPagesPerSite": 40,
  "maxDepth": 2,
  "minConfidenceScore": 25
}
```

### Output quality notes

Rows include opportunity title/type, confidence score, application URLs, document URLs, deadline clues, fee clues, contact details, matched keywords, and source snippet. The Actor now recognizes common real-world vendor terminology such as commercial space, vendor services, concessionaire, market vendor, exhibitor packet, and booth application.

### Limits and responsible use

The Actor finds public opportunities; always verify requirements, dates, fees, and availability on the source site.

# Actor input Schema

## `startUrls` (type: `array`):

Public websites or pages to scan for vendor, exhibitor, booth, market, fair, festival, and trade show application opportunities.

## `maxPagesPerSite` (type: `integer`):

Maximum number of same-domain HTML pages to crawl per start URL.

## `maxDepth` (type: `integer`):

How many link hops to follow from each start URL.

## `minConfidenceScore` (type: `integer`):

Only push opportunity rows at or above this score. Lower values return more exploratory results.

## `opportunityKeywords` (type: `array`):

Optional custom keywords. Leave empty to use vendor/exhibitor defaults.

## `documentExtensions` (type: `array`):

File extensions to treat as opportunity documents.

## `respectRobotsTxt` (type: `boolean`):

Respect robots.txt rules when crawling.

## `requestDelayMillis` (type: `integer`):

Optional polite delay between page requests.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.iowastatefair.org/participate/commercial-space"
    }
  ],
  "maxPagesPerSite": 35,
  "maxDepth": 2,
  "minConfidenceScore": 45,
  "documentExtensions": [
    "pdf",
    "doc",
    "docx",
    "xls",
    "xlsx",
    "csv",
    "ppt",
    "pptx"
  ],
  "respectRobotsTxt": true,
  "requestDelayMillis": 300
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.iowastatefair.org/participate/commercial-space"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("niche_lens/vendor-exhibitor-opportunity-finder").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 = { "startUrls": [{ "url": "https://www.iowastatefair.org/participate/commercial-space" }] }

# Run the Actor and wait for it to finish
run = client.actor("niche_lens/vendor-exhibitor-opportunity-finder").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 '{
  "startUrls": [
    {
      "url": "https://www.iowastatefair.org/participate/commercial-space"
    }
  ]
}' |
apify call niche_lens/vendor-exhibitor-opportunity-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,niche_lens/vendor-exhibitor-opportunity-finder"
        }
    }
}

```

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/FlpWYmAuwYbdT096r/builds/eu8Am6reY03zt2mSl/openapi.json
