Meetup Events Scraper - Search Events & Groups by Topic & City avatar

Meetup Events Scraper - Search Events & Groups by Topic & City

Pricing

from $1.50 / 1,000 meetup event scrapeds

Go to Apify Store
Meetup Events Scraper - Search Events & Groups by Topic & City

Meetup Events Scraper - Search Events & Groups by Topic & City

Scrape public Meetup events by keyword and city, or from group URLs. Multiple keywords x cities per run, online/in-person and date filters, venue with coordinates, fees, RSVP counts, topics, full description, optional details and an only-new mode.

Pricing

from $1.50 / 1,000 meetup event scrapeds

Rating

0.0

(0)

Developer

rj

rj

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Features

Limited permissions

Share

Meetup Events Scraper - Search Events & Groups by Topic and City

Scrape public Meetup.com events by keyword and city, or straight from Meetup group URLs. Put several keywords and several cities in one run (every keyword is searched in every city), filter by online / in-person and by today, tomorrow, this week, this weekend, next week or custom dates, and get clean JSON with start/end times with UTC offset, venue address with coordinates, structured fees, RSVP counts, group, category, topics and the full description. An only new events mode turns it into a daily feed for event-listing sites, newsletters and sponsorship teams. No login, no browser, no cookies.

Other Meetup scrapers take one search URL at a time. This one takes your whole matrix of topics x cities plus group URLs in one run, removes duplicates across them, and only charges for what lands in your dataset.

What data can you get?

FieldExample
title, url, id"Founder Meet&Greet & Cofounder Search", https://www.meetup.com/berlin-startup-founder-101/events/316352574/
startAt, endAt, timezone, duration2026-11-12T19:00:00+01:00, Europe/Berlin, PT2H
eventType, statusPHYSICAL / ONLINE / HYBRID, ACTIVE / CANCELLED / PAST
venuename, address, city, state, country, postal code, lat, lon
groupname, URL name, URL, city, country
category, topics"Career & Business", ["Entrepreneurship", "Co-Founder"]
descriptionFull event description (Markdown)
rsvpCount, maxAttendees155 going, 40 seats (counts only)
isFree, fee{ "amount": 7, "currency": "USD", "required": true }
imageUrl, isRecurring, recurrence"every week on Tue", "monthly on the 3rd Thu"
With Fetch event detailshowToFindUs, waitlistCount, rsvpOpensAt/rsvpClosesAt, refundPolicy, guestsAllowed, googleMapsUrl, groupMemberCount, groupRating, seriesUpcomingDates
ProvenancesearchKeyword, searchLocation, sourceGroup, scrapedAt

Use cases

  • Event-listing sites and city newsletters: a scheduled task with Only new events gives you each week's newly announced tech, startup or hobby events per city.
  • Developer relations and sponsorship: find every Python, AI or JavaScript meetup in your target cities with RSVP counts and capacity, and see which groups are active.
  • Venue and community research: map where events happen (coordinates included), what they cost and how often groups meet.
  • Group monitoring: follow a list of Meetup groups and get their upcoming (and past) events in one dataset.

How to use

  1. Enter one or more Keywords and one or more Locations (e.g. New York, NY, London, GB, Berlin, DE), and/or Group URLs.
  2. Optionally pick Event type, Date range, Radius, Strict keyword match and Fetch event details.
  3. Run, then export the dataset as JSON, CSV, Excel or via the API.

Locations accept City, ST (US), City, CC (country code), Meetup's own us--ny--New York format or latitude,longitude. Date presets are computed in each city's own time zone; weeks run Monday to Sunday.

Search several topics in several cities:

{
"keywords": ["python", "data science"],
"locations": ["New York, NY", "London, GB"],
"dateRange": "this-week",
"eventType": "in-person",
"maxItems": 50
}

Startup events in Berlin next week, soonest first, with details:

{
"keywords": ["startup"],
"locations": ["Berlin, DE"],
"dateRange": "next-week",
"sortBy": "date",
"fetchDetails": true,
"maxItems": 20
}

Upcoming and past events of Meetup groups:

{
"groupUrls": ["https://www.meetup.com/golanguagenewyork/", "https://www.meetup.com/pydatanyc/"],
"includePastGroupEvents": true,
"maxItems": 30
}

Weekly feed of new events (save as a Task and schedule it):

{
"keywords": ["artificial intelligence"],
"locations": ["San Francisco, CA"],
"onlyNew": true,
"stateKey": "sf-ai-feed"
}

Output example

A real item (description shortened):

