Meetup Events Scraper avatar

Meetup Events Scraper

Pricing

from $4.00 / 1,000 event scrapeds

Go to Apify Store
Meetup Events Scraper

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 days ago

Last modified

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. searchQueries with a location, groupUrls, and eventUrls can run in the same input, and events are deduplicated by ID.
  • Demand signals on every row. goingCount and groupMemberCount show how active an event and its organizer are, which helps rank sponsorship and partnership targets.
  • Past and upcoming. groupEventStatus returns 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?

RequestInput 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

  1. Choose a mode: add Search queries with a city, zip or latitude and longitude; or add Group URLs; or add Event URLs.
  2. Set Max items and any filters such as event type, dates or minimum RSVPs.
  3. 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 }
}
FieldTypeWhat it controls
searchQueriesarrayKeywords for event search. Pair with a location.
city, state, country, zipstringSearch location. country is a two-letter code such as us or gb.
lat, lon, radiusnumberPrecise search center and radius in miles.
eventTypestringANY, PHYSICAL, ONLINE or HYBRID. Default ANY.
startDate, endDatestringISO 8601 window for search results.
minRsvpCountintegerKeep search events with at least this many RSVPs.
sortFieldstringRELEVANCE or DATETIME. Default RELEVANCE.
groupUrlsarrayGroup URLs or urlnames such as nyc-tech.
groupEventStatusstringupcoming or past for group mode. Default upcoming.
eventUrlsarrayEvent URLs or numeric event IDs.
maxItemsintegerTotal unique events returned and charged across modes. Default 200.
proxyConfigurationobjectApify Proxy. Datacenter is the default and suits this Actor.

Output

FieldWhat it contains
id, title, eventUrl, shortUrlEvent identity and links
dateTime, endTime, createdTimeStart, end and creation time with timezone offset
eventType, isOnline, status, rsvpStateFormat, online flag, event status and RSVP state
goingCount, maxTickets, guestsAllowed, numberOfAllowedGuestsAttendance and capacity
isPaid, price, currencyTicket fields, filled when the organizer charges for entry
description, topicsFull description in Markdown, and topic tags
venueName, venueAddress, venueCity, venueState, venueCountry, venuePostalCodeVenue details for in-person events
venueLat, venueLonVenue coordinates
groupName, groupUrlname, groupUrl, groupCity, groupCountryOrganizer group identity
groupMemberCount, groupOrganizer, groupFoundedDate, groupTimezoneGroup size and metadata
photoUrl, scrapedAtEvent 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 ApifyClient
client = 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:

  1. For search, always pair searchQueries with city, zip or lat and lon; set maxItems as the cost ceiling.
  2. Use eventType, startDate, endDate and minRsvpCount to match the user's request.
  3. Read rows with get-dataset-items and cite eventUrl and scrapedAt.
  4. For "everything from this group", switch to groupUrls rather than search.

Best results

Starting situationHelpful actionExpected outcome
A keyword searchAdd a city, zip or coordinatesLocation-scoped results
Precise geographyUse lat, lon and radiusEvents inside your radius
Skipping tiny eventsSet minRsvpCountEvents with real demand
In-person onlySet eventType to PHYSICALEvents with venue and coordinates
A calendar viewSet sortField to DATETIMEChronological results
Group benchmarkingUse 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.