# Events Scraper for Eventbrite, Meetup and Luma

> Eventbrite scraper that also covers Meetup and Luma. Get events by city, keyword and date with venues, organizers, prices and links. No login.

URL: https://cliqtomedia.com/actors/events-aggregator/

Category: Real estate, travel & cars · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/events-aggregator?fpr=cliqto

Get public events from three sites in one list. Type a city or Online, add keywords and dates. Duplicates are removed for you.

## How to use it: 3 steps

1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `AI` in Keywords. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Get public events from **Eventbrite, Meetup and Luma** in one clean dataset. Type any city (or `Online`), add keywords and dates, and get event names, local start times, venues, organizers, prices and links. No login. A run with 20 events costs about $0.06–$0.07.

- Eventbrite: any city in the world, or `Online`. Up to 25 result pages for each keyword. Prices and organizer names are added for matching events.
- Meetup: any city when you give a country code. One search page for each keyword, usually 20–30 events.
- Luma: about 85 large cities (for example London, New York, Berlin, Austin, São Paulo, Singapore). Other cities are skipped, not failed.

### Good for

- Build a weekly list of tech, music or business events in a city.
- Find events to sponsor, speak at or write about.
- Collect organizer names and event links for outreach research.

### Not a good fit

- It does not log in and does not collect attendee lists, guest emails or host contact details.
- It is not a full archive of a city. Each site shows a limited number of search pages; results change from day to day.
- Some fields are often empty on some sites (for example Meetup prices and venues, or Luma organizers). Empty means "not published", not "free".
- You are responsible for using the data in line with each site's terms and the law in your country.

## Price

Pay per event. Apify bills you, not us.

| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.006 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Event scraped | $0.0032 (from $0.00272 on paid Apify plans) | One saved public event |

- One event: about $0.0092.
- 1,000 events: about $3.21 (2 runs of up to 500).
- Every day 100 events, for 30 days: about $9.78 a month.
- 500 events once a week (4 runs a month): about $6.42 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/events-aggregator?fpr=cliqto

## Questions

### Do I need accounts on these sites?

No. The tool reads public pages without login or API keys.

### Can I get attendee lists?

No. It does not collect attendees, guest emails or host contacts.

### Why do I get fewer events than I asked for?

The sites show a limited number of results. Your max number is a limit, not a promise.

### Can I get only online events?

Yes. Use Online as the city or the online setting.

### Do I need an Eventbrite, Meetup or Luma account?

No. The Actor reads public pages only. It does not need a login, cookies or an API key.

### Does it collect personal data?

No attendee lists or guest emails. For Luma, personal hosts are not saved; only a group or calendar name is shown as `organizer`.

### Why are some prices empty?

Meetup and Luma often do not publish prices on search pages. Empty means unknown, not free. Check `isFree` and the event page.

### How fresh are the results?

Every run reads the sites live. `fetchedAt` shows when each event was read.

## Data fields

- `source` (string): eventbrite, meetup or luma.
- `eventId` (string): Event ID on the source site.
- `title` (string): Public event title.
- `url` (string): Public event URL.
- `startAt` (string): Start in event local time with UTC offset, for example 2026-11-06T18:30:00+00:00.
- `endAt` (string): End in event local time with UTC offset; null if the site does not show it.
- `timezone` (string): IANA time zone of the event, for example Europe/London; null if unknown.
- `venue` (string): Venue name; null for online events or when not shown.
- `address` (string): Street address of the venue when the site shows it.
- `city` (string): City of the venue; null for online events.
- `country` (string): Two-letter country code of the venue; null for online events.
- `online` (boolean): true for online events, false for in-person, null for hybrid or unknown.
- `organizer` (string): Public organizer or group name. Private person names are never included.
- `price` (number): Lowest listed ticket price in currency units. 0 can be a free or donation ticket (see isFree); null if unknown.
- `currency` (string): Ticket price currency, for example GBP; null if unknown.
- `isFree` (boolean): true if all tickets are free; null if unknown.
- `category` (string): Category from the site (Eventbrite only).
- `description` (string): Short public description as plain text (Eventbrite summary, Meetup description); null for Luma.
- `sourceUrl` (string): Search page or API URL that returned this event.
- `fetchedAt` (string): UTC time when the source page was read.

## Input settings

