# Eventbrite & Meetup Events Scraper - Events by City & Keyword (`seemuapps/eventbrite-meetup-events-scraper`) Actor

Scrape upcoming Eventbrite and Meetup events for any city and keyword with dates, venues, prices, attendee counts and organizer contacts.

- **URL**: https://apify.com/seemuapps/eventbrite-meetup-events-scraper.md
- **Developed by:** [Andrew](https://apify.com/seemuapps) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 events

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?

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

## Eventbrite & Meetup Events Scraper - Events by City & Keyword

Find every upcoming event in a city across **Eventbrite and Meetup** in one run - with dates, venues, ticket prices, attendee counts and the organizer behind each event. Type a location such as "San Francisco, CA", optionally add keywords like "startup" or "yoga", pick a date range and get one clean row per event, ready to export to JSON, CSV, Excel or Google Sheets. No login or API keys needed.

### What you get

One row per event, in the same shape for both sites:

- **title**, **url**, **description** (summary), **source** (`eventbrite` or `meetup`), **eventId**
- **startAt**, **endAt**, **timezone** - ISO-8601 with the local offset
- **isOnline**, **isFree**, **minPrice**, **maxPrice**, **currency**
- **venueName**, **address**, **city**, **region**, **country**, **latitude**, **longitude**
- **attendeeCount** (Meetup RSVPs), **capacity** (Meetup ticket limit)
- **category** and **tags** (Eventbrite categories / Meetup topics)
- **imageUrl**
- **organizerName**, **organizerUrl**, **organizerId**, **organizerFollowers** (Eventbrite followers / Meetup group members), **organizerEventCount** (total events hosted, with *Fetch organizer details* on)
- **keyword** that surfaced the event and **scrapedAt**

Results are de-duplicated per site across all your keywords.

### Use cases

- **Event lead generation** - venues, caterers, AV companies, photographers and sponsors: find who is organizing events in your city next month and reach out before they book
- **Organizer outreach** - build a list of active organizers and Meetup groups by niche, with follower / member counts to prioritise the biggest ones
- **Competitor event monitoring** - track what conferences, workshops and networking nights your competitors or industry peers are running
- **Local event calendars** - power a "what's on this weekend" page or newsletter for a city, neighbourhood or topic
- **Market research** - measure how many events, at what price points, happen in a category and city over time
- **Speaker and partnership scouting** - discover meetups and conferences in your field that are looking for speakers or sponsors

### How to use

1. Enter a **Location** - a city like `San Francisco, CA`, `London` or `Sydney, Australia`.
2. Optionally add **Keywords**, one per line (`startup`, `wine tasting`, `salsa`). Leave empty to list every upcoming event in the location.
3. Pick a **Date range**: today, tomorrow, this week, this weekend, next week, this month or all upcoming.
4. Tick **Include Eventbrite** and/or **Include Meetup**.
5. Optionally restrict to **Online events only** or **Free events only**.
6. Set **Max events per source** (default 100; `0` for everything the sites return).
7. Turn on **Fetch organizer details** if you want total events hosted per organizer (one extra request per unique organizer).
8. Run the actor - events stream into the **Dataset** tab as they are found.

### Output format

Each dataset record:

```json
{
  "source": "eventbrite",
  "eventId": "1999181441508",
  "url": "https://www.eventbrite.com/e/ai-tech-startup-night-san-francisco-tickets-1999181441508",
  "title": "AI Tech & Startup Night — San Francisco",
  "description": "Enter the room where San Francisco's AI & Tech founders, investors & builders actually connect.",
  "startAt": "2026-09-23T18:00:00-07:00",
  "endAt": "2026-09-23T21:00:00-07:00",
  "timezone": "America/Los_Angeles",
  "isOnline": false,
  "isFree": false,
  "minPrice": 13.58,
  "maxPrice": 59.47,
  "currency": "USD",
  "venueName": "The Liberties",
  "address": "998 Guerrero Street, San Francisco, CA 94110",
  "city": "San Francisco",
  "region": "CA",
  "country": "US",
  "latitude": 37.7552737,
  "longitude": -122.4233797,
  "attendeeCount": null,
  "capacity": null,
  "category": "Business & Professional",
  "tags": ["Startups & Small Business", "Business & Professional", "Networking", "Tech", "Entrepreneurship", "Startup", "Pitch"],
  "imageUrl": "https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F1190341737%2F2821516052131%2F1%2Foriginal.20260805-023941?w=352",
  "organizerName": "Nomad Global Hub",
  "organizerUrl": "https://www.eventbrite.com/o/nomad-global-hub-113231382911",
  "organizerId": "113231382911",
  "organizerFollowers": 1098,
  "organizerEventCount": null,
  "keyword": "startup",
  "scrapedAt": "2026-09-20T08:12:55.353Z"
}
```

A Meetup row looks the same, with `attendeeCount` holding the RSVP count, `organizerName` / `organizerUrl` pointing at the Meetup group and `organizerFollowers` holding the group's member count:

```json
{
  "source": "meetup",
  "eventId": "316099065",
  "url": "https://www.meetup.com/sanfrancisco-startup-pitch-and-networking/events/316099065/",
  "title": "San Francisco Tech Connect: Startups, Investors, Professionals Networking",
  "startAt": "2026-09-21T19:00:00-07:00",
  "endAt": "2026-09-21T22:00:00-07:00",
  "isOnline": false,
  "isFree": true,
  "venueName": "The Treasury",
  "address": "200 Bush St #101, San Francisco, CA 94104, USA",
  "attendeeCount": 8,
  "category": "Career & Business",
  "tags": ["Startup Businesses", "Technology Startups", "Business Referral Networking"],
  "organizerName": "San Francisco Startup Pitch and Networking",
  "organizerUrl": "https://www.meetup.com/sanfrancisco-startup-pitch-and-networking",
  "organizerFollowers": 1440,
  "keyword": "startup"
}
```

### Pricing

One small event per row returned. The price is the same for both sites and regardless of filters, so the cost of a run is simply the number of events you get.

### Tips

- **Several short keywords beat one long phrase** - both sites rank by relevance and thin out quickly on multi-word queries. Results are de-duplicated, so overlapping keywords do not cost extra.
- **Keywords empty + This weekend** is the fastest way to build a full local calendar.
- Eventbrite returns at most about 1,000 events per keyword and location; split large cities by keyword or date range to go deeper.
- **Online events only** on Eventbrite returns virtual events worldwide (Eventbrite does not tie online events to a city); Meetup returns the online events promoted to your location.
- Free / paid is taken from the ticket data at the time of the run. Meetup events with no ticket fee are reported as free even if the organizer collects payment off-platform.
- Turn on **Fetch organizer details** only when you need total events hosted - it roughly doubles run time on lists with many distinct organizers.

### FAQ

**Do I need an Eventbrite or Meetup account?**
No. Only publicly visible events are returned, exactly as an anonymous visitor would see them.

**Why does an Eventbrite row have no attendeeCount?**
Eventbrite does not expose attendee numbers publicly. Meetup rows carry the public RSVP count.

**Can I search more than one city in a run?**
Run the actor once per city (for example with a schedule or the Apify API). Each run resolves a single location on both sites.

**Why do the two sites return a different number of events for the same window?**
They index different organizers, define "this week" slightly differently, and Eventbrite caps deep pagination. The date range is applied in the location's local time zone on both sites.

# Actor input Schema

## `location` (type: `string`):

City to search, e.g. 'San Francisco, CA', 'London', 'Sydney, Australia'. Resolved separately on each site; the best match is used.

## `keywords` (type: `array`):

Optional search terms, one per line (e.g. 'startup', 'yoga', 'wine tasting'). Each keyword is searched separately and results are de-duplicated. Leave empty to list all upcoming events in the location.

## `dateRange` (type: `string`):

Only return events starting inside this window (evaluated in the location's local time zone).

## `includeEventbrite` (type: `boolean`):

Search Eventbrite for matching events.

## `includeMeetup` (type: `boolean`):

Search Meetup for matching events.

## `onlineOnly` (type: `boolean`):

Return only virtual events. Note: Eventbrite online events are global (not tied to the location); Meetup online events are those promoted to the location.

## `freeOnly` (type: `boolean`):

Return only events with free admission.

## `maxItemsPerSource` (type: `integer`):

Maximum events to return from each site across all keywords. 0 = keep paginating until the site runs out of results (Eventbrite stops at about 1,000 per keyword) or the run times out.

## `fetchOrganizerDetails` (type: `boolean`):

Open each organizer / group page once to fill in total events hosted and exact follower or member counts. Adds one extra request per unique organizer.

## Actor input object example

```json
{
  "location": "San Francisco, CA",
  "keywords": [
    "startup"
  ],
  "dateRange": "this-month",
  "includeEventbrite": true,
  "includeMeetup": true,
  "onlineOnly": false,
  "freeOnly": false,
  "maxItemsPerSource": 100,
  "fetchOrganizerDetails": false
}
```

# Actor output Schema

## `results` (type: `string`):

One record per event: source, eventId, url, title, description, startAt, endAt, timezone, isOnline, isFree, minPrice, maxPrice, currency, venueName, address, city, region, country, latitude, longitude, attendeeCount, capacity, category, tags, imageUrl, organizerName, organizerUrl, organizerId, organizerFollowers, organizerEventCount, keyword, scrapedAt.

# 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 = {
    "location": "San Francisco, CA",
    "keywords": [
        "startup"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("seemuapps/eventbrite-meetup-events-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 = {
    "location": "San Francisco, CA",
    "keywords": ["startup"],
}

# Run the Actor and wait for it to finish
run = client.actor("seemuapps/eventbrite-meetup-events-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 '{
  "location": "San Francisco, CA",
  "keywords": [
    "startup"
  ]
}' |
apify call seemuapps/eventbrite-meetup-events-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,seemuapps/eventbrite-meetup-events-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/MB6Uka0CdReOai7RH/builds/RJJwl8UyZ93UYpvIG/openapi.json
