Meetup Group Scraper
Pricing
from $2.00 / 1,000 results
Meetup Group Scraper
Scrape Meetup.com groups by URL for upcoming/past events with organizer, venue, RSVP count, and fee. Also supports location + topic discovery. No login, GDPR-safe (aggregate RSVP counts, no attendee PII).
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
🎯 What this scrapes
Meetup ships every group, event-listing, and event-detail page as JSON-in-HTML — a server-rendered Apollo GraphQL cache with no directly callable public API. This Actor takes a group URL (or a location + topic search) and turns it into structured event rows: organizer name, venue, RSVP count, fee, and both upcoming and past events. Our own live meetup-events-scraper covers keyword+location discovery only; this sibling owns group-targeted scraping, organizer identity, and event history.
🔥 What we handle for you
- 🛡️ Browser fingerprint rotation —
curl-cffiimpersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python. - 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
- 🔁 Retries with exponential backoff on
408 / 429 / 5xx— up to 5 attempts per page,Retry-Afterhonoured. - 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
- 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
- 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.
💡 Use cases
- Event-lead prospecting — pull every upcoming event from a target group with organizer name and RSVP count as an interest signal.
- Community/ecosystem research — track a niche's group activity over time by re-running against the same group URLs.
- Past-event history — audit how often a group actually runs events and how well-attended they are.
- Location + topic discovery — find active groups/events in a city for a given topic without knowing group URLs up front.
⚙️ How to use it
- Click Try for free at the top of the page.
- Fill in the input form — most fields have sensible defaults.
- Click Start. Output streams into the run's dataset.
- Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
groupUrls | array | no | ['chapter-community'] | Meetup group URLs or bare urlnames to scrape directly. One of Group URLs / (Location or Topics) is required. |
location | string | no | '—' | Free-text location passed verbatim to Meetup's /find/ search. |
topics | array | no | '—' | Topic keywords for /find/ discovery, one search per topic. |
eventWindow | string | no | 'upcoming' | |
maxEvents | integer | no | 50 | Cap on total emitted event rows per run. |
includeDescription | boolean | no | True | When off, the event description field is emitted as null. |
proxyConfiguration | object | no | {'useApifyProxy': True} | Apify Proxy config. No anti-bot challenge observed as of 2026-07-20; RESIDENTIAL documented as the fallback group. |
Example input
{"groupUrls": ["chapter-community"],"maxEvents": 3,"proxyConfiguration": {"useApifyProxy": true}}
📤 Output
Every row is one dataset item.
| Field | Type | Notes |
|---|---|---|
event_id | string | Meetup Event.id. |
event_url | string | Canonical event URL. |
event_name | string | Event title. |
group_name | string | Hosting group name. |
group_url | string | Canonical group URL. |
organizer_name | ['string', 'null'] | Group organizer or event host name. |
date_time_start | string | ISO-8601 event start. |
date_time_end | ['string', 'null'] | ISO-8601 event end. |
timezone | ['string', 'null'] | IANA timezone, e.g. America/New_York. |
is_online | boolean | True for online-only events. |
venue_name | ['string', 'null'] | Venue name, null if online or hidden. |
venue_address | ['string', 'null'] | Street address. |
venue_city | ['string', 'null'] | Venue city. |
venue_state | ['string', 'null'] | Venue state/region. |
venue_country | ['string', 'null'] | Venue country code. |
venue_lat | ['number', 'null'] | Venue latitude. |
venue_lon | ['number', 'null'] | Venue longitude. |
rsvp_count | integer | Aggregate RSVP count — never individual attendees. |
max_tickets | ['integer', 'null'] | Capacity, if set. |
is_free | boolean | True when no fee is configured. |
fee_amount | ['number', 'null'] | Ticket fee amount. |
fee_currency | ['string', 'null'] | Ticket fee currency code. |
description | ['string', 'null'] | Event description, null if includeDescription is false. |
matched_via | string | 'group_url' or 'location_topic_search'. |
scraped_at | string | ISO-8601 UTC timestamp when this row was recorded. |
Example output
{"event_id": "315673655","event_url": "https://www.meetup.com/chapter-community/events/315673655/","event_name": "Coffee & Conversation in the West Village","group_name": "Chapter Community: A Group for Retirees and Beyond","group_url": "https://www.meetup.com/chapter-community/","organizer_name": "Chapter Community","date_time_start": "2026-07-21T10:00:00-04:00","date_time_end": "2026-07-21T12:00:00-04:00","timezone": "America/New_York","is_online": false,"venue_name": "Asano (inside The Noortwyck)","venue_address": "289 Bleecker Street","venue_city": "New York","venue_state": "NY","venue_country": "us","venue_lat": 40.73218,"venue_lon": -74.00332,"rsvp_count": 7,"max_tickets": 10,"is_free": true,"fee_amount": null,"fee_currency": null,"description": "Join us in the West Village for coffee, pastries, and a conversation...","matched_via": "group_url","scraped_at": "2026-07-20T14:20:00Z"}
💰 Pricing
Pay-Per-Event — you pay only when these events fire:
| Event | USD | What it is |
|---|---|---|
actor-start | $0.005 | One-off warm-up charge per run |
result | $0.002 | Per dataset item |
Example: 1 000 results at the rates above ≈ $2.00. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.
🚧 Limitations
v1 reads the first SSR-embedded page only (30 upcoming / 10 past events per group) — no cursor-walking past that. Large groups with deep event history are bounded by that cap; maxEvents governs run cost, not completeness beyond it. No authenticated/private/members-only groups.
❓ FAQ
Does this scrape individual attendee identities?
No. rsvp_count is an aggregate count only — this Actor never emits individual RSVP/attendee PII, matching the GDPR posture of our other Meetup Actor.
How is this different from your meetup-events-scraper Actor?
meetup-events-scraper covers keyword+location discovery only. This Actor is group-URL-first: it adds organizer identity and past-event history, which meetup-events-scraper explicitly scopes out.
Do I need a Meetup login?
No. All four source endpoints (group page, group events, event detail, /find/ search) return complete data unauthenticated.
Why are some venue fields null?
Meetup organizers can hide venue details pre-RSVP, and online events have no venue at all — both are expected, not a scraping failure.
💬 Your feedback
Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.