Eventbrite logoMeetup logoLuma logo

Property & travel · Live on Apify

Events Scraper for Eventbrite, Meetup and Luma

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

About $3.21 for 1,000 events$0.0032 per event + $0.006 per run. One run gives up to 500 events. Apify bills you, not us.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

eventId1993713935049
titleBookPeople Presents: Adam Grant - Vibe
urlhttps://www.eventbrite.com/e/bookpeople-presents-adam-grant-vibe-ticke…

How to use it: 3 steps

  1. Make a free Apify accountApify 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 StartNo 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 resultsWhen 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.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

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.

Who uses it

Newsletter writers

Build a weekly list of events in your city.

Marketers and sponsors

Find events to sponsor or speak at.

Community managers

Find free and online events for your members.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

What you pay forPriceWhen
Start fee$0.006Charged 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

Examples

  • 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. That is enough for about 1,500 events.

Prices checked on 24 October 2026. See the current price on Apify.

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.

Details

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
TaskInputYou getKey fieldsNext step
Weekly city event listlocation, countryCode, dateFrom, dateToEventtitle, startAt, venue, urlGoogle Sheets, newsletter
Topic events for outreachkeywords (for example ["AI","startup"])Eventtitle, organizer, urlCRM, spreadsheet
Online events onlylocation: Online, keywordsEventtitle, startAt, timezone, urlCalendar, Slack
Free events for a communitylocation, countryCode, then filter isFreeEventisFree, price, venue, urlSpreadsheet
Tips for better results
  • 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 and good to know
  • 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

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one 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. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
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)
cURL
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"}'
LangChain · langchain-apify
# 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)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Data fields (20)
FieldTypeMeaning
sourcestringeventbrite, meetup or luma.
eventIdstringEvent ID on the source site.
titlestringPublic event title.
urlstringPublic event URL.
startAtstringStart in event local time with UTC offset, for example 2026-11-06T18:30:00+00:00.
endAtstringEnd in event local time with UTC offset; null if the site does not show it.
timezonestringIANA time zone of the event, for example Europe/London; null if unknown.
venuestringVenue name; null for online events or when not shown.
addressstringStreet address of the venue when the site shows it.
citystringCity of the venue; null for online events.
countrystringTwo-letter country code of the venue; null for online events.
onlinebooleantrue for online events, false for in-person, null for hybrid or unknown.
organizerstringPublic organizer or group name. Private person names are never included.
pricenumberLowest listed ticket price in currency units. 0 can be a free or donation ticket (see isFree); null if unknown.
currencystringTicket price currency, for example GBP; null if unknown.
isFreebooleantrue if all tickets are free; null if unknown.
categorystringCategory from the site (Eventbrite only).
descriptionstringShort public description as plain text (Eventbrite summary, Meetup description); null for Luma.
sourceUrlstringSearch page or API URL that returned this event.
fetchedAtstringUTC time when the source page was read.
Input settings (9)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Citylocationstring"London"
Country codecountryCodestring"GB"
US state codestateCodestring
Keywordskeywordsarray["AI"]
Event sitessourcesarray["eventbrite", "meetup", "luma"]
From datedateFromstring
To datedateTostring
Online or in persononlineboolean
Maximum eventsmaxItemsinteger20

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure