# Eventeny Vendor & Market Directory Scraper (`hypebridge/eventeny-vendor-market-directory`) Actor

Extracts public Eventeny events, vendor and exhibitor applications with booth fees and deadlines, ticket tiers, and organizer profiles

- **URL**: https://apify.com/hypebridge/eventeny-vendor-market-directory.md
- **Developed by:** [Hypebridge](https://apify.com/hypebridge) (community)
- **Categories:** Automation, E-commerce, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.009 / detailed vendor application

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

### Eventeny Vendor & Market Directory Scraper

Collect public events, vendor and exhibitor opportunities, booth fees, deadlines, application questions, ticket tiers, and organizer profiles from [Eventeny](https://www.eventeny.com/). The Actor is built for market research, vendor prospecting, event discovery, and application planning. It does not sign in, submit applications, buy tickets, or extract private applicant data.

### Why scrape Eventeny?

- **Find vendor opportunities:** build a current directory of markets, festivals, fairs, and conventions accepting applications.
- **Compare booth economics:** retrieve booth tiers, price ranges, application fees, refund policies, and supporting notes.
- **Track deadlines:** monitor open applications and their event dates before submission windows close.
- **Research event organizers:** collect public organizer profiles, websites, social links, and hosted-event catalogues.
- **Understand ticket pricing:** attach published ticket tiers, taxes, processing fees, and sale status to detailed events.

### What data can the Actor extract?

| Data | Examples |
|---|---|
| Event identity | Name, category, status, URL, recurring-series ID |
| Dates and location | Start/end dates, postal address, coordinates |
| Vendor opportunity | Application title, deadline, description, host event |
| Booth economics | Tier name, raw price, min/max price, application fee, refund policy |
| Application requirements | Terms, related files, grouped applicant questions |
| Tickets | Tier name, total price, base price, tax, fee, status |
| Organizer | Name, profile, logo, website, socials, hosted events |
| Metadata | Record type, original start URL, detail status, scrape timestamp |

Results use `recordType` values `event`, `application`, and `organizer`. Download the complete mixed dataset or use the dedicated Events, Applications, and Organizers views.

### How to scrape Eventeny

1. Open this Actor and choose **Try for free**.
2. Add one or more Eventeny start URLs.
3. Set **Maximum items** to control run size and spend.
4. Turn on **Scrape detail pages** when you need booth pricing, terms, files, and questions.
5. Start the run and download the Dataset as JSON, CSV, Excel, XML, or HTML.

Supported inputs include:

- `https://www.eventeny.com/events/`
- `https://www.eventeny.com/events/ohio/columbus/`
- `https://www.eventeny.com/events/applications/`
- `https://www.eventeny.com/events/vendor/?id=38478`
- `https://www.eventeny.com/events/ticket/?id=33229`
- `https://www.eventeny.com/company/?c=200642`

Eventeny does not expose keyword searches as shareable directory URLs. This Actor adds a convenient convention: append `?search=` or `?q=` to an event or application directory URL. For example, `https://www.eventeny.com/events/ohio/?search=craft+fair` sends `craft fair` to the directory search.

### Input

| Parameter | Type | Default | Description |
|---|---|---:|---|
| `startUrls` | Array | Application directory | Eventeny directory or detail URLs |
| `maxItems` | Integer | `200` | Maximum event, application, and organizer records |
| `getDetails` | Boolean | `false` | Enrich discovered records with detail-page data |
| `searchQuery` | String | Empty | Directory keyword search when the URL has no inline term. Zero-result multi-word application searches retry up to five individual keywords and combine unique matches. |
| `applicationType` | String | `vendor` | `vendor`, `volunteer`, or `ticket` application feed |
| `category` | String | All | Event directory category |
| `month` | String | Empty | Month filter in `YYYY-MM` format |
| `locationFilter` | String | Empty | Application location key such as `United States-Georgia` |
| `includeTicketTiers` | Boolean | `false` | Attach ticket tiers to detailed events |
| `scrapeOrganizers` | Boolean | `false` | Add one public organizer record per distinct host |
| `maxConcurrency` | Integer | `10` | Parallel requests, capped at 30 |
| `debugMode` | Boolean | `false` | Save bounded failed-request diagnostics |

#### Example: detailed vendor opportunities

```json
{
  "startUrls": [{ "url": "https://www.eventeny.com/events/applications/" }],
  "applicationType": "vendor",
  "locationFilter": "United States-Georgia",
  "getDetails": true,
  "maxItems": 50
}
```

#### Example: keyword search in a state

```json
{
  "startUrls": [{ "url": "https://www.eventeny.com/events/ohio/?search=craft+fair" }],
  "getDetails": true,
  "includeTicketTiers": true,
  "scrapeOrganizers": true,
  "maxItems": 25
}
```

#### Example: one application

```json
{
  "startUrls": [{ "url": "https://www.eventeny.com/events/vendor/?id=38478" }],
  "maxItems": 1
}
```

Direct event, application, ticket, and organizer URLs are always fully scraped, even when `getDetails` is false.

### Output example

```json
{
  "recordType": "application",
  "id": "example-123",
  "title": "2026 Vendor Application",
  "deadline": "2026-09-30T03:59:00.000Z",
  "eventName": "Example Community Market",
  "priceMin": 100,
  "priceMax": 350,
  "applicationFee": 20,
  "boothOptions": [
    {
      "name": "10x10 booth",
      "priceText": "$100.00",
      "priceMin": 100,
      "priceMax": 100,
      "currency": "USD",
      "refundPolicy": "Non-refundable"
    }
  ],
  "detailScraped": true,
  "scrapedAt": "2026-09-04T12:00:00.000Z"
}
```

### How much does it cost?

The Actor uses pay-per-event billing. Directory-level event and application records use the basic tiers. Successfully enriched event and application records use detail tiers, while organizer profiles have their own tier. Failed enrichments are not billed as successful detail records. Check the Actor pricing tab for the current price of each event before a large run.

Use `maxItems` as the hard output cap. Detail mode makes additional requests and returns higher-value fields, so start with a small sample before scheduling a full-market crawl.

### FAQ

#### Why are some arrays empty?

Empty arrays are normal when an event has no active applications, an organizer has not published tickets, or an application has no files, questions, or priced booth tiers. `detailScraped` tells you whether the source page was opened successfully.

#### Can I scrape several URL types in one run?

Yes. A mixed input produces a mixed dataset distinguished by `recordType`. The separate dataset views make each shape easier to inspect.

#### Is scraping Eventeny legal?

This Actor extracts publicly available information. You are responsible for complying with Eventeny's terms and applicable laws, and for using the data for a legitimate purpose.

### Support

Use the Actor's **Issues** tab for bug reports and feature requests. Use the **API** tab for programmatic runs and dataset access.

> **Disclaimer**: This Actor does not intentionally extract private user data. Public results may still contain personal data protected by privacy laws such as the GDPR. Do not collect or process personal data without a legitimate legal basis; consult counsel when unsure.

# Actor input Schema

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

Eventeny URLs to scrape. Supported: the events directory, a state or city directory, the application hub, an event, a vendor or volunteer application, a ticket page, or an organizer profile. Add ?search=your+keywords to a directory URL to filter by keyword.

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

Stop after this many event, application, and organizer records. Keep a cap in place unless you intend a full crawl.

## `getDetails` (type: `boolean`):

Open discovered events and applications for booth fee tables, deadlines, terms, files, questions, venue details, and organizer data. Direct detail URLs are always fully scraped.

## `searchQuery` (type: `string`):

Keyword filter for directory start URLs without their own ?search= or ?q= value. If Eventeny finds nothing for a multi-word phrase, the Actor retries up to five individual keywords and combines unique matches.

## `applicationType` (type: `string`):

Application feed to read from the Eventeny application hub.

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

Category filter for event directory URLs. Leave empty for every category.

## `month` (type: `string`):

Restrict directory results to one month in YYYY-MM format, for example 2026-10.

## `locationFilter` (type: `string`):

Application-hub location using Eventeny's keys, such as United States-Georgia, United States-California, or Canada.

## `includeTicketTiers` (type: `boolean`):

For detailed events that sell tickets, attach every published tier with base price, tax, processing fee, refund policy, and sale status.

## `scrapeOrganizers` (type: `boolean`):

Push a separate organizer record for each distinct event host, with public profile details and hosted events.

## `maxConcurrency` (type: `integer`):

Parallel requests. Detail pages can be large, so the default 10 is recommended on a 2 GB run.

## `debugMode` (type: `boolean`):

Save bounded HTML and JSON diagnostics for failed requests in the default key-value store.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.eventeny.com/events/applications/"
    }
  ],
  "maxItems": 200,
  "getDetails": true,
  "searchQuery": "craft fair",
  "applicationType": "vendor",
  "category": "",
  "month": "2026-10",
  "locationFilter": "United States-Georgia",
  "includeTicketTiers": false,
  "scrapeOrganizers": false,
  "maxConcurrency": 10,
  "debugMode": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

