Meetup.com City Events Scraper
Pricing
from $1.50 / 1,000 results
Meetup.com City Events Scraper
A fast and reliable scraper for meetup.com that extracts Event Name, Venue details, Price and much more. Provides clean, structured data with support for Markdown, pagination, and easy API integration for your applications.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Techforce Global
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Meetup.com City Events Scraper & MCP Connector
Pull every upcoming event in any city on Meetup.com — names, dates, venues, addresses, and prices — as clean, structured data. No API key, no manual browsing, no copy-pasting event pages.
Built for community organizers, event marketers, researchers, and builders who need a city's live Meetup calendar as structured data — in minutes, not hours of scrolling.
Enter a city → get every event's details → deliver it straight into Notion, Slack, Jira, or your CRM.
⭐ Why This Actor?
- ✅ Just enter a city — pick from 55+ countries via ISO code and type any city name (
"Chicago","Mumbai","Berlin"...). No login, API key, or session tokens required. - ✅ In-person, online, or both — filter by event format, or scrape both at once.
- ✅ Handles Meetup's heavy client-side rendering — runs headless Chromium via Playwright, auto-scrolls, and clicks "Load more" so nothing gets missed.
- ✅ Reliable data, not brittle scraping — intercepts Meetup's own GraphQL/API responses and
__NEXT_DATA__payloads first, falling back to detail-page visits only for fields still missing. - ✅ Never silently drops events — every unique event is returned; missing venue/price/date fields are filled in with sane defaults or marked
"N/A"rather than dropped. - ✅ Fast enrichment — up to 8 event detail pages are visited concurrently, pushed to the dataset in batches as they complete.
- ✅ Deliver anywhere via MCP connectors — push events straight into Notion, Slack, Jira, GitHub, Linear, Airtable, and more.
- ✅ Export-ready — JSON, CSV, Excel, or direct API integration for your own pipeline.
📝 Use Cases & ROI
| Use Case | Time Saved | What You Get |
|---|---|---|
| Local community calendars | 2–4 hrs/city | Every upcoming Meetup event, ready to publish or embed |
| Tech/networking event tracking | 1–3 hrs/week | A live feed of meetups, workshops, and talks in your city |
| Lead generation & competitive intel | 3–5 hrs/batch | Structured list of who's hosting what, where, and when |
| CRM & newsletter feeds | 2–4 hrs/run | Clean event records piped straight into your tools |
| Market & audience research | 2–5 hrs/city | Venue, pricing, and turnout signals across a city's event scene |
🚀 How to Use
- Open the Actor on Apify.
- Enter a City (e.g.
Chicago) and select a Country. - Choose Event Type — In-Person, Online, or both (default: In-Person).
- Set Max Events — up to 100 per run (default:
20). - Click Run — results stream into the dataset as each batch completes.
- (Optional) Pick an MCP connector to deliver each event, or the whole batch, into Notion, Slack, Jira, etc.
- Download as CSV, Excel, or JSON — or let the connector push results into your tools automatically.
💡 First time with a connector? Run once with a connector selected — the run log prints the connector's available tool names and their input schema, so you know what to put in Connector tool name and Connector tool arguments.
🧩 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
city | String | ✔️ Yes | City name to search events in (e.g. Ahmedabad, Mumbai, Chicago). Default: Chicago. |
country_code | String (select) | Optional | 2-letter ISO country code — 55+ countries supported (in, us, gb, ae, de...). Default: us. |
eventType | Array | Optional | Event format(s): inPerson, online, or both. Default: ["inPerson"]. |
limit | Integer | Optional | Max events to scrape (1–100). Default: 20. |
mcpConnector | Connector | Optional | Deliver scraped events into a connector you've authorized (Notion, Slack, Jira, GitHub, Linear, Airtable, ...). |
deliveryMode | Enum | Optional | summary (one call with all events as text), chunked (split a long list across a few calls so services like Notion never time out), perEvent (one call per event), or none. Default: summary. |
mcpTool | String | Optional | Tool to call on the connector (e.g. create_page, send_message, notion-create-pages). |
mcpArguments | Object | Optional | Arguments for the tool; string values support {placeholders}. |
mcpMessageTemplate | String | Optional | Template rendered and exposed as the {message} placeholder in the tool arguments. |
Example — Basic scrape
{"city": "Chicago","country_code": "us","eventType": ["inPerson"],"limit": 20}
Example — Deliver a single summary message to Slack
{"city": "Chicago","country_code": "us","limit": 25,"mcpConnector": "<your-slack-connector>","deliveryMode": "summary","mcpTool": "send_message","mcpArguments": { "channel": "#events", "text": "{message}" },"mcpMessageTemplate": "Found {totalEvents} events in {city}:\n\n{events}"}
Example — Create a Notion page per event
{"city": "Chicago","country_code": "us","limit": 25,"mcpConnector": "<your-notion-connector>","deliveryMode": "perEvent","mcpTool": "notion-create-pages","mcpArguments": {"parent": { "page_id": "<your-page-id>" },"pages": [{"properties": { "title": "{title} — {venue}, {city}" },"content": "**Date:** {date}\n**Venue:** {venue}, {venue_address}\n**Price:** {price}\n\n[View on Meetup]({url})"}]}}
Example — One Notion page with the whole list (chunked for large runs)
{"city": "Chicago","country_code": "us","limit": 100,"mcpConnector": "<your-notion-connector>","deliveryMode": "chunked","mcpTool": "notion-create-pages","mcpArguments": {"parent": { "page_id": "<your-page-id>" },"pages": [{"properties": { "title": "Meetup events — {city} (part {part}/{partCount})" },"content": "{events}"}]}}
Placeholders available in arguments / template
All modes: {city} · {country_code} · {totalEvents} · {events} (full event list as text) · {message}
Chunked mode adds: {part} · {partCount}
Per-event mode adds: {title} · {url} · {city} · {venue} · {venue_address} · {date} · {price} · {source}
📤 Output Dataset
Each record follows a standardised schema. Fields that are unavailable are returned as "N/A".
| Field | Type | Description |
|---|---|---|
source | String | Always "Meetup" |
title | String | Event name |
url | String | Direct link to the Meetup event page |
date | String | ISO-8601 datetime when parseable, else raw text |
city | String | City the event is in |
venue | String | Venue name ("N/A" if unavailable) |
venue_address | String | Full venue address ("N/A" if unavailable) |
price | String | Ticket price, "Free", or "N/A" |
Example Output
{"source": "Meetup","title": "NYC Python Meetup – April 2026","url": "https://www.meetup.com/nycpython/events/123456789/","date": "2026-04-18T18:30:00+00:00","city": "New York","venue": "Civic Hall","venue_address": "124 East 14th Street, New York, NY 10003","price": "Free"}
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
🔌 Integrations & Delivery
Deliver scraped events into any MCP connector you've authorized in Apify — no glue code, no webhooks:
- Notion — create a page per event, or one page with the full list (use
chunkedmode for large runs so Notion never times out) - Slack / Discord — post a summary or per-event alerts to a channel
- Jira / GitHub / Linear — open issues or tasks from upcoming events
- Airtable / Google Sheets — append a structured row per event
- …or any other MCP-compatible connector
Credentials stay private — delivery runs through the Apify MCP Proxy, so the Actor never sees your connector tokens. You can also consume the dataset directly via the Apify API, or wire it into n8n, Zapier, and Make.
⚙️ Delivery modes:
summarysends all events in one call,chunkedsplits a long list across a few calls/pages, andperEventsends one call per scraped event. MCP delivery only runs on the Apify platform, runs after the dataset is saved, and never affects what's stored there.
🛠️ How It Works
my_actor/main.py reads the input, then:
- Builds the listing URL (
meetup.com/find/?location={country}--{city}&eventType=...) and opens it with Playwright (headless Chromium), spoofing a real browser fingerprint to reduce bot-detection. - Reads the page's
__NEXT_DATA__payload for an initial batch of events, then scrolls and auto-clicks "Load more" up to 60 times, intercepting Meetup's own GraphQL/API JSON responses along the way for richer, more reliable data. - Deduplicates events by Meetup event ID (falling back to normalized URL), and applies safe defaults (e.g. missing price →
"Free") before deciding what still needs enrichment. - Visits event detail pages for any records still missing venue, address, date, or price — up to 8 concurrently, with a lightweight direct API fetch as a fallback if a detail page times out.
- Pushes each clean, normalized batch to the dataset as it completes, then — if a connector is configured — delivers the results via MCP.
Built with: Apify SDK for Python · Playwright · MCP
🆘 Support
For issues, custom scraping requests, or feature suggestions: Email: bhavin.shah@techforceglobal.com
Need a Custom Pipeline?
Want multi-city batch runs, scheduled refreshes, deeper enrichment, or a full data-warehouse integration?
📅 Book a Free 15-min Consultation
Made with ❤️ by Techforce Specialists in High-Performance Web Scrapers and AI Automation.
Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Meetup or its parent company. Meetup® is a trademark of its respective owner; all trademarks are property of their respective owners. The Actor collects only publicly available information (event listings and details visible without logging in) and does not log into, or scrape behind the authentication of, any platform. Use the data responsibly and in compliance with applicable laws (including GDPR/CCPA) and the terms of the platforms you operate on.