Meetup Scraper avatar

Meetup Scraper

Pricing

from $0.50 / 1,000 scraped events

Go to Apify Store
Meetup Scraper

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

Filip Cicvárek

Maintained by Community

Actor stats

15

Bookmarked

369

Total users

49

Monthly active users

20 hours ago

Last modified

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 pointDescription
EventName, description, type (in-person / online / hybrid), status, URL, cover photo
Date & timeStart, end, duration, and IANA time zone (correct local times worldwide)
VenueName, address, city, country, postal code, and GPS lat/lon
Attendance & feesRSVP count, capacity, paid/free flag, fee amount, currency
Group & organizerGroup name, URL, member count, category; organizer name + profile URL; social links
Ratings & topicsAverage rating, rating & review counts (public since 2025); topic tags

Why scrape Meetup? Use cases by role

WhoGoalHow Meetup Scraper helps
Sales / lead-genBuild outreach listsGroups mode by topic + city; export organizerProfileUrl + socialLinks
Event-marketing agencyFind sponsorship targetsRank groups by memberCount + ratingAverage; pull organizer contacts
Developer relationsFind active tech communitiesSearch groups by topic across cities; sort by size and rating
Events aggregatorPopulate a clean events feedBrowse mode + pagination, refreshed nightly via Schedules + webhooks
Competitive intelligenceTrack competitor eventsMonitor feeAmount, actualAttendees, and topics over time
Technical recruiterSource niche communitiesFind groups by skill/topic and reach their organizers

Example: a DevRel lead runs mode: groups, searchKeyword: kubernetes across Berlin, Munich, and Amsterdam, sorts by memberCount and ratingAverage, 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

FeatureWhat you get
🛡️ Schema-drift guardFails loudly if Meetup changes its API instead of silently returning nothing
Public group ratingsratingAverage, ratingCount, reviewCount — public since 2025, rarely exposed elsewhere
🔎 Keyword + geo searchBy keyword and city/country, or by exact lat/lon
🌍 Browse modeEmpty keyword lists every upcoming event near a location
👥 Groups modeMember counts, organizer profiles, and real social links
🗺️ Worldwide249 countries, non-English city names (Munich → München), correct time zones
🎚️ Filters & sortingEvent type, radius, date range, min RSVPs; relevance or soonest-first
📄 Full paginationEvery 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)

  1. Create a free Apify account.
  2. Open Meetup Scraper and click Try for free.
  3. On the Input tab, pick a mode, then enter a keyword + city + country — or exact lat/lon.
  4. (Optional) Set filters: event type, radius, date range, min RSVPs, and Maximum results.
  5. Click Start and watch the run progress.
  6. 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.

FieldTypeDescription
modeselectevents (default) or groups. Groups mode requires a keyword.
searchKeywordstringKeyword to search. Empty in events mode = browse all upcoming events nearby. Required for groups.
citystringCity to search. Geocoded automatically (handles non-English names).
statestringOptional region to disambiguate the city (e.g. CA).
countryselect2-letter code (us, gb, de…). Note: the UK is gb.
lat / lonstringOptional exact coordinates — provide both to skip geocoding.
eventTypeselectPHYSICAL, ONLINE, HYBRID, or any.
radiusintegerSearch radius in miles.
startDateRange / endDateRangestringISO 8601 bounds. Upcoming only — a past start is treated as now.
minRsvpCountintegerOnly events with at least this many RSVPs.
sortByselectRELEVANCE (default) or DATETIME (soonest first).
maxResultsintegerMax 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:

ChargeWhen it appliesNotes
Actor startOnce per runMinimal; covers spin-up
Per resultEach Meetup event or group returnedThe 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.

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 ApifyClient
client = 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.