Meetup Events Scraper
Pricing
from $0.45 / 1,000 events
Meetup Events Scraper
Find public Meetup events and groups by keyword, location, or URL. Save structured event, group, and sampled member records with schedules, locations, attendance, fees, hosts, profiles, and source links.
Pricing
from $0.45 / 1,000 events
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
🧭 Find public Meetup events and groups
For event researchers, local planners, community builders, and developers, this Actor returns structured public event, group, and sampled member data. Use titles, descriptions, source links, schedules, formats, locations, attendance, fees, topics, hosts, group profiles, and public member details in your own research or data workflow.
- Find nearby public events with Free Meetups Near Me using a location and optional event filters.
- Browse public groups for Social Groups For Adults Near Me by topic and location.
- Explore public group data with Free Social Groups For Adults Near Me and a local search.
- Find public group options for Hobby Clubs To Join Near Me with names, locations, and source links.
- Review public Meetup pages for Places To Meet New People Near Me with useful source details.
- Look for local event options through Good Places To Meet Up And Talk with dates, formats, and locations.
- Explore public Meetup choices for How To Meet New Friends As An Adult in one focused run.
📚 See event, group, and member records
The default dataset can contain three row shapes: event results, group results, and group member results. Optional fields appear when Meetup publishes them. Public source values are kept as returned, and missing values are not guessed.
Event rows
Event rows describe public upcoming Meetup events. They can include the event schedule, status, format, online or venue details, attendance, fees, topics, media, hosts, and the related group.
Group rows
Group rows describe public Meetup groups. They can include the group description, location, member count, category, privacy, rating, reviews, and public social links.
Group member rows
Group member rows contain publicly listed member profiles sampled from a submitted group. They can include the member name, profile link, username, bio, role, location, join date, photo, and related group.
▶️ Run a focused Meetup search
Choose one result type per run: Events, Groups, or Group members. Events can be found by keyword and location, by location, from event URLs, or from group URLs. Groups can be found by keyword and location or from group URLs. Group members are sampled from group URLs.
First-match handling
The Actor saves the first eligible event, group, or member occurrence as soon as it finds it. If the same source item appears again through another keyword, URL, or similar submitted value, the later match is ignored. The saved row keeps the source context from the first match only.
Limits
Maximum results is an optional positive limit. Leave it empty to return all available records until the source is exhausted. For Group members, the value is the number of member records to sample. The source may provide fewer records than the limit.
⚙️ Input
Choose resultType first, then fill the search method and fields that apply to it. Fields for other search choices are ignored.
Input fields
| Field | Type | What it does |
|---|---|---|
resultType | string | Chooses event, group, or groupMember rows. |
eventDiscoveryMethod | string | Chooses how to find events: keywordLocation, location, eventUrls, or groupUrls. |
eventUrls | object[] | Public Meetup event page objects to retrieve when the event method is eventUrls. |
eventUrls[].url | string | A public Meetup event page URL. |
groupDiscoveryMethod | string | Chooses how to find groups: keywordLocation or groupUrls. |
keywords | string[] | Words or phrases for event or group searches that use keywordLocation. |
location | object | A city and country, or a latitude and longitude, for supported event and group searches. |
location.city | string | City name used for a location search. |
location.country | string | Country name used with a city search. |
location.latitude | number | Latitude from -90 to 90 for exact location disambiguation. |
location.longitude | number | Longitude from -180 to 180 for exact location disambiguation. |
groupUrls | object[] | Public Meetup group page objects for group searches, group event searches, or member sampling. |
groupUrls[].url | string | A public Meetup group page URL. |
eventFormat | string | Filters supported event searches by any, online, inPerson, or hybrid. Direct event URL runs ignore it. |
startDate | string | Start of an event date range in YYYY-MM-DD format. Direct event URL runs ignore it. |
endDate | string | End of an event date range in YYYY-MM-DD format. Direct event URL runs ignore it. |
radiusKm | number | Optional search radius in kilometers around the submitted location. |
minimumRsvps | integer | Keeps event search rows with at least this many public RSVPs. Direct event URL runs ignore it. |
sortBy | string | Orders event search rows by relevance or soonest. Direct event URL runs keep submitted URL order. |
maxItems | integer | Optional positive limit. Leave it empty to return all available records until the source is exhausted. For Group members, this is the number of member records to sample. |
This example is copied from the public input of a successful current-beta default-input run:
{"resultType": "event","eventDiscoveryMethod": "keywordLocation","groupDiscoveryMethod": "keywordLocation","keywords": ["technology"],"location": {"city": "San Francisco","country": "United States"},"maxItems": 100}
🧾 Output
The output schema links to the default dataset. Each dataset row uses one of the three shapes below. Types in the tables are short JSON types, and nested fields use readable dotted paths.
Run output
| Field | Type | What it does |
|---|---|---|
results | string | Links to the default dataset view for this run. |
Event result fields
| Field | Type | What it does |
|---|---|---|
resultType | string | Stable row type, always event. |
eventId | string | Meetup's stable identifier for the event. |
title | string | Public event title. |
description | string | Public event description. |
url | string | Public Meetup event page URL. |
startTime | string | Scheduled event start time. |
endTime | string | Scheduled event end time when available. |
timezone | string | Time zone used for the event schedule when available. |
status | string | Public event status. |
eventType | string | Public type of the event. |
format | string | Public event format, such as online or in person. |
location | object | Public online, venue, and geographic details when available. |
location.isOnline | boolean | Whether the event is listed as online. |
location.onlineUrl | string | Public online access URL when Meetup provides it. |
location.venue | object | Public venue details when available. |
location.venue.name | string | Public venue name. |
location.venue.address | string | Public venue street address when available. |
location.venue.city | string | City of the venue. |
location.venue.state | string | State or region of the venue when available. |
location.venue.country | string | Country of the venue when available. |
location.venue.postalCode | string | Postal code of the venue when available. |
location.city | string | Event city when Meetup provides it. |
location.state | string | Event state or region when available. |
location.country | string | Event country when available. |
location.latitude | number | Public event latitude when available. |
location.longitude | number | Public event longitude when available. |
attendance | object | Public attendance details when available. |
attendance.rsvpCount | integer | Public RSVP count. |
attendance.waitlistCount | integer | Public waitlist count. |
attendance.capacity | integer | Public event capacity. |
attendance.guestCount | integer | Public guest count. |
fee | object | Public fee details when available. |
fee.isFree | boolean | Whether Meetup lists the event as free. |
fee.amount | number | Public event fee amount. |
fee.currency | string | Currency for the public event fee. |
topics | string[] | Public topic tags for the event. |
media | object[] | Public featured event media links. |
media[].url | string | Public media URL. |
media[].type | string | Media type when Meetup provides it. |
recurringSeries | object | Recurring-series details when published. |
recurringSeries.seriesId | string | Meetup's stable recurring-series identifier. |
hosts | object[] | Public event organizers and hosts. |
hosts[].name | string | Public organizer or host name. |
hosts[].profileUrl | string | Public organizer or host profile URL when available. |
hosts[].role | string | Public event role when available. |
group | object | Public Meetup group associated with the event when available. |
group.groupId | string | Stable identifier for the associated group. |
group.name | string | Public name of the associated group. |
group.url | string | Public page for the associated group. |
This genuine event row came from the current beta run that searched events from a public group URL:
{"resultType": "event","eventId": "316616396","title": "Member Meeting: The Future of Our Space","description": "Hacker Dojo is entering a pivotal chapter, and we need the community in the room for this one. We have a new facility!\n\nFor 17 years, this has been the place where founders met co-founders, engineers learned new skills, and ideas became real. Staff will share an important update on where things stand and what comes next, including a new initiative that will shape Hacker Dojo's future.\n\nThis is a meeting for community members who care about what happens here. If you've ever built something, learned something, or found your people at Hacker Dojo, this is the moment to show up.\n\n**What to expect:**\n\n* A direct update on where things stand\n* A look at what's next for Hacker Dojo\n* How you can be part of shaping it\n* Open floor for questions and ideas\n\nYour presence matters more than you think. Let's talk about it together.","url": "https://www.meetup.com/hackerdojo/events/316616396/","startTime": "2026-09-24T01:00:00.000Z","endTime": "2026-09-24T03:00:00.000Z","status": "ACTIVE","eventType": "HYBRID","timezone": "America/Los_Angeles","format": "hybrid","location": {"isOnline": false,"venue": {"name": "Hacker Dojo","address": "855 Maude Ave","city": "Mountain View","state": "CA","country": "us","postalCode": "95054"},"city": "Mountain View","state": "CA","country": "us","latitude": 37.396255,"longitude": -122.04907},"attendance": {"rsvpCount": 5,"waitlistCount": 0,"capacity": 0,"guestCount": 0},"fee": {"isFree": true},"topics": ["Community","Coworking","Hackers and Makers"],"media": [{"url": "https://secure.meetupstatic.com/photos/event/7/4/7/9/highres_535349817.jpeg","type": "PhotoInfo"}],"hosts": [{"name": "Hacker Dojo","profileUrl": "https://www.meetup.com/members/252819436/","role": "superOrganizer"}],"group": {"groupId": "14051172","name": "Hacker Dojo","url": "https://www.meetup.com/hackerdojo"}}
Group result fields
| Field | Type | What it does |
|---|---|---|
resultType | string | Stable row type, always group. |
groupId | string | Meetup's stable identifier for the group. |
name | string | Public group name. |
url | string | Public Meetup group page URL. |
description | string | Public group description. |
location | object | Public group location details when available. |
location.city | string | Group city when available. |
location.state | string | Group state or region when available. |
location.country | string | Group country when available. |
location.latitude | number | Public group latitude when available. |
location.longitude | number | Public group longitude when available. |
memberCount | integer | Public number of group members. |
category | string | Public group category. |
privacy | string | Public group privacy setting. |
rating | number | Public group rating when available. |
reviewCount | integer | Public number of group reviews. |
socialLinks | object[] | Public social links for the group. |
socialLinks[].platform | string | Social platform name. |
socialLinks[].url | string | Public social page URL. |
This genuine group row came from the current beta run that searched public groups by keyword and location:
{"resultType": "group","groupId": "37356207","name": "Qnifi Quantum Technology Meetup Group","url": "https://www.meetup.com/qnifi-quantum-meetup-group","description": "A place to share, demonstrate and discover real quantum technology solutions, tools and concepts with experts and enthusiasts.","location": {"city": "San Francisco","state": "CA","country": "us"},"memberCount": 2,"privacy": "public","rating": 0,"reviewCount": 0}
Group member result fields
| Field | Type | What it does |
|---|---|---|
resultType | string | Stable row type, always groupMember. |
memberId | string | Meetup's stable identifier for the member. |
name | string | Public member name. |
profileUrl | string | Public member profile URL when available. |
username | string | Public member username when available. |
bio | string | Public member profile bio when available. |
photoUrl | string | Public member profile photo URL when available. |
role | string | Public group role when available. |
location | object | Public member location when available. |
location.city | string | Member city when available. |
joinedAt | string | Date and time when the member joined the group, when available. |
group | object | Public group connected to the member when available. |
group.groupId | string | Stable identifier for the related group. |
group.name | string | Public name of the related group. |
group.url | string | Public page for the related group. |
This genuine group member row came from the current beta run that sampled public members from a group URL:
{"resultType": "groupMember","memberId": "179544352","name": "Sander","profileUrl": "https://www.meetup.com/members/179544352/","username": "hyperabsolute","bio": "For fun: I hike, sail, run, make music, & practice Qigong yoga (among other things). To make a living: I do real estate brokerage and technology consulting (marketing, CX/UX design, and product management). Here to discover life & to meet hip people.","photoUrl": "https://secure.meetupstatic.com/photos/member/a/c/7/e/highres_307244158.jpeg","role": "ORGANIZER","location": {"city": "Los Angeles"},"joinedAt": "2021-09-29T00:09:13.000Z","group": {"groupId": "35905177","name": "Pacific Sailing Crew Seekers","url": "https://www.meetup.com/sailing"}}
💳 Pricing
This Actor uses pay-per-event pricing. An Event, Group, or Group member charge event applies when the matching public row is saved to the dataset. The current event price is shown in the Store pricing panel. The number of saved rows depends on your input and the public source data.
🔌 Integrations
Use the Apify API to start runs, read the default dataset, or pass structured rows into your own workflow. Apify also provides standard dataset export options.
❓ FAQ
Which result type should I choose?
Choose Events for upcoming event data, Groups for public group profiles, or Group members for publicly listed member profiles sampled from a group URL.
Can I find events without a keyword?
Yes. Choose the Location method and provide a city and country or a latitude and longitude. You can also start from a public group URL or event URL.
Can I submit direct event or group URLs?
Yes. Use Event URLs for public event pages and Group URLs for public group pages. Event filters such as format and date range do not change a direct event URL run.
What happens when I leave Maximum results empty?
The Actor returns all available records until the source is exhausted. The source may still provide fewer records than you expect, and Group members are sampled according to the available public member data.
How are duplicate records handled?
The first eligible event, group, or member occurrence is saved immediately. A later match from another keyword, URL, or similar submitted value is ignored, so the saved row keeps only the first match's source context.
What happens when Meetup does not show an optional field?
That field is left out of the row. The Actor does not guess missing descriptions, locations, attendance, fees, hosts, or profile details.
Does it read private or login-only Meetup pages?
No. It reads public Meetup data that is available to the run. Private, member-only, or login-gated details are outside the Actor's scope.
Does it return attendee identities or private contact details?
No. Event rows can include public attendance counts, and group member mode can return publicly listed member profiles. Private attendee identities, email addresses, and phone numbers are outside the scope.
Do I need a Meetup login or API key?
No. The Actor is designed to read public Meetup pages without a Meetup account, login, or API key.
Can I combine separate search setups in one run?
No. Use one result type and one coherent search setup per run. Run separate jobs for materially different keyword, location, URL, or filter settings.
Can it join groups or register people for events?
No. It reads public data only. It does not join groups, register for events, or manage RSVPs.
📝 Changelog
v0.0 (22-09-2026)
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- 10times Events Scraper for public trade show and conference data outside Meetup.
- Partiful Events Scraper for public Partiful event pages, host profiles, and RSVP signals.
- LinkedIn Events Scraper for public professional event listings and organizer details.
- Facebook Group Profile Scraper for public Facebook group profiles and membership details.
- WhatsApp Group Links Scraper for public WhatsApp group and Channel invite links found by topic or directory.
Made with ❤️ by Maxime Dupré