# Event Intelligence Hub — Event Scraper + Lead Enrichment (`avinashchby/event-intelligence-hub`) Actor

Discover events from Eventbrite, extract speakers/sponsors/agenda from event websites, and enrich organizer contacts. One actor, 4 input modes, unlimited intelligence.

- **URL**: https://apify.com/avinashchby/event-intelligence-hub.md
- **Developed by:** [Avinash](https://apify.com/avinashchby) (community)
- **Categories:** Lead generation, Automation, AI
- **Stats:** 2 total users, 1 monthly users, 33.3% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Event Intelligence Hub — Eventbrite Scraper & Event Data Extractor

**Scrape events from Eventbrite, extract speakers, sponsors, and agendas from conference websites, and enrich organizer contacts for lead generation.** The most powerful event scraper and event data extraction tool on the Apify platform.

---

### What is Event Intelligence Hub?

Event Intelligence Hub is an all-in-one **event scraper** and **event data extractor** designed for marketers, sales teams, event aggregators, and researchers. It combines four powerful discovery modes into a single Apify actor:

1. **Eventbrite Scraper** — Search and scrape events from Eventbrite by keyword, city, category, date, and price
2. **URL Batch Processor** — Scrape structured data from any event URL (Eventbrite, Facebook, or standalone event websites)
3. **Organizer Tracker** — Monitor events by specific organizers for competitive intelligence and lead generation
4. **Event Website Deep Dive** — Extract speakers, sponsors, agendas, and contact info from conference and event websites

Unlike simple Eventbrite API alternatives, this actor handles public search pages, enriches data with detail-page crawling, and extracts B2B lead information from organizer websites.

---

### 🎯 Who Uses This Event Scraper?

- **Event Aggregators** — Build event listing platforms, newsletters, and apps
- **B2B Sales & Lead Generation Teams** — Find event organizers, sponsors, and speakers with contact details
- **Market Researchers** — Track event trends, pricing, and attendance by city or industry
- **Competitive Intelligence Analysts** — Monitor competitor events, speakers, and sponsorships
- **Content Creators** — Auto-generate event roundups, "best conferences" lists, and industry calendars
- **Recruiters** — Find hiring events, career fairs, and networking meetups

---

### 🔍 4 Input Modes

#### 1. Quick Search — Eventbrite Scraper
Search and scrape events from Eventbrite with filters. The fastest way to build an event dataset.

**Use it for:**
- "Find all AI conferences in San Francisco this month"
- "List free tech meetups in London next week"
- "Scrape online marketing webinars happening tomorrow"
- "Extract all music festivals in Austin"

**Input parameters:** `query`, `city`, `country`, `category`, `dateFilter`, `priceType`, `isOnline`, `maxResults`

#### 2. URL Batch — Event Page Scraper
Paste event URLs and get fully structured data. Works with Eventbrite, Facebook Events, and any event website.

**Use it for:**
- Processing a list of event URLs from a spreadsheet
- Scraping event details from curated conference lists
- Extracting data from event pages your team has already discovered

**Input parameter:** `urls`

#### 3. Organizer Tracker — Competitor Event Monitoring
Find all events published by a specific organizer. Perfect for tracking competitor activity and building organizer databases.

**Use it for:**
- Tracking all events by a conference company (e.g., TechCrunch, Web Summit)
- Monitoring competitor event schedules and pricing strategies
- Building a database of event organizers for sales outreach
- Finding repeat sponsors and speakers across an organizer's events

**Input parameters:** `organizerName`, `organizerUrl`, `city`

#### 4. Event Website Deep Dive — Conference Data Extraction
Extract rich structured data from standalone event and conference websites:

| Data Point | Extracted Fields |
|-----------|------------------|
| **Speakers** | Name, title, company, LinkedIn URL, bio |
| **Sponsors** | Company name, tier (platinum/gold/silver), logo, website |
| **Agenda / Schedule** | Time, session title, session type, speakers |
| **Contacts** | Email, phone, official website, social links |
| **Venue** | Name, address, city, country |
| **Tickets** | Price tiers, early-bird deadlines, availability |

**Input parameter:** `eventWebsiteUrls`

---

### 📊 3 Output Detail Levels

Choose how much data you need per event:

| Level | Data Included | Best For |
|-------|--------------|----------|
| **Simple** | Title, date, location, URL, organizer name | Quick lists, newsletters, calendar feeds |
| **Standard** | + description, price, category, image, attendee count | CRM import, Google Sheets, Airtable, Notion |
| **Comprehensive** | + organizer emails, phones, LinkedIn, Twitter; speakers; sponsors; agenda | Lead generation, sales outreach, account research |

#### Comprehensive Output Example

```json
{
  "title": "SaaStr Annual 2026",
  "startDate": "2026-09-15T09:00:00-07:00",
  "endDate": "2026-09-17T18:00:00-07:00",
  "venueName": "San Mateo County Event Center",
  "venueCity": "San Mateo",
  "venueCountry": "US",
  "isOnline": false,
  "isFree": false,
  "priceRange": "$499 - $1,299",
  "category": "Technology",
  "url": "https://www.eventbrite.com/e/saastr-annual-2026",
  "organizer": {
    "name": "SaaStr",
    "website": "https://www.saastr.com",
    "emails": ["events@saastr.com"],
    "phones": ["+1-555-0199"],
    "linkedin": "https://linkedin.com/company/saastr",
    "twitter": "@SaaStr"
  },
  "speakers": [
    { "name": "Jason Lemkin", "title": "CEO", "company": "SaaStr", "linkedin": "..." }
  ],
  "sponsors": [
    { "name": "Stripe", "tier": "Platinum", "website": "https://stripe.com" }
  ],
  "agenda": [
    { "time": "09:00", "title": "Opening Keynote", "sessionType": "Keynote", "speakers": ["Jason Lemkin"] }
  ],
  "source": "eventbrite",
  "scrapedAt": "2026-05-13T12:00:00Z"
}
````

***

### 🔧 Full Input Parameter Reference

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `mode` | string | `quickSearch` | `quickSearch` / `urlBatch` / `organizerTracker` / `eventWebsiteDeepDive` |
| `query` | string | — | Search keywords (e.g., `"AI summit"`, `"crypto meetup"`, `"career fair"`) |
| `city` | string | — | City name (e.g., `"San Francisco"`, `"London"`, `"Berlin"`) |
| `country` | string | `us` | 2-letter country code: `us`, `gb`, `de`, `fr`, `ca`, `au`, etc. |
| `category` | string | — | Event category filter: `technology`, `business`, `music`, `food`, `sports`, etc. |
| `dateFilter` | string | `any` | Preset: `today`, `tomorrow`, `this-weekend`, `this-week`, `next-week`, `this-month`, `next-month` |
| `dateFrom` | string | — | Custom start date (`YYYY-MM-DD`) — overrides `dateFilter` |
| `dateTo` | string | — | Custom end date (`YYYY-MM-DD`) — overrides `dateFilter` |
| `priceType` | string | `both` | Filter by ticket price: `free`, `paid`, `both` |
| `isOnline` | boolean | `false` | Only virtual / online events |
| `urls` | array | — | Event URLs to scrape (for URL Batch mode) |
| `organizerName` | string | — | Organizer to track (for Organizer Tracker mode) |
| `organizerUrl` | string | — | Organizer profile or website URL |
| `eventWebsiteUrls` | array | — | Event website URLs for speaker/sponsor/agenda extraction |
| `maxResults` | number | `100` | Maximum events to return (1–1000) |
| `maxPages` | number | `10` | Maximum search result pages to scrape (1–50) |
| `outputDetail` | string | `standard` | `simple` / `standard` / `comprehensive` |
| `enrichOrganizerContacts` | boolean | `true` | Extract emails, phones, and social links from organizer websites (Comprehensive mode) |
| `deduplicate` | boolean | `true` | Remove duplicate events across pages and sources |
| `minAttendees` | number | `0` | Filter out events with fewer attendees (0 = no filter) |

***

### 💡 Example Inputs

#### Example 1: Scrape AI Events in San Francisco (Comprehensive)

```json
{
  "mode": "quickSearch",
  "query": "artificial intelligence",
  "city": "San Francisco",
  "country": "us",
  "category": "technology",
  "dateFilter": "this-month",
  "outputDetail": "comprehensive",
  "enrichOrganizerContacts": true,
  "maxResults": 50
}
```

#### Example 2: Find Free Tech Meetups in London

```json
{
  "mode": "quickSearch",
  "query": "tech meetup",
  "city": "London",
  "country": "gb",
  "priceType": "free",
  "dateFilter": "next-week",
  "outputDetail": "standard",
  "maxResults": 100
}
```

#### Example 3: Track Competitor Events

```json
{
  "mode": "organizerTracker",
  "organizerName": "TechCrunch",
  "city": "San Francisco",
  "outputDetail": "comprehensive",
  "maxResults": 50
}
```

#### Example 4: Extract Conference Data from Event Websites

```json
{
  "mode": "eventWebsiteDeepDive",
  "eventWebsiteUrls": [
    "https://example-conference.com",
    "https://another-summit.org"
  ],
  "outputDetail": "comprehensive"
}
```

***

### 🔗 Integrations & Export

Event Intelligence Hub outputs clean JSON that integrates seamlessly with:

- **Airtable** — Import via CSV or API for event databases
- **Notion** — Build event tracker databases with rich properties
- **Google Sheets** — Direct CSV export for spreadsheet analysis
- **Zapier / Make** — Trigger workflows on new event discovery
- **HubSpot / Salesforce** — Import organizer contacts as leads
- **Slack / Discord** — Post new events to team channels
- **n8n** — Build custom automation pipelines

**Export formats from Apify:** JSON, JSONL, CSV, HTML Table, RSS, XML

***

### 💰 Pricing & Cost Estimates

Event Intelligence Hub is designed to be cost-effective at any scale:

| Task Type | Compute Cost | Speed |
|-----------|-------------|-------|
| Eventbrite search (per event) | ~$0.001 | Very fast (HTTP-based) |
| Event detail enrichment (per event) | ~$0.002 | Fast (HTTP-based) |
| Organizer contact enrichment (per org) | ~$0.005 | Fast |
| Event website deep dive (per site) | ~$0.01–$0.03 | Medium (Playwright-based) |

**Example run costs:**

- 100 Eventbrite events (Standard detail): **~$0.10**
- 100 Eventbrite events (Comprehensive + organizer enrichment): **~$0.50**
- 10 Conference websites (Deep dive): **~$0.20**

***

### 🚀 Top Use Cases

#### Event Aggregation & Listing Platforms

Scrape thousands of events from Eventbrite by city and category to power event discovery apps, newsletters, or community calendars.

#### B2B Lead Generation & Sales Outreach

Find event organizers, conference sponsors, and speakers. Enrich with emails, phones, and social links for outbound sales campaigns.

#### Market Research & Trend Analysis

Track event volume, pricing trends, and attendance estimates by industry and geography over time.

#### Competitive Intelligence

Monitor competitor event activity: what events they run, how often, where, at what price point, and who sponsors them.

#### Content Marketing & SEO

Auto-generate "Top 50 Tech Conferences in 2026" or "Best Free Marketing Events in New York" blog posts with fresh data.

#### Recruitment & Talent Acquisition

Find hiring events, career fairs, and networking meetups in your target cities and industries.

***

### ⚠️ Known Limitations

- **Eventbrite rate limits**: Public search pages may throttle heavy usage. Use `maxPages` and `maxResults` to stay within limits.
- **Facebook Events**: Not directly supported. Use dedicated Facebook Event scrapers for Facebook-specific data.
- **Organizer enrichment accuracy**: Email/phone extraction depends on publicly available contact info on organizer websites. Not all organizers publish contact details.
- **Website deep dive coverage**: Speaker/sponsor/agenda extraction works best on standard conference site templates. Custom-built event sites may require manual mapping.
- **Dynamic content**: Some event websites load content via JavaScript. The actor uses Playwright for deep dives to handle JS rendering.

***

### ❓ Frequently Asked Questions (FAQ)

#### Can I scrape events from any city worldwide?

Yes. Use the `city` and `country` parameters. The actor supports any city that Eventbrite indexes, including major cities in the US, UK, Canada, Australia, Germany, France, India, and more.

#### Is this an official Eventbrite API alternative?

No — this is a web scraper that extracts data from Eventbrite's public search and event pages. It does not use the official Eventbrite API, so there are no API key requirements or rate limits tied to an API plan.

#### Can I get attendee lists or ticket buyer data?

No. This actor only scrapes publicly visible event information (titles, descriptions, dates, venues, organizer names). Private attendee data is not accessible.

#### How do I export results to Excel or Google Sheets?

Run the actor, then click **Export** in the Apify Console dataset. Choose CSV format and import into Excel or Google Sheets. You can also use the Apify API to automate exports.

#### Can I schedule this actor to run daily?

Yes. In the Apify Console, go to your actor's **Schedules** tab and set up a cron schedule (e.g., every day at 9 AM) to automatically scrape new events.

#### Does it work with Zapier or Make?

Yes. Use the Apify integration in Zapier or Make to trigger this actor and push results to 5,000+ apps.

#### What data can I extract from conference websites?

The Event Website Deep Dive mode extracts speakers (name, title, company, LinkedIn), sponsors (name, tier, website), agenda (time, title, session type), and contact details (email, phone, social links) when publicly available.

#### How accurate is the organizer contact enrichment?

Contact enrichment crawls the organizer's website and public profiles to find emails, phones, and social links. Accuracy depends on how much contact info the organizer has published publicly. Typically 40–70% of organizers yield at least one email or social link.

***

### 🏷️ Keywords & Tags

Event scraper, Eventbrite scraper, event data extractor, conference scraper, event crawler, event listing scraper, event aggregator, event API alternative, scrape events by city, event lead generation, organizer contact scraper, speaker extraction, sponsor extraction, event agenda scraper, eventbrite data extraction, event marketing tool, competitive event intelligence, event monitoring, event discovery API, event scraping tool, event dataset builder, conference data extraction, event enrichment, B2B event leads, event sales intelligence, event research tool, event tracker scraper, event calendar scraper, meetup scraper, webinar scraper, event URL scraper, event website parser.

***

### 📄 License

MIT — feel free to fork, customize, and deploy your own event scraping pipelines.

***

*Built with [Crawlee](https://crawlee.dev) and [Playwright](https://playwright.dev) on the [Apify platform](https://apify.com).*

# Actor input Schema

## `mode` (type: `string`):

Choose how you want to discover events

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

Keywords to search for (e.g. 'AI summit', 'crypto meetup')

## `city` (type: `string`):

City name (e.g. 'San Francisco', 'London')

## `country` (type: `string`):

2-letter country code: us, gb, de, etc.

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

Event category filter: technology, business, music, food, etc.

## `dateFilter` (type: `string`):

Preset date range for events

## `priceType` (type: `string`):

Filter by ticket price

## `isOnline` (type: `boolean`):

Only show virtual/online events

## `urls` (type: `array`):

Event URLs to scrape (for URL Batch mode)

## `organizerName` (type: `string`):

Organizer to track (for Organizer Tracker mode)

## `organizerUrl` (type: `string`):

Organizer profile or website URL

## `eventWebsiteUrls` (type: `array`):

Event website URLs for speaker/sponsor/agenda extraction

## `maxResults` (type: `integer`):

Maximum number of events to return

## `maxPages` (type: `integer`):

Maximum search pages to scrape

## `outputDetail` (type: `string`):

How much data to return per event

## `enrichOrganizerContacts` (type: `boolean`):

Extract emails, phones, and social links from organizer websites (Comprehensive mode only)

## `deduplicate` (type: `boolean`):

Remove duplicate events across platforms

## `minAttendees` (type: `integer`):

Filter out events with fewer attendees (0 = no filter)

## `dateFrom` (type: `string`):

Override dateFilter with a specific start date (YYYY-MM-DD)

## `dateTo` (type: `string`):

Override dateFilter with a specific end date (YYYY-MM-DD)

## Actor input object example

```json
{
  "mode": "quickSearch",
  "country": "us",
  "dateFilter": "any",
  "priceType": "both",
  "isOnline": false,
  "urls": [
    "https://www.eventbrite.com/e/example-event-tickets-1234567890"
  ],
  "eventWebsiteUrls": [
    "https://example-conference.com"
  ],
  "maxResults": 100,
  "maxPages": 10,
  "outputDetail": "standard",
  "enrichOrganizerContacts": true,
  "deduplicate": true,
  "minAttendees": 0
}
```

# 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 = {
    "urls": [
        "https://www.eventbrite.com/e/example-event-tickets-1234567890"
    ],
    "eventWebsiteUrls": [
        "https://example-conference.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("avinashchby/event-intelligence-hub").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 = {
    "urls": ["https://www.eventbrite.com/e/example-event-tickets-1234567890"],
    "eventWebsiteUrls": ["https://example-conference.com"],
}

# Run the Actor and wait for it to finish
run = client.actor("avinashchby/event-intelligence-hub").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 '{
  "urls": [
    "https://www.eventbrite.com/e/example-event-tickets-1234567890"
  ],
  "eventWebsiteUrls": [
    "https://example-conference.com"
  ]
}' |
apify call avinashchby/event-intelligence-hub --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Event Intelligence Hub — Event Scraper + Lead Enrichment",
        "description": "Discover events from Eventbrite, extract speakers/sponsors/agenda from event websites, and enrich organizer contacts. One actor, 4 input modes, unlimited intelligence.",
        "version": "1.0",
        "x-build-id": "q22mWCTJfYfxb35dp"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/avinashchby~event-intelligence-hub/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-avinashchby-event-intelligence-hub",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/avinashchby~event-intelligence-hub/runs": {
            "post": {
                "operationId": "runs-sync-avinashchby-event-intelligence-hub",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/avinashchby~event-intelligence-hub/run-sync": {
            "post": {
                "operationId": "run-sync-avinashchby-event-intelligence-hub",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Input Mode",
                        "enum": [
                            "quickSearch",
                            "urlBatch",
                            "organizerTracker",
                            "eventWebsiteDeepDive"
                        ],
                        "type": "string",
                        "description": "Choose how you want to discover events",
                        "default": "quickSearch"
                    },
                    "query": {
                        "title": "Search Keywords",
                        "type": "string",
                        "description": "Keywords to search for (e.g. 'AI summit', 'crypto meetup')"
                    },
                    "city": {
                        "title": "City",
                        "type": "string",
                        "description": "City name (e.g. 'San Francisco', 'London')"
                    },
                    "country": {
                        "title": "Country Code",
                        "type": "string",
                        "description": "2-letter country code: us, gb, de, etc.",
                        "default": "us"
                    },
                    "category": {
                        "title": "Category",
                        "type": "string",
                        "description": "Event category filter: technology, business, music, food, etc."
                    },
                    "dateFilter": {
                        "title": "Date Range",
                        "enum": [
                            "any",
                            "today",
                            "tomorrow",
                            "this-weekend",
                            "this-week",
                            "next-week",
                            "this-month",
                            "next-month"
                        ],
                        "type": "string",
                        "description": "Preset date range for events",
                        "default": "any"
                    },
                    "priceType": {
                        "title": "Price Type",
                        "enum": [
                            "free",
                            "paid",
                            "both"
                        ],
                        "type": "string",
                        "description": "Filter by ticket price",
                        "default": "both"
                    },
                    "isOnline": {
                        "title": "Online Only",
                        "type": "boolean",
                        "description": "Only show virtual/online events",
                        "default": false
                    },
                    "urls": {
                        "title": "Event URLs",
                        "type": "array",
                        "description": "Event URLs to scrape (for URL Batch mode)"
                    },
                    "organizerName": {
                        "title": "Organizer Name",
                        "type": "string",
                        "description": "Organizer to track (for Organizer Tracker mode)"
                    },
                    "organizerUrl": {
                        "title": "Organizer URL",
                        "type": "string",
                        "description": "Organizer profile or website URL"
                    },
                    "eventWebsiteUrls": {
                        "title": "Event Website URLs",
                        "type": "array",
                        "description": "Event website URLs for speaker/sponsor/agenda extraction"
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of events to return",
                        "default": 100
                    },
                    "maxPages": {
                        "title": "Max Pages",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum search pages to scrape",
                        "default": 10
                    },
                    "outputDetail": {
                        "title": "Output Detail",
                        "enum": [
                            "simple",
                            "standard",
                            "comprehensive"
                        ],
                        "type": "string",
                        "description": "How much data to return per event",
                        "default": "standard"
                    },
                    "enrichOrganizerContacts": {
                        "title": "Enrich Organizer Contacts",
                        "type": "boolean",
                        "description": "Extract emails, phones, and social links from organizer websites (Comprehensive mode only)",
                        "default": true
                    },
                    "deduplicate": {
                        "title": "Deduplicate",
                        "type": "boolean",
                        "description": "Remove duplicate events across platforms",
                        "default": true
                    },
                    "minAttendees": {
                        "title": "Minimum Attendees",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Filter out events with fewer attendees (0 = no filter)",
                        "default": 0
                    },
                    "dateFrom": {
                        "title": "Custom Start Date",
                        "type": "string",
                        "description": "Override dateFilter with a specific start date (YYYY-MM-DD)"
                    },
                    "dateTo": {
                        "title": "Custom End Date",
                        "type": "string",
                        "description": "Override dateFilter with a specific end date (YYYY-MM-DD)"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
