· 15 min read
Meetup + Lu.ma Events Scraper: 17 Data Fields per Record (2026)
Each record extracted by this Actor carries 17 output fields, including event title, date, venue, organizer, and attendee count from Meetup and Lu.ma. At a free-plan price of $5.00 per 1,000 results, you can gather events from specific URLs, search by keyword, or discover trending gatherings worldwide. The Actor offers 2 required and 18 optional input controls. This is suitable for anyone building event-discovery dashboards or tracking community activities, but not for anyone who needs full attendee lists or server-side free-text search on Lu.ma, which the records do not include.
Try it: open Meetup + Lu.ma Events Scraper on Apify, sign in on the free plan and run the prefilled example.
Can you try Meetup + Lu.ma Events Scraper before paying?
Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of Meetup + Lu.ma Events Scraper a month, before run-start charges and platform usage.
The example request further down caps maxItems at 10, so a first run returns at most 10 results and costs at most $0.05 in result charges. That is enough to see the real shape of the data before deciding anything.
Meetup + Lu.ma Events Scraper was last updated on 2026-05-22. It is one of 1,725 Actors CrawlerBros publishes on Apify, which together have 668,977 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.
What does it cost to run Meetup + Lu.ma Events Scraper?
Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.
| Apify plan | Per result | Per 1,000 results |
|---|---|---|
| FREE | $0.005 | $5.00 |
| BRONZE | $0.00433 | $4.33 |
| SILVER | $0.00367 | $3.67 |
| GOLD | $0.003 | $3.00 |
| PLATINUM | $0.003 | $3.00 |
| DIAMOND | $0.003 | $3.00 |
The input control with the largest effect on your bill is maxItems, as result charges apply per item written to the dataset. To minimize cost when exploring, always cap your first runs with a low maxItems value. The example input, which costs at most $0.05 in result charges, provides a cheap way to understand the output structure before committing to larger data volumes.
How do you run Meetup + Lu.ma Events Scraper from the API?
The schema marks 2 of its 20 controls as required: platform, mode. Every value in the payload below comes from the published schema's own prefills, which means you can paste it, swap the token, and get a real result.
Call the synchronous endpoint to start a run and receive dataset items in one request:
curl -X POST "https://api.apify.com/v2/acts/crawlerbros~meetup-luma-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"platform":"meetup","mode":"searchEvents","query":"tech","location":"san francisco","category":"tech","maxItems":10}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"platform": "meetup",
"mode": "searchEvents",
"query": "tech",
"location": "san francisco",
"category": "tech",
"maxItems": 10
}
run = client.actor("crawlerbros~meetup-luma-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
And from Node.js:
import { ApifyClient } from 'apify-client'
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
const input = {
"platform": "meetup",
"mode": "searchEvents",
"query": "tech",
"location": "san francisco",
"category": "tech",
"maxItems": 10
}
const run = await client.actor('crawlerbros~meetup-luma-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
That endpoint blocks until the run completes. Fine while you are testing a handful of records, risky once a run takes minutes: a dropped connection loses the response even though the run itself finished. Switch to an asynchronous start with polling or a webhook before you schedule anything.
Which Meetup + Lu.ma Events Scraper inputs matter, and which can you skip?
The platform and mode controls are required and determine the fundamental behavior of the Actor. For most initial runs, focus on setting platform to either "meetup" or "luma", and then selecting a mode such as "searchEvents" or "byUrl". Many optional settings like proxyGroups can be left at their default values for a first run.
platform(string): Which platform to scrape. Default:"meetup".mode(string): What to scrape. Some modes are platform-specific - see the Mode-by-platform reference in the README. Default:"searchEvents".query(string): Free-text keyword. Required formode=searchEvents.location(string): City + state/country. Examples:san francisco,New York, NY,London, UK. Used by Meetup search (location=) and the Luma nearby city resolver.category(string): Meetup category slug. Filters search results to a topic area.maxItems(integer): Hard cap on emitted records. Default:50.country(string): ISO 3166-1 alpha-2 country code (lowercase). E.g.us,gb,de,fr. Used by Meetup search.eventType(string): In-person, online, or both. Defaults to both.sortBy(string): Sort order for Meetup search results.luma_period(string): Time window for Lu.ma calendar / discover queries.urls(array): Full URLs to scrape. Auto-routes by host:meetup.com/<group>→ group;meetup.com/<group>/events/<id>→ event;lu.ma/<slug>→ event or calendar. Default:[].slugs(array): Lu.ma event/calendar slugs (e.g.sf,h85fumdt) or Meetup group urlnames (e.g.meetup-group-englishkoreanexchange). Default:[].
The other 8 controls, with their defaults, are listed in the input schema on Meetup + Lu.ma Events Scraper on Apify.
Fixed-choice controls: platform accepts meetup (Meetup.com (community events, RSVP groups)), luma (modern events, calendars, conferences); mode accepts 9 values (default searchEvents), including searchEvents (Meetup + Luma), byEvent (By event URL/slug (Meetup + Luma)), byGroup (Meetup only - group profile), groupEvents (Group upcoming events (Meetup only)); category accepts 30 values, including tech, career-business (Career & Business), social-activities (Social Activities), language; country accepts 30 values, including us (United States), ca (Canada), gb (United Kingdom), de (Germany); eventType accepts any, physical (In-person only), online (Online only); sortBy accepts relevance, best (Best match), newest (Newest first), soonest (Soonest first); luma_period accepts upcoming (Upcoming events), past (Past events), all (All events).
What does Meetup + Lu.ma Events Scraper return?
The returned records include essential event details such as name, url, startAt, guestCount, and groupName for Meetup, or calendar.name for Lu.ma. These are ideal for aggregating event data or monitoring specific communities. However, the output conspicuously does not contain full attendee names or server-side keyword search functionality for Lu.ma.
platform(e.g.meetup)id(e.g.314367217)name(e.g.Asian Appreciation BBQ Party at the Park)url(e.g.https://www.meetup.com/meetup-group-englishko...)startAt(e.g.2026-05-16T12:00:00-07:00)eventType(e.g.PHYSICAL)rsvpState(e.g.JOIN_APPROVAL)guestCount(e.g.100)isFree(e.g.true)imageUrlgroupgroupName(e.g.Los Angeles Korean-English Language Exchange ...)groupUrlname(e.g.meetup-group-englishkoreanexchange)venueNamecity(e.g.Los Angeles)country(e.g.US)scrapedAt(e.g.2026-05-09T20:51:08.123456+00:00)
These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.
How do you build the workflow end to end?
Open Meetup + Lu.ma Events Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.
- Set the "platform" control to either "meetup" or "luma" depending on your target source.
- Choose a "mode" that fits your data goal: "searchEvents" for keyword searches, "byUrl" for specific event or group pages, or a discovery mode like "discoverNearby" or "discoverTrending" for broader exploration.
- If using a search mode, populate the "query" field with relevant keywords like "tech" or "marketing". For location-based searches, provide "location" details such as "san francisco".
- For specific URLs, populate the "urls" array. Ensure these are full URLs to events, groups, or calendars.
- Run the Actor with a small "maxItems" limit, for example 10, to check the output structure and ensure the data matches your expectations.
- Review the
name,startAt, andurlfields in the results. If these look correct, you can increase "maxItems" for a larger crawl. - If the output records look consistent but lack full details, consider switching to
byEventfor individual events orbyGroupfor group events to get more comprehensive data.
How do you apply it? Three worked playbooks
These are Meetup + Lu.ma Events Scraper's own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Event-discovery dashboards
Outcome: Build event-discovery dashboards across Meetup + Lu.ma in one feed
Configure: Set platform to "meetup" and "luma" in separate runs. For each, set mode to "searchEvents" and provide a query (e.g., "AI"). Limit maxItems to a few hundred per run initially.
Working method: Execute two separate runs, one for Meetup and one for Lu.ma, using broad query terms. Combine the resulting datasets into a single feed, de-duplicating by event url. Use a scheduled run to fetch new events daily, appending them to your dashboard feed.
Deliverable: A combined dataset of upcoming events from both Meetup and Lu.ma, with fields like name, url, startAt, and guestCount, suitable for populating a dashboard.
Stop condition: More than 10% of records in a given run are missing either name or url.
Use case 2: Local tech meetups
Outcome: Find local tech meetups in a city
Configure: Set platform to "meetup", mode to "searchEvents", query to "tech", location to your target city (e.g., "London, UK"), and category to "tech".
Working method: Start with a specific location and category to narrow down results. Review the first 50 results to ensure relevance. If the initial results are too broad, refine your query or location. Consider running this monthly to capture new events.
Deliverable: A list of tech meetups in a specified city, including event name, url, and startAt, suitable for local community outreach or personal planning.
Stop condition: Fewer than 10 results are returned for a well-known city and a broad category like "tech".
Use case 3: Track new events by community
Outcome: Track new events posted by a community / calendar / organizer
Configure: Set platform to either "meetup" or "luma" as appropriate. Set mode to groupEvents for Meetup or byCalendar for Lu.ma. Provide specific slugs or urls for the communities you want to track.
Working method: Identify the slugs or urls of the specific communities, calendars, or organizers you wish to monitor. Schedule the Actor to run weekly, fetching only upcoming events using luma_period if applicable. Compare new results with previous runs to identify recently posted events.
Deliverable: A delta report or an updated dataset showing only new events posted by your tracked communities since the last run, with full event details.
Stop condition: The groupName (for Meetup) or calendar.name (for Lu.ma) in the output does not match the expected community for your input slugs or urls.
What breaks, and how do you design around it?
- Meetup attendee names are private to each event's host; only counts are returned.
- Lu.ma free-text search is implemented client-side over discover-fetched events (no server-side keyword search exists publicly).
- Past events on Meetup are not indexed by the public find page; use
byUrlwith the specific event link if you have it. - RSVP / register actions are read-only; the actor does not RSVP or register.
When encountering missing descriptions on Meetup's search page, re-run the Actor with byEvent and the specific event URL to fetch the full detail page. For historical Meetup events not found via search, use byUrl if you have the direct link to the past event. If Lu.ma's client-side free-text search isn't sufficient for a broad query, consider refining your lumaCity or lat/lng inputs to narrow the scope.
When should you not use Meetup + Lu.ma Events Scraper?
This Actor is not the best choice if your primary goal is to obtain a comprehensive list of all past events from Meetup's public pages, as its searchEvents mode primarily focuses on upcoming events. For historical data on Meetup, you would need specific event URLs and the byUrl mode, which can be cumbersome for large-scale historical collection. Similarly, if you require direct server-side keyword search on Lu.ma, this Actor's client-side filtering over discover-fetched events might not provide the precision or coverage you need. In such cases, a purpose-built scraper for a specific event platform's archival features, or even directly using the respective platform's official API if available, could be more effective. For LinkedIn events, consider the LinkedIn Events Scraper, or for broader event aggregation from multiple sources beyond Meetup and Lu.ma, explore more specialized Actors like Eventbrite Events Scraper or Facebook Events Scraper.
What should you check before trusting the output?
- Check that the
namefield is present and correctly formatted for all records; missing or malformed names indicate a parsing issue. - Verify that
startAtis a valid date-time string in a consistent format across records; inconsistent dating or null values can break time-series analysis. - Inspect
urlfields to confirm they link to the expected platform (Meetup or Lu.ma) and event or group page, as incorrect routing can fetch irrelevant data. - If
guestCountis a critical field, ensure it is consistently populated and numeric for your chosen platform and mode. Null or non-numeric values should trigger an alert. - For location-based queries, confirm that
cityandcountryfields accurately reflect the intended geographical area, as misidentified locations can skew analysis. - Monitor for
groupNameorcalendar.namewhen scraping by group or calendar; if these are frequently null, theslugsorurlsprovided may be incorrect or the group/calendar no longer exists.
None of this proves a record is correct. It gives a scheduled Meetup + Lu.ma Events Scraper run defined points where it should stop instead of quietly passing bad data downstream.
Frequently asked questions
Do I need a Meetup or Lu.ma account to use this Actor?
No, you do not need a Meetup or Lu.ma account. The Actor is designed to scrape only publicly accessible event pages. It does not require any login credentials, cookies, or special authentication to function, making it straightforward to use right out of the box for public data collection. This simplifies the setup process and ensures broad applicability for public event discovery.
How does Lu.ma search work if there's no visible search bar?
Lu.ma's event discovery is handled through its /discover endpoint. This Actor enumerates featured cities via that endpoint and then fetches each city's upcoming events using Lu.ma's public api.lu.ma/discover/get-paginated-events API. Your query is then filtered client-side from these fetched results. This approach allows the Actor to mimic a search function even if a traditional search bar is not publicly exposed on the Lu.ma website.
How many results can I get on the free plan?
Apify's free plan includes $5.00 of monthly usage without requiring a credit card. At a price of $0.005 per result, this covers up to 1,000 results of this Actor per month. This allows you to perform substantial data collection and testing before needing to consider a paid Apify plan. Each run also incurs the run-start charge, and Apify bills platform usage on top of both.
Why is the event description sometimes missing from the output?
Meetup's search-page Apollo cache only includes the first 100-200 chars of each description. To retrieve the full event description, you need to scrape the event detail page directly. This can be achieved by setting mode to byEvent and providing the specific event URL or ID, which ensures you get the complete body of text.
Are Meetup events available worldwide with this Actor?
Yes, Meetup search functionality through this Actor supports events from any country. You can specify the country parameter using an ISO 3166-1 alpha-2 code (e.g., us, gb, de, jp) to narrow your search to a particular region. This allows for focused data collection based on geographical location, serving a global user base.
Where to go next
When you are ready to run it, open Meetup + Lu.ma Events Scraper on Apify; the free plan covers up to 1,000 results a month.
Start with the Meetup + Lu.ma Events Scraper Actor page for the current input schema, pricing tier, and run history.
If you are comparing approaches rather than committing to one Actor, these category pages list every option we publish:
- Lead generation scrapers covers 104 Actors in this family.
Other Actors we maintain for related data:
- LinkedIn Events Scraper: Scrape LinkedIn Events by keyword search or direct event URLs.
- Eventbrite Events Scraper: Extract events from Eventbrite like title, date, venue, organizer, ticket price, image, tags.
- Facebook Events Scraper: Scrape public Facebook event data without cookies or authentication.
- 10times.com Events Scraper: Scrape trade shows, conferences, and workshops from 10times.com.
- SeatGeek Scraper: Scrape SeatGeek - search live event listings by artist, team, or venue, or browse 156 sports/concert/theater categories.
- StubHub Ticket Marketplace Scraper: Scrape StubHub.com event listings by keyword, artist, team, venue, or category.
- ToDoCanada Events & Attractions Scraper: Scrape ToDoCanada.ca - Canadian events and attractions for 11 cities (Toronto, Vancouver, Calgary, Ottawa, ...).
Related guides:
- LinkedIn Events Scraper: Operating Playbooks and Workflows
- Eventbrite Events Scraper: Up to 2,500 Free Results a Month (2026)
- Facebook Events Scraper: Practical Use Cases and Workflows
- TikTok LIVE Event Stream Scraper: 3 Operational Playbooks
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-25.
Actor last updated by its maintainers on 2026-05-22.
Run outcome figures cover the 30 day public window ending 2026-09-25.
Featured actors
Meetup + Lu.ma Events Scraper
Scrape events from Meetup.com and Lu.ma, title, date, venue, organizer, attendee count, photo, RSVP status, and discovery feeds (search, by group, by calendar, nearby).
Run on Apify ↗