Meetup Scraper
Pricing
from $0.50 / 1,000 scraped events
Meetup Scraper
Scrape Meetup.com events, groups or organizers by keyword, city or coordinates. Get 30+ fields per event including dates, venue with GPS, RSVP counts, fees, group member counts, organizer details, topics and ratings.
Pricing
from $0.50 / 1,000 scraped events
Rating
4.9
(7)
Developer
Filip Cicvárek
Maintained by CommunityActor stats
15
Bookmarked
369
Total users
49
Monthly active users
20 hours ago
Last modified
Categories
Share
Scrape Meetup.com events, groups & organizers
Meetup Scraper extracts structured data on Meetup events and groups from Meetup.com — no login, cookies, or API key required. Get 30+ fields per event (dates, venue with GPS, RSVP counts, fees, topics, ratings) or full group profiles (member counts, organizer contacts, social links) — a fast, reliable Meetup API alternative for lead generation, event aggregation, and market research.
Highlights
- 🎟️ Events & groups modes — scrape upcoming Meetup events (30+ fields each) or full community-group profiles, in any city and country worldwide.
- 🧲 Built for lead generation — organizer names, profile URLs, and real Facebook / LinkedIn / website links.
- 🔑 No login or API key — reads public Meetup data straight from its GraphQL API; fast and reliable.
- ⭐ Ratings & reviews — group ratings that Meetup only made public in 2025, rarely available elsewhere.
- 📤 Export anywhere — JSON, CSV, Excel, or the Apify API, on demand or on a schedule.
Input: a keyword + city (or exact GPS). Output: 30+ event fields or full group profiles.
What does Meetup Scraper do?
Give it a keyword and a location — or just a location to browse nearby — and it paginates Meetup's public GraphQL API to collect every matching result in one of two modes:
- 🎟️ Events mode (default) — upcoming Meetup events with venue, group, organizer, attendance, fee, and rating data.
- 👥 Groups mode — community groups with member counts, organizer name + profile URL, ratings, and real social links (Facebook / LinkedIn / website).
No browser automation and no login, so runs are fast and work for any city and country worldwide, with correct local times.
Meetup API alternative — scrape Meetup without the API
Meetup's official public API is heavily restricted. Meetup Scraper is a drop-in Meetup API alternative — it reads the same public data Meetup shows logged-out visitors and returns clean JSON on demand or on a schedule, with no keys or approvals.
What data can you extract from Meetup.com?
| Data point | Description |
|---|---|
| Event | Name, description, type (in-person / online / hybrid), status, URL, cover photo |
| Date & time | Start, end, duration, and IANA time zone (correct local times worldwide) |
| Venue | Name, address, city, country, postal code, and GPS lat/lon |
| Attendance & fees | RSVP count, capacity, paid/free flag, fee amount, currency |
| Group & organizer | Group name, URL, member count, category; organizer name + profile URL; social links |
| Ratings & topics | Average rating, rating & review counts (public since 2025); topic tags |
Why scrape Meetup? Use cases by role
| Who | Goal | How Meetup Scraper helps |
|---|---|---|
| Sales / lead-gen | Build outreach lists | Groups mode by topic + city; export organizerProfileUrl + socialLinks |
| Event-marketing agency | Find sponsorship targets | Rank groups by memberCount + ratingAverage; pull organizer contacts |
| Developer relations | Find active tech communities | Search groups by topic across cities; sort by size and rating |
| Events aggregator | Populate a clean events feed | Browse mode + pagination, refreshed nightly via Schedules + webhooks |
| Competitive intelligence | Track competitor events | Monitor feeAmount, actualAttendees, and topics over time |
| Technical recruiter | Source niche communities | Find groups by skill/topic and reach their organizers |
Example: a DevRel lead runs
mode: groups,searchKeyword: kubernetesacross Berlin, Munich, and Amsterdam, sorts bymemberCountandratingAverage, and exports a shortlist of communities to sponsor — each with an organizer profile URL and LinkedIn link — in one run instead of hours of manual browsing.
Key features
| Feature | What you get |
|---|---|
| 🛡️ Schema-drift guard | Fails loudly if Meetup changes its API instead of silently returning nothing |
| ⭐ Public group ratings | ratingAverage, ratingCount, reviewCount — public since 2025, rarely exposed elsewhere |
| 🔎 Keyword + geo search | By keyword and city/country, or by exact lat/lon |
| 🌍 Browse mode | Empty keyword lists every upcoming event near a location |
| 👥 Groups mode | Member counts, organizer profiles, and real social links |
| 🗺️ Worldwide | 249 countries, non-English city names (Munich → München), correct time zones |
| 🎚️ Filters & sorting | Event type, radius, date range, min RSVPs; relevance or soonest-first |
| 📄 Full pagination | Every match up to your limit; maxResults: 0 = unlimited |
Meetup Scraper + the Apify platform
- Scheduling & monitoring — run hourly/daily to catch new Meetup events; automatic retries with backoff recover from transient failures.
- API, clients & webhooks — trigger runs and pull the dataset from your code (JS/Python), or push to Make, Zapier, n8n, Google Sheets, or Slack on run finish.
- Proxy rotation & MCP server — optional proxies for scale; AI agents can call the Actor as a tool.
How to scrape Meetup events (step-by-step)
- Create a free Apify account.
- Open Meetup Scraper and click Try for free.
- On the Input tab, pick a mode, then enter a keyword + city + country — or exact lat/lon.
- (Optional) Set filters: event type, radius, date range, min RSVPs, and Maximum results.
- Click Start and watch the run progress.
- When it finishes, export your Meetup data to JSON, CSV, Excel, or HTML from the Storage tab — or via the API.
Meetup Scraper input
Click the Input tab for the full form. Only maxResults is required; provide a city (+ country) or lat/lon for the location.
| Field | Type | Description |
|---|---|---|
mode | select | events (default) or groups. Groups mode requires a keyword. |
searchKeyword | string | Keyword to search. Empty in events mode = browse all upcoming events nearby. Required for groups. |
city | string | City to search. Geocoded automatically (handles non-English names). |
state | string | Optional region to disambiguate the city (e.g. CA). |
country | select | 2-letter code (us, gb, de…). Note: the UK is gb. |
lat / lon | string | Optional exact coordinates — provide both to skip geocoding. |
eventType | select | PHYSICAL, ONLINE, HYBRID, or any. |
radius | integer | Search radius in miles. |
startDateRange / endDateRange | string | ISO 8601 bounds. Upcoming only — a past start is treated as now. |
minRsvpCount | integer | Only events with at least this many RSVPs. |
sortBy | select | RELEVANCE (default) or DATETIME (soonest first). |
maxResults | integer | Max results. 0 = unlimited. (required) |
Example input — scrape Meetup events
{"mode": "events","searchKeyword": "artificial intelligence","city": "Berlin","country": "de","eventType": "PHYSICAL","minRsvpCount": 20,"sortBy": "DATETIME","maxResults": 100}
Example input — scrape Meetup groups for leads
{"mode": "groups","searchKeyword": "artificial intelligence","city": "New York","country": "us","maxResults": 50}
Meetup Scraper output
Export Meetup data to JSON, CSV, Excel, or HTML, or fetch it via the API. The dataset is an array of records — one per event (or group).
Example output — a Meetup event
Running the events input above produces records like this (lead-gen contacts live in group):
{"eventId": "314736367","eventName": "AI Series: Berlin Deep Learning Meetup","eventType": "PHYSICAL","startDateTime": "2026-08-14T18:45:00+02:00","endDateTime": "2026-08-14T21:45:00+02:00","timezone": "Europe/Berlin","actualAttendees": 168,"isPaidEvent": false,"eventUrl": "https://www.meetup.com/berlin-deep-learning/events/314736367/","venue": { "name": "TU Berlin", "city": "Berlin", "country": "de", "lat": 52.5125, "lon": 13.3295 },"group": { "name": "Berlin Deep Learning", "memberCount": 6165, "organizerName": "BLISS", "organizerProfileUrl": "https://www.meetup.com/members/414149387/" },"topics": [{ "name": "Artificial Intelligence", "urlkey": "artificial-intelligence" }],"ratingAverage": 4.7,"ratingCount": 12,"reviewCount": 8}
ratingAverage/ratingCount/reviewCount reflect the hosting group's public ratings. All 14 original v1 fields (eventId, date, address, organizedByGroup, feeCurrency, …) are preserved for backward compatibility.
Example output — a Meetup group (groups mode)
Note the socialLinks and organizerProfileUrl fields for outreach:
{"groupName": "New York AI & Deep Learning","groupUrl": "https://www.meetup.com/ny-ai-deep-learning/","memberCount": 12840,"category": "Tech","organizerName": "Jane Doe","organizerProfileUrl": "https://www.meetup.com/members/123456789/","socialLinks": [{ "service": "FACEBOOK", "url": "https://facebook.com/nyaidl" }, { "service": "LINKEDIN", "url": "https://linkedin.com/company/nyaidl" }],"ratingAverage": 4.6,"reviewCount": 31,"city": "New York","country": "us","foundedDate": "2016-03-01"}
How much does it cost to scrape Meetup?
Meetup Scraper uses Apify's pay-per-event pricing — you pay only for what you scrape, at the prices shown at the top of this page. No compute-unit math or surprise proxy bills:
| Charge | When it applies | Notes |
|---|---|---|
| Actor start | Once per run | Minimal; covers spin-up |
| Per result | Each Meetup event or group returned | The main cost — scales predictably with maxResults |
New Apify accounts include free monthly credits, so you can test Meetup Scraper at no cost. Cap any run's cost with the Maximum results input.
Is it legal to scrape Meetup?
Scraping public data is generally legal when done responsibly. Meetup Scraper:
- ✅ reads only public Meetup events and groups — the same pages any logged-out visitor sees on Meetup.com.
- ❌ never bypasses logins, and can't access private groups or attendee identities.
Results may include public personal data (e.g. an organizer's name), protected by the GDPR and similar laws — don't scrape personal data without a legitimate reason, and consult a lawyer if unsure. See Apify's post on the legality of web scraping.
Integrations and API — connect Meetup data to your stack
Push results anywhere — no-code (Make, Zapier, n8n, Google Sheets, Slack), webhooks, the Apify API with JS/Python clients, or the Apify MCP server for AI agents.
Run Meetup Scraper via the Apify API (JavaScript)
npm install apify-client, then:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });// Replace the Actor ID with the one shown in this page's URL.const run = await client.actor('your-username/meetup-scraper').call({searchKeyword: 'javascript', city: 'Berlin', country: 'de', maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Run Meetup Scraper via the Apify API (Python)
pip install apify-client, then:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")# Replace the Actor ID with the one shown in this page's URL.run = client.actor("your-username/meetup-scraper").call(run_input={"searchKeyword": "javascript", "city": "Berlin", "country": "de", "maxResults": 100,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Run Meetup Scraper with curl
curl -X POST "https://api.apify.com/v2/acts/your-username~meetup-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{ "searchKeyword": "javascript", "city": "Berlin", "country": "de", "maxResults": 50 }'
Frequently asked questions (FAQ) & troubleshooting
Does Meetup Scraper require a login or API key? No — it uses Meetup's public GraphQL API with no authentication.
Can it scrape Meetup attendee lists? No. Meetup hides attendee identities behind login, so you get RSVP counts and public hosts/organizers only.
My search returned 0 results? Check the country code (UK = gb, not uk), make sure endDateRange isn't in the past (upcoming events only), drop an over-specific keyword, and confirm groups mode has a searchKeyword — then widen the radius.
The wrong city was matched, or geocoding failed? Pass exact lat/lon to skip geocoding, or add state/country to disambiguate (London gb vs London ca).
Why are some fields null? Online events have no venue, free events have no feeAmount, and new groups have no ratings yet. Missing values are null (not omitted) so your output schema stays consistent.
Can I scrape past Meetup events? No — Meetup exposes only upcoming events, so a past startDateRange is treated as now.
Can I get all events instead of one page? Yes — set maxResults: 0 and the Actor paginates the full result set.
A run failed with a schema/parse error? That's the schema-drift guard failing loudly on a Meetup API change. Transient errors retry with backoff; if it persists, re-run and report it on the Issues tab with your input, run ID, and error message.
Is Meetup throttling my runs at scale? Enable residential proxies, lower concurrency, or split the work into smaller scheduled batches.
What are the limitations? Public Meetup events and groups only — no attendee identities, no private groups, and upcoming events only (Meetup exposes no historical data).
Feedback and support
Found a bug or need an extra field? Open an issue on the Actor's Issues tab — feedback and feature requests are welcome.