Complete dataset containing every output field.

## `events` (type: `string`):

Event directory and detail fields.

## `applications` (type: `string`):

Application deadlines, booth prices, files, and applicant questions.

## `organizers` (type: `string`):

Organizer profiles, websites, socials, and hosted events.

## `files` (type: `string`):

Bounded failed-request diagnostics created only in debug mode.

# 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.eventeny.com/events/applications/"
        }
    ],
    "maxItems": 200,
    "getDetails": true,
    "searchQuery": "craft fair",
    "month": "2026-10",
    "locationFilter": "United States-Georgia",
    "maxConcurrency": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("hypebridge/eventeny-vendor-market-directory").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.eventeny.com/events/applications/" }],
    "maxItems": 200,
    "getDetails": True,
    "searchQuery": "craft fair",
    "month": "2026-10",
    "locationFilter": "United States-Georgia",
    "maxConcurrency": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("hypebridge/eventeny-vendor-market-directory").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.eventeny.com/events/applications/"
    }
  ],
  "maxItems": 200,
  "getDetails": true,
  "searchQuery": "craft fair",
  "month": "2026-10",
  "locationFilter": "United States-Georgia",
  "maxConcurrency": 10
}' |
apify call hypebridge/eventeny-vendor-market-directory --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hypebridge/eventeny-vendor-market-directory"
        }
    }
}
```

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/r2s0hWJVbB7M0JPxj/builds/6JZagQZdWfwOTeq7P/openapi.json
