# Event Scraper — Eventbrite, Lu.ma, Partiful & Humanitix (`avinashchby/event-scraper`) Actor

Scrape events from 5 major platforms (Eventbrite, Lu.ma, Partiful, Humanitix) with 8 filter dimensions: keywords, location, date range, event type, industry, format, price, and language. Deduplicates across sources.

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

## Pricing

from $8.00 / 1,000 result processeds

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

## Multi-Source Event Scraper — Eventbrite, Luma, Partiful & Humanitix

> **What this actor does:** Scrapes events from 4 major platforms (Eventbrite, Lu.ma, Partiful, Humanitix) in a single run. Deduplicates across sources and filters by keyword, location, date range, event type, price, and format. No API keys needed.

### Features

- **4 platforms in one run**: Eventbrite, Lu.ma, Partiful, and Humanitix
- **Smart deduplication**: Same event on multiple platforms? Counted once
- **8 filter dimensions**: keywords, city/country, date range, event type, industry, format (online/in-person), price, and language
- **Output fields**: name, date, location, venue, organizer, ticket price, description, image URL, source
- **JSON output** compatible with Airtable, Notion, Make.com, and Zapier

### Use Cases

- **Event research**: Find all conferences and workshops in your city next month
- **Competitive tracking**: Monitor which platforms list the same events
- **Market analysis**: Compare event pricing and formats across platforms
- **Content curation**: Build event newsletters from multiple sources
- **Lead generation**: Discover events in your niche for sponsorship or partnership

### Input Parameters

| Parameter | Type | Description | Default |
|-----------|------|-------------|---------|
| `sources` | array | Platforms: `["eventbrite", "luma", "partiful", "humanitix"]` | all 4 |
| `query` | string | Keyword search (e.g. "AI summit", "crypto meetup") | — |
| `location` | object | City/country filter: `{"city": "Austin", "country": "US"}` | — |
| `dateFrom` | string | Start date filter (YYYY-MM-DD) | — |
| `dateTo` | string | End date filter (YYYY-MM-DD) | — |
| `eventTypes` | array | Filter by type: `["conference", "workshop", "hackathon"]` | all |
| `industries` | array | Industry keywords to match | — |
| `format` | string | `"online"`, `"in-person"`, or `"both"` | `"both"` |
| `priceType` | string | `"free"`, `"paid"`, or `"both"` | `"both"` |
| `language` | string | ISO 639-1 code (e.g. `"en"`) | — |
| `maxResults` | number | Max total events across all sources | 20 |
| `maxResultsPerSource` | number | Max events per platform | 10 |

### Output Fields

| Field | Description |
|-------|-------------|
| `name` | Event title |
| `url` | Event page URL |
| `startAt` | ISO 8601 start datetime |
| `endDate` | ISO 8601 end datetime |
| `description` | Plain text description |
| `location` | "City, Country" string |
| `venue` | Object: name, address, city, country, lat, lng |
| `isOnline` | Boolean |
| `format` | Event format classification |
| `isFree` | Boolean |
| `ticketPrice` | Price string or "Free" |
| `organizer` | Organizer name |
| `imageUrl` | Event cover image |
| `source` | Platform name |
| `scrapedAt` | Scrape timestamp |

### Example Input

```json
{
  "sources": ["eventbrite", "luma", "partiful"],
  "query": "AI startup",
  "location": { "city": "San Francisco", "country": "US" },
  "dateFrom": "2026-06-01",
  "dateTo": "2026-08-31",
  "eventTypes": ["conference", "workshop"],
  "priceType": "both",
  "maxResults": 50,
  "maxResultsPerSource": 20
}
```

### Example Output

```json
{
  "name": "SF AI Founders Summit",
  "url": "https://www.eventbrite.com/e/sf-ai-founders-summit-tickets-123456789",
  "startAt": "2026-07-15T09:00:00.000Z",
  "location": "San Francisco, US",
  "venue": { "name": "Moscone Center", "city": "San Francisco", "country": "US" },
  "isOnline": false,
  "format": "conference",
  "isFree": false,
  "ticketPrice": "199 USD",
  "organizer": "TechEvents SF",
  "source": "eventbrite",
  "scrapedAt": "2026-05-17T10:00:00.000Z"
}
```

### Questions answered by this actor

- What AI conferences are happening in San Francisco this summer?
- Which platforms list the most events in my city?
- What free tech workshops are coming up next month?
- Where are the best networking events for startups?
- How do ticket prices compare across Eventbrite and Humanitix?

### Frequently Asked Questions

**Does this require API keys?** No. Events are scraped from public pages on each platform.

**How does deduplication work?** Events are matched by normalized name + start date + city. If the same event appears on multiple platforms, only one is kept.

**Why not Meetup or Hopin?** Meetup blocks datacenter IPs with Cloudflare. Hopin (hopin.to) was shut down after the RingCentral acquisition.

**Can I scrape just one source?** Yes — set `sources: ["eventbrite"]` or any single platform.

**How often should I run this?** Platforms refresh their listings frequently. Running daily or weekly keeps your dataset current.

# Actor input Schema

## `sources` (type: `array`):

Select which event platforms to scrape.

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

Search query passed to each source's search endpoint.

## `location` (type: `object`):

Filter by city/country or by lat/lng/radiusKm. Use one approach, not both.

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

Include only events starting on or after this date (YYYY-MM-DD).

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

Include only events starting on or before this date (YYYY-MM-DD).

## `eventTypes` (type: `array`):

Only include events of these types. Leave empty for all types.

## `industries` (type: `array`):

Filter by industry keywords matched against event description and tags.

## `format` (type: `string`):

Filter by online, in-person, or return both.

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

Filter by free, paid, or return both.

## `language` (type: `string`):

ISO 639-1 language code (e.g. en, es, fr). Leave empty for all languages.

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

Hard cap on total events returned across all sources.

## `maxResultsPerSource` (type: `integer`):

Cap per platform to prevent one source dominating results.

## `proxyConfiguration` (type: `object`):

Optional. Runs use a direct connection by default; select a proxy here if a source rate-limits you.

## Actor input object example

```json
{
  "sources": [
    "eventbrite",
    "luma",
    "partiful",
    "humanitix"
  ],
  "query": "tech conference",
  "location": {
    "city": "Austin",
    "country": "US"
  },
  "industries": [
    "AI & Machine Learning",
    "Fintech"
  ],
  "format": "both",
  "priceType": "both",
  "language": "en",
  "maxResults": 20,
  "maxResultsPerSource": 10
}
```

# Actor output Schema

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

All scraped events with venue details, pricing, and source attribution.

# 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 = {
    "sources": [
        "eventbrite",
        "luma",
        "partiful",
        "humanitix"
    ],
    "query": "tech conference",
    "location": {
        "city": "Austin",
        "country": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("avinashchby/event-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 = {
    "sources": [
        "eventbrite",
        "luma",
        "partiful",
        "humanitix",
    ],
    "query": "tech conference",
    "location": {
        "city": "Austin",
        "country": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("avinashchby/event-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 '{
  "sources": [
    "eventbrite",
    "luma",
    "partiful",
    "humanitix"
  ],
  "query": "tech conference",
  "location": {
    "city": "Austin",
    "country": "US"
  }
}' |
apify call avinashchby/event-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,avinashchby/event-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/5npoXNsOPcXPColEd/builds/fSPUo7bTXAyUdg3sq/openapi.json