{
"id": "316352574",
"eventId": "316352574",
"title": "Founder Meet&Greet & Cofounder Search: Cozy Edition!",
"url": "https://www.meetup.com/berlin-startup-founder-101/events/316352574/",
"startAt": "2026-11-12T19:00:00+01:00",
"endAt": "2026-11-12T21:00:00+01:00",
"timezone": "Europe/Berlin",
"duration": "PT2H",
"eventType": "PHYSICAL",
"status": "ACTIVE",
"venue": { "name": "KERB Food Hall", "address": "Potsdamer Platz 2", "city": "Berlin", "state": null, "country": "DE", "postalCode": null, "lat": 52.50973, "lon": 13.375051 },
"group": { "id": "8831882", "name": "Berlin Startup Founder 101", "urlname": "berlin-startup-founder-101", "url": "https://www.meetup.com/berlin-startup-founder-101", "city": "Berlin", "state": null, "country": "DE" },
"category": "Career & Business",
"topics": ["Innovation", "Co-Founder", "Entrepreneur Networking", "Entrepreneurship", "Internet Startups"],
"description": "Looking for the right people to support you with your next step? Looking for the right co-founder? …",
"rsvpCount": 155,
"maxAttendees": null,
"isFree": true,
"fee": null,
"imageUrl": "https://secure.meetupstatic.com/photos/event/1/2/0/6/highres_536464614.jpeg",
"isRecurring": false,
"recurrence": null,
"detailsFetched": true,
"howToFindUs": "You can find us in the area of the bar on the 1st floor to the left",
"waitlistCount": 0,
"guestsAllowed": true,
"maxGuestsPerRsvp": 2,
"rsvpOpensAt": null,
"rsvpClosesAt": null,
"refundPolicy": null,
"googleMapsUrl": "https://www.google.com/maps/search/?api=1&query=52.509730,13.375051",
"groupMemberCount": 17719,
"groupRating": 4.39,
"seriesUpcomingDates": [],
"searchKeyword": "startup",
"searchLocation": "Berlin, DE",
"sourceGroup": null,
"scrapedAt": "2026-11-06T12:28:14.962Z"
}

Every item has the same keys; missing values are null. The dataset has three views: Overview, Venues & fees and Details. A RUN_SUMMARY record in the key-value store lists per-search status, counts and request statistics.

Pricing

Pay per event, no start fee:

EventPrice1,000 events
event: one Meetup event in your dataset$0.0015$1.50
event-details: extra details for one event (only with Fetch event details)$0.001$1.00

Examples: the default run (15 Python events in New York) costs about $0.02. 1,000 events cost $1.50, or $2.50 with details. The full description is included in the base price. Duplicates across your searches, events removed by filters, events skipped by Only new events and failed detail lookups are never charged. Set Maximum cost per run to cap spending; the scraper stops cleanly when it is reached.

Tips and limits

  • Meetup's keyword search is fuzzy. Like on meetup.com itself, the best matches come first and Meetup then fills the list with other popular events nearby (a "python" search in New York also returns social mixers). Use a smaller Max events, or turn on Strict keyword match to keep only events whose title, description, group name or topics contain every word of your keyword. Strict mode returns fewer events, sometimes none.
  • Max events applies to each keyword x location pair and each group. 0 means no limit, capped at about 1,000 per search.
  • Search returns upcoming events. For past events use Group URLs with Include past group events (date range applies to past events only with custom dates).
  • Hybrid events match both "online" and "in-person".
  • Online events have venue fields set to null (Meetup stores placeholder values for them).
  • The radius is passed to Meetup as given; results near the edge depend on Meetup's own geo search.
  • Private groups and members-only details are not available; this Actor reads public data only.

FAQ

Is it legal to scrape Meetup? This Actor reads only public event pages' data, the same information anyone sees on meetup.com without logging in. It never collects attendee lists, member names or profiles, host names or photos, emails or phone numbers: RSVPs are counts only. You are responsible for using the data in line with Meetup's terms and the laws that apply to you (e.g. GDPR).

Do I need a Meetup account or API key? No.

Do I need a proxy? Usually not. If a run reports that Meetup returned HTTP 403/429, enable Apify Proxy (datacenter) in the input. Residential proxy groups are not supported: they are switched to datacenter automatically, because residential traffic would cost more than the events.

How does "Only new events" work? Event IDs that were output are stored in the named key-value store meetup-events-scraper-state under your State key. Later runs skip them (and don't charge for them). The first run outputs everything and becomes the baseline. Use a different state key for each scheduled task.

What does "Fetch event details" add? One extra request per event for how-to-find-us notes, waitlist size, RSVP open/close times, refund policy, guest rules, a Google Maps link, the group's member count and rating, and the next dates of recurring series.

Integrations

Use the results anywhere: the Apify API and clients for JavaScript and Python, webhooks, Make, Zapier, n8n, Google Sheets, Slack, and AI agents via the Apify MCP server. Schedule a Task with Only new events to push newly announced events into your CMS, newsletter or CRM.

Changelog

  • 0.1 (November 2026): first release. Keyword x city search, group URLs (upcoming + past), event type and date filters, strict keyword match, fees, venue coordinates, RSVP counts, optional details, only-new mode.

Ready-to-run examples

More scrapers by the same developer

Browse all my Actors on my Apify Store profile.

Support

Found a bug or need a field? Open an issue on the Issues tab with your input and run ID, and we'll take a look.