# Event Vendor & Venue Directory Scraper - Eventective (`jungle_synthesizer/eventective-event-vendor-venue-scraper`) Actor

Scrape the full Eventective directory of US event vendors and venues - caterers, DJs, photographers, florists, party rentals, and wedding venues across every state. Returns business name, category, city/state, phone, price range, website, and photos for 100K+ listings.

- **URL**: https://apify.com/jungle\_synthesizer/eventective-event-vendor-venue-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 1,000 record scrapeds

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Event Vendor & Venue Directory Scraper - Eventective

Scrape event vendor and venue listings from [Eventective](https://www.eventective.com), a US directory covering caterers, DJs, photographers, florists, party rentals, and wedding venues. Returns business name, category, city and state, phone, price range, website, and photos for 100K+ listings across every state.

***

### Event Vendor & Venue Directory Scraper Features

- Covers all 16 Eventective categories — caterers, DJs, photographers, florists, party rentals, wedding venues, event planners, videographers, and more
- Extracts business name, category, phone, and a description written by the vendor
- Pulls price range straight from each listing's published packages, where the vendor has set one
- Returns the vendor's own website or social link, not just a contact form dead end
- Collects every photo attached to a listing, deduplicated to one URL per image
- Covers every US city and state Eventective lists — not a handful of hand-picked metros

***

### Who Uses Event Vendor and Venue Data?

- **Event marketing agencies** — build outreach lists segmented by category and metro
- **Venue booking software** — seed a directory or comparison tool without manual data entry
- **Catering supply resellers** — find prospects by city, then filter by price range
- **Wedding planning platforms** — backfill vendor profiles that are missing contact details
- **Recruiters and staffing firms** — identify active event businesses in a target region
- **Market researchers** — measure vendor density and pricing by category and metro

***

### How the Event Vendor & Venue Directory Scraper Works

1. Set `maxItems` to the number of listings you want, or leave the default for a quick sample.
2. The scraper works through Eventective's full listing catalog in the background.
3. Each listing is parsed for contact info, pricing, description, and photos.
4. Results land in your dataset as clean, structured JSON — ready to export or pipe into whatever you're building.

***

### Input

```json
{
  "maxItems": 500
}
```

| Field          | Type    | Default | Description                                                                                         |
|----------------|---------|---------|-----------------------------------------------------------------------------------------------------|
| `maxItems`     | integer | 10      | Maximum number of listings to return. Required.                                                     |
| `resumeCursor` | string  | —       | Cursor from a previous run's Output, used to continue a stopped crawl. Leave empty for a fresh run. |

#### Resuming a large crawl

Every run emits a `resumeCursor` in its Output. If a large crawl stops before it finishes — because it hit `maxItems`, your spend cap (`maxTotalChargeUsd`), or was aborted — start a new run with **the same input** plus that `resumeCursor` to continue from where it left off. The crawl resumes from the queued work the previous run didn't reach.

- You are **not re-charged** for records the earlier run already delivered.
- Resume within your account's run-retention window — on the free tier, roughly your 10 most recent runs. Once the source run is pruned, its `resumeCursor` is no longer valid.
- `resumeCursor` is opaque — supply it unmodified.

***

### Event Vendor & Venue Directory Scraper Output Fields

```json
{
  "business_name": "Burns Bluff at High Falls Wedding and Event Center",
  "category": "Wedding Venue",
  "city": "Albertville",
  "state": "AL",
  "profile_url": "https://www.eventective.com/albertville-al/burns-bluff-at-high-falls-wedding-and-event-center-715120.html",
  "phone": "2568084937",
  "description": "Burns Bluff at High Falls is a premier Wedding and Event Venue...",
  "price_range": "$3990 - $7900",
  "website": "https://www.burnsbluffweddings.com/",
  "photos": [
    "https://media.eventective.com/3771280.jpg",
    "https://media.eventective.com/3771368.jpg"
  ]
}
```

| Field           | Type   | Description                                                                  |
|-----------------|--------|------------------------------------------------------------------------------|
| `business_name` | string | Vendor or venue name                                                         |
| `category`      | string | Eventective category — Caterer, DJ, Photographer, Wedding Venue, and 12 more |
| `city`          | string | City the listing is based in                                                 |
| `state`         | string | Two-letter US state code                                                     |
| `profile_url`   | string | Link to the listing's Eventective page                                       |
| `phone`         | string | Provider phone number                                                        |
| `description`   | string | Vendor-written description of their services                                 |
| `price_range`   | string | Published price range, when the vendor has set one                           |
| `website`       | string | Vendor's own website or social profile                                       |
| `photos`        | array  | Photo URLs attached to the listing                                           |

***

### FAQ

#### How do I scrape Eventective vendor and venue listings?

Event Vendor & Venue Directory Scraper needs no Eventective account and no API key. Set `maxItems` to how many listings you want, run it, and the results land in your dataset — one row per vendor or venue.

#### What data can I get from Eventective?

You get business name, category, city and state, phone, a price range when the vendor has published one, their website, and every photo attached to the listing. That covers caterers through wedding venues and the other 14 categories Eventective lists.

#### Can I filter by category or city?

Not as a separate input — the scraper returns every category and city Eventective has listed, and the `category`/`city`/`state` fields let you filter the output yourself after the run. That's deliberate: most of the value here is coverage, not a narrow slice of it.

#### How much does Event Vendor & Venue Directory Scraper cost to run?

Pricing is pay-per-result on the Apify platform — check the actor's pricing tab for the current per-record rate. There's no separate setup fee.

#### Does this include reviews or star ratings?

No. Eventective doesn't publish review counts or ratings on the listing pages themselves, so those fields aren't in the output. Everything that's listed above is fields the site actually makes available.

***

### Need More Features?

Need a different field, a different source, or a bulk-export format? [File an issue](https://console.apify.com/actors/issues) or get in touch.

### Why Use Event Vendor & Venue Directory Scraper?

- **Full coverage** — every US city and all 16 categories Eventective lists, not a handful of sample pages
- **Vendor-sourced pricing** — price ranges come straight from each listing's own published packages, not a guess
- **Clean output** — structured JSON with consistent field names, so you spend less time cleaning data and more time using it

# Actor input Schema

## `sp_intended_usage` (type: `string`):

What will this data feed? E.g. lead lists, KYB checks, price tracking.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

We'll personally help with your use case. No spam.

## `resumeCursor` (type: `string`):

Leave empty for a fresh crawl. To CONTINUE a previous run where it stopped — without paying again for records you already received — paste the `resumeCursor` value from that run's Output (the run's OUTPUT key). Resume promptly: the previous run's data expires with your account's retention window (free tier: your ~10 most recent runs).

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

Maximum number of records to scrape

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 10
}
```

# 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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/eventective-event-vendor-venue-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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/eventective-event-vendor-venue-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 '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 10
}' |
apify call jungle_synthesizer/eventective-event-vendor-venue-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jungle_synthesizer/eventective-event-vendor-venue-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/aQiNHdQwiB1GqSVcL/builds/xnXuBaueT2rslFE7g/openapi.json