- `location` (string): City name in English, for example London, Berlin, Austin or São Paulo. Type Online for online events only (Eventbrite).
- `countryCode` (string): Two-letter country code, for example GB, US, DE. Needed for Meetup. It also stops Eventbrite from using a city with the same name in another country.
- `stateCode` (string): Optional. For US cities only, for example TX for Austin or OR for Portland.
- `keywords` (array): Up to 5 keywords. An event is kept if any keyword is a whole word in its title, description or category. Leave empty to get all events.
- `sources` (array): Sites to search. Luma covers about 85 big cities. Meetup needs a country code.
- `dateFrom` (string): Optional. Keep events that start on or after this date (YYYY-MM-DD, event local time).
- `dateTo` (string): Optional. Keep events that start on or before this date (YYYY-MM-DD, event local time).
- `online` (boolean): Optional. On: only online events. Off: only in-person events. Leave empty to get both.
- `maxItems` (integer): Maximum events in the result, across all sites. Each saved event is charged, plus a small start fee per run.

## Step by step on Apify

1. Open the Input tab. The form is prefilled with City `London`, Country code `GB`, keyword `AI` and 20 events.
2. Change City if you want. When you change the city, also change Country code (for example `Berlin` + `DE`, `Austin` + `US` + state `TX`).
3. Click Start.
4. Open the Output tab and choose the Events view. Click `url` to open an event.

## Use cases

| Task | Input | You get | Key fields | Next step |
|---|---|---|---|---|
| Weekly city event list | `location`, `countryCode`, `dateFrom`, `dateTo` | Event | `title`, `startAt`, `venue`, `url` | Google Sheets, newsletter |
| Topic events for outreach | `keywords` (for example `["AI","startup"]`) | Event | `title`, `organizer`, `url` | CRM, spreadsheet |
| Online events only | `location`: `Online`, `keywords` | Event | `title`, `startAt`, `timezone`, `url` | Calendar, Slack |
| Free events for a community | `location`, `countryCode`, then filter `isFree` | Event | `isFree`, `price`, `venue`, `url` | Spreadsheet |

## Tips

- Luma works in about 85 big cities. Other cities are skipped, not failed.
- Add a country code to get Meetup results.
- An empty price means unknown, not free. Check the free flag.

## Limits



- Up to 500 events per run. A run usually takes 10 seconds to 2 minutes and stops by itself after about 4 minutes.
- Smaller cities and narrow keywords return fewer events. The Actor stops a search when new pages bring no matching events.
- The sites can change their pages or limit requests. A failed site does not stop the other sites.

## Sample result

```json
{
  "source": "eventbrite",
  "eventId": "1993713935049",
  "title": "BookPeople Presents: Adam Grant - Vibe",
  "url": "https://www.eventbrite.com/e/bookpeople-presents-adam-grant-vibe-tickets-1993713935049",
  "startAt": "2026-10-26T18:00:00-05:00",
  "endAt": "2026-10-26T19:00:00-05:00",
  "timezone": "America/Chicago",
  "venue": "AISD Performing Arts Center",
  "address": "1500 Barbara Jordan Boulevard, Austin, TX 78723",
  "city": "Austin",
  "country": "US",
  "online": false,
  "organizer": "BookPeople",
  "price": 49.95,
  "currency": "USD",
  "isFree": false,
  "category": "Hobbies & Special Interest",
  "description": "BookPeople welcomes Adam Grant in conversation with Matthew McConaughey to celebrate the release of Vibe.",
  "sourceUrl": "https://www.eventbrite.com/d/tx--austin/all-events/",
  "fetchedAt": "2026-10-14T15:03:29.735Z"
}
```

## Use it from code

Actor ID: `cliqtomedia/events-aggregator`

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/events-aggregator").call(run_input={
    "location": "London",
    "countryCode": "GB"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

```bash
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~events-aggregator/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"location": "London", "countryCode": "GB"}'
```

```python
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/events-aggregator")
result = tool.invoke({"run_input": {"location": "London", "countryCode": "GB"}})
print(result)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Similar tools

- [99acres & MagicBricks India Property Scraper - No Login](https://cliqtomedia.com/actors/india-property-listings/)
- [Google Flights Scraper - Prices & Times, No Login](https://cliqtomedia.com/actors/google-flights-scraper/)
- [Redfin & Realtor Listings Scraper (US): Sale, Sold & Rent](https://cliqtomedia.com/actors/us-property-listings/)
