Meetup Scraper: Events by Keyword, City and Group avatar

Meetup Scraper: Events by Keyword, City and Group

Pricing

from $0.80 / 1,000 events

Go to Apify Store
Meetup Scraper: Events by Keyword, City and Group

Meetup Scraper: Events by Keyword, City and Group

Extract Meetup events by keyword and city or from Meetup group pages. Returns title, date, venue, RSVP count, ticket fee, topics, hosts and group details. Pay per event.

Pricing

from $0.80 / 1,000 events

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Meetup Scraper

Search Meetup events by keyword and city, or list the upcoming events of specific Meetup groups. You get one record per event: title, date and time, venue with coordinates, RSVP count, ticket fee, topics, host names and details about the hosting group. Use it for event calendars, local market research, sponsorship and partner lead lists, and community monitoring.

What you get

One record per event. Fields an event does not have are null (or an empty list).

FieldTypeDescription
event_idstringMeetup event ID
titlestringEvent title
urlstringPublic event page
date_timestring or nullStart time with UTC offset (ISO 8601). Empty (null) when Meetup shows no start time
end_timestring or nullEnd time with UTC offset
timezonestring or nullTime zone of the hosting group, for example Europe/Berlin
event_typestringPHYSICAL, ONLINE or HYBRID
statusstringEvent status, for example ACTIVE
descriptionstring or nullEvent description as Markdown text
is_onlinebooleanTrue for online events
venueobject or nullname, address, city, state, country, lat, lon. null for online events
rsvp_countintegerNumber of confirmed RSVPs (a count only)
waitlist_countintegerNumber of people on the waitlist
max_ticketsinteger or nullRSVP limit; null when the event has no limit
feeobject or nullamount and currency; null for free events
topicsarrayTopic tags of the event
hostsarrayDisplay names of the event hosts
groupobjectid, name, urlname, url, city, country, member_count, rating_average, rating_count, topic_category
image_urlstring or nullEvent photo
search_querystringThe keyword that returned the event, or the group URL for group listings
scraped_atstringUTC timestamp, ISO 8601

The actor returns event data only. It does not return attendee lists or member profiles; hosts are given by display name.

Fill rates in test searches in Berlin (141 events): title, URL, start and end time, time zone, status, RSVP count, waitlist count and group details were present on every row. Description, host names and image were present on 99 percent. Venue was present on 80 percent (online events have none), venue state on 31 percent, maximum tickets on 52 percent, topics on 36 percent. 35 percent of these events had a ticket fee.

Input

FieldTypeDefaultDescription
searchQuerieslist of text["dance"] when no keyword and no group is givenKeywords such as rust or startup networking. A comma or line separated text also works.
locationtextBerlin, DECity to search around, for example London, GB or Austin, TX.
latitude, longitudenumberemptySearch center as coordinates instead of a city name.
radiusMilesnumberemptyOnly events within this many miles of the location. Online events are not limited by distance.
startDateRangetextemptyOnly events starting on or after this date, YYYY-MM-DD or YYYY-MM-DDTHH:MM. Read in the time zone of the searched city.
endDateRangetextemptyOnly events starting before the end of this date.
eventTypetextanyany, physical, online or hybrid.
groupUrlslist of textemptyMeetup group URLs such as https://www.meetup.com/rust-berlin/, or just the group name. Lists the upcoming events of each group.
keywordMatchOnlybooleantrueReturn an event only if its title, description, topics or group name contains the keyword (all words of it). Switch off to also get the loosely related events Meetup ranks after the matches.
maxResultsinteger50Maximum number of events across all keywords and groups. 0 means no limit. The limit is shared equally between keywords and groups; a share that is not used goes to the later ones.
maxResultsPerQueryinteger0Maximum number of events for each keyword and each group. 0 means no separate limit.
proxyConfigurationobject{"useApifyProxy": true}Proxy settings. The default works for most runs.

Numbers may be given as text ("25"). An empty input {} runs a small sample search (dance, Berlin, DE, up to 10 events) and the run status says so. If no event mentions the sample keyword, the sample is repeated without the keyword filter so it never ends empty, and the status says so. If the input cannot be read, the actor runs that same sample and writes a warning to the log. The same keyword given twice is searched once, and an event that several searches find is delivered once.

Example input

{
"searchQueries": ["rust", "german"],
"location": "Berlin, DE",
"radiusMiles": 10,
"startDateRange": "2026-11-01",
"endDateRange": "2026-11-30",
"eventType": "physical",
"maxResults": 100
}

Group listing:

{
"groupUrls": ["https://www.meetup.com/rust-berlin/"],
"maxResults": 20
}

Example output

{
"event_id": "316647879",
"title": "German with Theater Games",
"url": "https://www.meetup.com/german-with-theater-games/events/316647879/",
"date_time": "2026-10-28T18:30:00+01:00",
"end_time": "2026-10-28T20:00:00+01:00",
"timezone": "Europe/Berlin",
"event_type": "PHYSICAL",
"status": "ACTIVE",
"description": "Dieser besondere Deutschkurs ist für alle, die mit Spiel und Spaß ihr Deutsch verbessern wollen. ...",
"is_online": false,
"venue": {
"name": "Studio K77",
"address": "Kastanienallee 77",
"city": "10435 Berlin",
"state": null,
"country": "DE",
"lat": 52.536472,
"lon": 13.407798
},
"rsvp_count": 2,
"waitlist_count": 0,
"max_tickets": 15,
"fee": { "amount": 12, "currency": "EUR" },
"topics": ["Improv", "German", "Fun Times", "Performing Arts", "Theater"],
"hosts": ["Nina Selchow"],
"group": {
"id": "16670192",
"name": "German with Theater Games",
"urlname": "german-with-theater-games",
"url": "https://www.meetup.com/german-with-theater-games",
"city": "Berlin",
"country": "DE",
"member_count": 3483,
"rating_average": 4.92,
"rating_count": 355,
"topic_category": "Art & Culture"
},
"image_url": "https://secure.meetupstatic.com/photos/event/7/b/a/c/highres_499171660.jpeg",
"search_query": "german",
"scraped_at": "2026-10-27T11:14:07Z"
}

Pricing

Pay per result. The price of each delivered event and the one-time start fee are shown on the Pricing tab of this Actor. You are charged only for events that were delivered; a run that finds nothing costs nothing. If you set a maximum cost per run, the run stops at that limit and the status message says how many events were delivered.

FAQ

Why does a keyword return few events? With keywordMatchOnly on (the default) only events that mention every word of the keyword are returned, so a narrow keyword in a small city can have few or no matches. Switch the option off to also receive loosely related events from the same area.

Does the radius apply to online events? No. Online events are not tied to a place and can appear in any search unless you set eventType to physical.

How does the location work? The city text is looked up automatically and the search is centred on the first match. For exact control give latitude and longitude.

Do I get past events? Searches and group listings return upcoming events.

What is in search_query for group listings? The group URL.

Limits

  • The order of the results can change between pages, so the actor removes duplicate events by event ID.
  • Descriptions are Markdown text as written by the organiser.
  • Only public event data is returned. Attendee lists and member profiles are not collected.