Meetup Events Scraper
Pricing
from $4.00 / 1,000 event scrapeds
Meetup Events Scraper
Scrape public Meetup.com events by keyword and location, group URL or event URL. Returns RSVP counts, venue, price and organizer group, with no login.
Pricing
from $4.00 / 1,000 event scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 days ago
Last modified
Categories
Share
What is Meetup Events Scraper?
Meetup Events Scraper extracts public Meetup.com events by keyword and location, by organizer group, or by event URL, and returns one flat dataset row per event. Each row has the event title, URL, start and end time with timezone, format (in-person, online or hybrid), RSVP goingCount, capacity, topics, full description, venue name, address and coordinates, ticket fields, and the organizer group's name, URL, city, member count, organizer and founding date. Event marketers, community managers, sponsorship and lead-gen teams, market researchers and AI agents use it to map local communities and demand, with no Meetup login or cookies.
Best fit for this Actor
- Designed for event discovery and group research. Use it to find events on a topic in a city, pull a group's full calendar, or enrich a list of event links.
- Three modes, one schema.
searchQuerieswith a location,groupUrls, andeventUrlscan run in the same input, and events are deduplicated by ID. - Demand signals on every row.
goingCountandgroupMemberCountshow how active an event and its organizer are, which helps rank sponsorship and partnership targets. - Past and upcoming.
groupEventStatusreturns a group's upcoming calendar or its event history. - Wider event coverage. When you want ticketed public events in the same city, then run Eventbrite Events Scraper with the same keyword and location, and for trade shows and conferences continue with 10times Events Scraper.
What people and AI agents ask this Actor to do
Find AI meetups in San Francisco next month with at least 20 RSVPs. List every upcoming event from this Meetup group. Which startup groups in New York have the most members?
| Request | Input to send |
|---|---|
| Topic events in a city | {"searchQueries": ["artificial intelligence"], "city": "San Francisco", "state": "CA", "country": "us", "minRsvpCount": 20} |
| Map-bounded search | {"searchQueries": ["technology"], "lat": 40.7128, "lon": -74.006, "radius": 25} |
| Online events only | {"searchQueries": ["python"], "city": "Toronto", "eventType": "ONLINE"} |
| A group's calendar | {"groupUrls": ["https://www.meetup.com/a11ynyc/"], "groupEventStatus": "upcoming"} |
| A group's history | {"groupUrls": ["rust-nyc"], "groupEventStatus": "past", "maxItems": 50} |
| Enrich known events | {"eventUrls": ["https://www.meetup.com/a11ynyc/events/316315125/", "315426561"]} |
Workflow example: a developer-relations sponsorship plan
A developer-relations lead starts with searchQueries of machine learning and data science for New York, Toronto and San Francisco, one run per city, with maxItems set to 200. The dataset returns each event with goingCount, topics, venueCity and the organizer group's groupMemberCount. The lead exports the rows, ranks groups by members and average RSVPs, shortlists ten groups to contact, then schedules a monthly groupUrls run for those groups to track their upcoming calendars and compare attendance over time.
How to scrape Meetup events
- Choose a mode: add Search queries with a city, zip or latitude and longitude; or add Group URLs; or add Event URLs.
- Set Max items and any filters such as event type, dates or minimum RSVPs.
- Click Start, then export the dataset or read it through the API.
Input
{"searchQueries": ["technology"],"city": "New York","state": "NY","country": "us","radius": 25,"eventType": "ANY","sortField": "DATETIME","maxItems": 200,"proxyConfiguration": { "useApifyProxy": true }}
| Field | Type | What it controls |
|---|---|---|
searchQueries | array | Keywords for event search. Pair with a location. |
city, state, country, zip | string | Search location. country is a two-letter code such as us or gb. |
lat, lon, radius | number | Precise search center and radius in miles. |
eventType | string | ANY, PHYSICAL, ONLINE or HYBRID. Default ANY. |
startDate, endDate | string | ISO 8601 window for search results. |
minRsvpCount | integer | Keep search events with at least this many RSVPs. |
sortField | string | RELEVANCE or DATETIME. Default RELEVANCE. |
groupUrls | array | Group URLs or urlnames such as nyc-tech. |
groupEventStatus | string | upcoming or past for group mode. Default upcoming. |
eventUrls | array | Event URLs or numeric event IDs. |
maxItems | integer | Total unique events returned and charged across modes. Default 200. |
proxyConfiguration | object | Apify Proxy. Datacenter is the default and suits this Actor. |
Output
| Field | What it contains |
|---|---|
id, title, eventUrl, shortUrl | Event identity and links |
dateTime, endTime, createdTime | Start, end and creation time with timezone offset |
eventType, isOnline, status, rsvpState | Format, online flag, event status and RSVP state |
goingCount, maxTickets, guestsAllowed, numberOfAllowedGuests | Attendance and capacity |
isPaid, price, currency | Ticket fields, filled when the organizer charges for entry |
description, topics | Full description in Markdown, and topic tags |
venueName, venueAddress, venueCity, venueState, venueCountry, venuePostalCode | Venue details for in-person events |
venueLat, venueLon | Venue coordinates |
groupName, groupUrlname, groupUrl, groupCity, groupCountry | Organizer group identity |
groupMemberCount, groupOrganizer, groupFoundedDate, groupTimezone | Group size and metadata |
photoUrl, scrapedAt | Event photo and collection time |
{"id": "316315125","title": "17 Years on Wheels, 20 years at Google: Subways, Wheelchairs and Maps","eventUrl": "https://www.meetup.com/a11ynyc/events/316315125/","shortUrl": "https://www.meetup.com/a11ynyc/events/316315125/","dateTime": "2026-10-14T19:30:00-04:00","endTime": "2026-10-14T21:00:00-04:00","createdTime": "2026-08-28T13:52:26-04:00","eventType": "PHYSICAL","isOnline": false,"status": "ACTIVE","rsvpState": "JOIN_OPEN","goingCount": 87,"maxTickets": 0,"guestsAllowed": false,"numberOfAllowedGuests": 0,"isPaid": null,"price": null,"currency": null,"description": "The speaker and livestream start at 7:30 pm ET. In-person attendees may arrive as early as 7 pm ET.","topics": ["Accessibility", "Web Accessibility", "Web Technology", "Technology"],"venueName": "72 Spring St","venueAddress": "72 Spring St","venueCity": "New York","venueState": "NY","venueCountry": "us","venuePostalCode": "10012","venueLat": 40.722534,"venueLon": -73.99771,"groupName": "A11yNYC - Accessibility New York City","groupUrlname": "a11ynyc","groupUrl": "https://www.meetup.com/a11ynyc","groupCity": "New York","groupCountry": "us","groupMemberCount": 6607,"groupOrganizer": "Jordan Ellis","groupFoundedDate": "2014-01-07T20:42:15-05:00","groupTimezone": "America/New_York","photoUrl": "https://secure.meetupstatic.com/photos/event/3/6/a/8/highres_535933992.jpeg","scrapedAt": "2026-10-01T12:44:59.055Z"}
Online events carry the same keys, with venue address fields left empty and isOnline set to true.
Pricing
This Actor uses Pay per event plus Apify platform usage. Two events apply: Actor Start once per run, and Event scraped once per unique event returned. Events found by more than one mode count once. For example, a city search with maxItems set to 100 creates up to 100 Event scraped events plus one Actor Start event, plus the platform usage for the run. The live Pricing tab on this page shows the current event prices.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~meetup-events-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQueries": ["startup networking"], "city": "New York", "state": "NY", "country": "us", "maxItems": 50}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("khadinakbar/meetup-events-scraper").call(run_input={"groupUrls": ["https://www.meetup.com/a11ynyc/"],"groupEventStatus": "upcoming",})for event in client.dataset(run["defaultDatasetId"]).iterate_items():print(event["dateTime"], event["title"], event["goingCount"])
Use with AI agents through Apify MCP
Connect this Actor to Claude, ChatGPT, Cursor or any MCP client through Apify MCP, then ask:
Find in-person AI and machine learning meetups in San Francisco in the next 30 days with at least 20 RSVPs. Return title, date, venue, going count, group name and group member count, sorted by date, with each event link.
Agent checklist:
- For search, always pair
searchQuerieswithcity,ziporlatandlon; setmaxItemsas the cost ceiling. - Use
eventType,startDate,endDateandminRsvpCountto match the user's request. - Read rows with
get-dataset-itemsand citeeventUrlandscrapedAt. - For "everything from this group", switch to
groupUrlsrather than search.
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| A keyword search | Add a city, zip or coordinates | Location-scoped results |
| Precise geography | Use lat, lon and radius | Events inside your radius |
| Skipping tiny events | Set minRsvpCount | Events with real demand |
| In-person only | Set eventType to PHYSICAL | Events with venue and coordinates |
| A calendar view | Set sortField to DATETIME | Chronological results |
| Group benchmarking | Use groupUrls with groupEventStatus: "past" | A group's event history and attendance |
Builder's note
I built this so one row answers both "what is the event" and "who runs it", because sponsorship and partnership decisions depend on the organizer as much as the date. I found that Meetup's own event backend returns RSVP counts, venue coordinates and group size together, so the Actor reads it over plain HTTP with no browser and pages well past the website's scroll view. My goal was predictable cost, which is why events are deduplicated across modes and maxItems caps the run.
FAQ
Do I need a Meetup login?
No. The Actor reads public event data with no login or cookies.
Can I get past events?
Yes. Use groupUrls with groupEventStatus set to past.
Does it return attendee names?
It returns the aggregate goingCount per event; attendee identities stay outside its scope.
When are the ticket fields filled?
isPaid, price and currency fill in when Meetup publishes a fee for the event; free events keep them empty.
Responsible use
This Actor collects publicly available Meetup event and group information. Organizer names are personal data under laws such as the GDPR and CCPA, so use them with a lawful basis, honor opt-outs before outreach, and respect Meetup's terms. Meetup is a trademark of its owner, and this independent Actor is not affiliated with or endorsed by Meetup.