# Meetup Scraper (`anyxsolutions/meetup-scraper`) Actor

Scrape Meetup events and groups from city searches, topic pages, group pages or event URLs: date and time, venue with coordinates, ticket price, RSVP count, hosts, topics, group size, rating and organizer. Find local events and communities. No login, no API key.

- **URL**: https://apify.com/anyxsolutions/meetup-scraper.md
- **Developed by:** [Anyx Solutions](https://apify.com/anyxsolutions) (community)
- **Categories:** Social media, Lead generation, Travel
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![banner](https://anyx.solutions/banners/meetup-scraper.png)

## Meetup Scraper

**Meetup events and groups — dates, venues, ticket prices, RSVPs, hosts, members and ratings — as clean JSON.**

Meetup is where local communities organise in person and online: tech talks, hiking clubs, language
exchanges, founder mixers. This Actor reads Meetup's public search, topic, group and event pages, or
searches a topic in a city, and returns every event with its start and end time, time zone, venue
name, address and coordinates, ticket price, how many people are going, the waitlist, attendee
limit, hosts, topics, category, its group and the group's size, plus the description as plain text
and as Markdown. Groups come with their member count, city, organizer, rating, founding date,
topics, social links and upcoming events. There is no login, no API key, and no proxy to configure.
Built for event marketers and sponsors, community and developer-relations teams, venue and
hospitality sales, and anyone mapping local communities.

### ⚡ Quick start

```json
{
  "startUrls": [
    { "url": "https://www.meetup.com/find/us--ny--new-york/machine-learning/" }
  ],
  "maxItems": 5
}
```

Or search a topic in a city:

```json
{
  "searchTerms": ["python", "hiking"],
  "location": "Berlin, Germany",
  "type": "events"
}
```

### 🧩 Input

| Field                | Type    | Required | Default                      | Description                                                                                                                                                                                                                                                                                                                                                     |
| -------------------- | ------- | -------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `startUrls`          | array   | no       | —                            | Meetup pages: a topic search in a city (`/find/us--ny--new-york/python/`), a city's events (`/find/us--ny--new-york/`), a find URL from the search box (`/find/?keywords=…&location=…`), a topic's groups (`/topics/python/us/`), a group (`/pydatanyc/`), its upcoming or past events (`/pydatanyc/events/`, `/pydatanyc/events/?type=past`) or an event page. |
| `searchTerms`        | array   | no       | —                            | Meetup topics to search for, such as `python` or `machine learning`. Events are searched in `location`; groups are listed for the location's country.                                                                                                                                                                                                           |
| `location`           | string  | no       | —                            | Where to search: `New York, NY` for a US city, `Berlin, Germany` elsewhere, or Meetup's own form such as `us--ny--new-york`. Required when searching events.                                                                                                                                                                                                    |
| `type`               | string  | no       | `"events"`                   | What the search terms look for: `events` in the location, or `groups` — the topic's largest and newest groups in the location's country (the US when no location is given).                                                                                                                                                                                     |
| `maxItems`           | integer | no       | —                            | Maximum number of events or groups per start URL or search term. The input form starts at 5; leave it empty to get every result the page lists.                                                                                                                                                                                                                 |
| `includeDetails`     | boolean | no       | `true`                       | Open every event or group page for the full record (end time, coordinates, hosts, topics and group size for events; description, rating, organizer and upcoming events for groups). Turn it off for faster list-only rows.                                                                                                                                      |
| `proxyConfiguration` | object  | no       | `{ "useApifyProxy": false }` | Proxy settings. Meetup pages need no proxy.                                                                                                                                                                                                                                                                                                                     |

**Which pages work.** A topic search in a city returns the events Meetup lists for it, most relevant
first. A city page returns its upcoming, today's, this weekend's and featured events. A topic page
returns the topic's 10 largest and 6 newest groups in a country. A group's events page returns its
upcoming events in date order, or with `?type=past` its 10 most recent past events. A group page
returns the group; an event page returns the event.

### 📤 Output

Each event is one dataset row with `itemType` `event`; each group is one row with `itemType`
`group`. With `includeDetails` on (the default) every row comes from the event's or group's own
page; with it off, rows come straight from the list and fields the list does not show are `null`.

#### Fields

| Field                 | Type    | Description                                                       |
| --------------------- | ------- | ----------------------------------------------------------------- |
| `itemType`            | string  | `event` or `group`.                                               |
| `url`                 | string  | The event's or group's page on Meetup.                            |
| `eventId`             | string  | Meetup event ID.                                                  |
| `title`               | string  | Event title.                                                      |
| `description`         | string  | Event or group description as plain text, with link targets kept. |
| `descriptionMarkdown` | string  | The same, as the organiser wrote it in Markdown.                  |
| `status`              | string  | Event status: `ACTIVE` (upcoming), `PAST` or `CANCELLED`.         |
| `dateTime`            | string  | Start, ISO 8601 with the local UTC offset.                        |
| `endTime`             | string  | End, ISO 8601 with the local UTC offset.                          |
| `timezone`            | string  | The group's time zone, e.g. `America/New_York`.                   |
| `eventType`           | string  | `PHYSICAL`, `ONLINE` or `HYBRID`.                                 |
| `isOnline`            | boolean | Whether the event is online.                                      |
| `venueName`           | string  | Venue name; `null` for online events.                             |
| `venueAddress`        | string  | Venue street address.                                             |
| `venueCity`           | string  | Venue city.                                                       |
| `venueState`          | string  | Venue state or region.                                            |
| `venueCountry`        | string  | Venue country code, e.g. `us`.                                    |
| `venueLat`            | number  | Venue latitude.                                                   |
| `venueLng`            | number  | Venue longitude.                                                  |
| `feeAmount`           | number  | Ticket price; `null` for free events.                             |
| `feeCurrency`         | string  | Ticket price currency, e.g. `USD`.                                |
| `goingCount`          | number  | Number of people going (RSVP yes).                                |
| `waitlistCount`       | number  | Number of people on the waitlist.                                 |
| `maxAttendees`        | number  | Attendee limit; `null` when there is none.                        |
| `hosts`               | array   | Names of the event's hosts.                                       |
| `imageUrl`            | string  | Event or group photo.                                             |
| `topics`              | array   | Topic names of the event or group.                                |
| `category`            | string  | The group's Meetup category, e.g. `Technology`.                   |
| `groupName`           | string  | Name of the group hosting the event.                              |
| `groupUrlname`        | string  | The hosting group's URL name, e.g. `pydatanyc`.                   |
| `groupUrl`            | string  | The hosting group's page.                                         |
| `groupMemberCount`    | number  | Members of the hosting group.                                     |
| `groupId`             | string  | Meetup group ID.                                                  |
| `name`                | string  | Group name.                                                       |
| `urlname`             | string  | The group's URL name.                                             |
| `memberCount`         | number  | Number of group members.                                          |
| `city`                | string  | Group city.                                                       |
| `state`               | string  | Group state or region.                                            |
| `country`             | string  | Group country code.                                               |
| `lat`                 | number  | Group latitude.                                                   |
| `lng`                 | number  | Group longitude.                                                  |
| `foundedDate`         | string  | When the group was founded (ISO 8601).                            |
| `organizerName`       | string  | The group's organizer.                                            |
| `rating`              | number  | Average event rating out of 5.                                    |
| `ratingsCount`        | number  | Number of event ratings.                                          |
| `isPrivate`           | boolean | Whether the group is private.                                     |
| `joinMode`            | string  | How people join: `OPEN`, `APPROVAL` or `CLOSED`.                  |
| `proNetwork`          | string  | The Meetup Pro network the group belongs to, e.g. `PyData`.       |
| `upcomingEventsCount` | number  | Number of upcoming events.                                        |
| `pastEventsCount`     | number  | Number of past events.                                            |
| `upcomingEvents`      | array   | The next few events: `title`, `url` and `dateTime`.               |
| `socialLinks`         | array   | The group's social profiles: `service` and `url`.                 |
| `sourceUrl`           | string  | The start URL or search the row came from.                        |

<details><summary>Example output</summary>

```json
[
  {
    "itemType": "event",
    "url": "https://www.meetup.com/startup-pitch-networking-nyc/events/316527055/",
    "eventId": "316527055",
    "title": "AI & Machine Learning Start-Ups, Professionals, Investors Networking NYC",
    "description": "✨ To join this event, please make sure to book your ticket here 👉 https://www.eventbrite.com/e/nyc-ai-tech-startups-investors-innovators-networking-mixer-ticket…",
    "descriptionMarkdown": "**✨ To join this event, please make sure to book your ticket here 👉 [https://www.eventbrite.com/e/nyc-ai-tech-startups-investors-innovators-networking-mixer-tic…",
    "status": "ACTIVE",
    "dateTime": "2026-10-13T19:00:00-04:00",
    "endTime": "2026-10-13T22:00:00-04:00",
    "timezone": "America/New_York",
    "eventType": "PHYSICAL",
    "isOnline": false,
    "venueName": "The Three Monkeys",
    "venueAddress": "832 8th Ave, New York, NY 10019, USA",
    "venueCity": "New York",
    "venueState": "NY",
    "venueCountry": "us",
    "venueLat": 40.762366,
    "venueLng": -73.985763,
    "feeAmount": 30,
    "feeCurrency": "USD",
    "goingCount": 22,
    "waitlistCount": 0,
    "maxAttendees": null,
    "hosts": ["Scott Johnson"],
    "imageUrl": "https://secure.meetupstatic.com/photos/event/9/0/5/4/highres_531876948.jpeg",
    "topics": [
      "Artificial Intelligence",
      "Machine Learning",
      "Startup Businesses",
      "Technology Startups",
      "Technology"
    ],
    "category": "Career & Business",
    "groupName": "Startup Pitch & Networking – NYC",
    "groupUrlname": "startup-pitch-networking-nyc",
    "groupUrl": "https://www.meetup.com/startup-pitch-networking-nyc/",
    "groupMemberCount": 3196,
    "sourceUrl": "https://www.meetup.com/find/us--ny--new-york/machine-learning/"
  },
  {
    "itemType": "group",
    "url": "https://www.meetup.com/pydatanyc/",
    "groupId": "15288302",
    "name": "PyData NYC",
    "urlname": "pydatanyc",
    "description": "PyData is an educational program of NumFOCUS, a 501(c)3 non-profit organization in the United States. PyData provides a forum for the international community of…",
    "descriptionMarkdown": "PyData is an educational program of NumFOCUS, a 501(c)3 non-profit organization in the United States. PyData provides a forum for the international community of…",
    "memberCount": 8018,
    "city": "New York",
    "state": "NY",
    "country": "us",
    "lat": 40.76,
    "lng": -73.97,
    "timezone": "America/New_York",
    "foundedDate": "2014-06-24T11:58:07-04:00",
    "organizerName": "NumFOCUS, Inc.",
    "category": "Technology",
    "topics": [
      "Python",
      "Data Management",
      "Business Intelligence",
      "Big Data",
      "Machine Learning"
    ],
    "rating": 4.66,
    "ratingsCount": 367,
    "isPrivate": false,
    "joinMode": "OPEN",
    "proNetwork": "PyData",
    "imageUrl": "https://secure.meetupstatic.com/photos/event/c/0/7/b/highres_467329275.jpeg",
    "upcomingEventsCount": 2,
    "pastEventsCount": 93,
    "upcomingEvents": [
      {
        "title": "Spatial Analytics with Python 🌎",
        "url": "https://www.meetup.com/pydatanyc/events/316912352/",
        "dateTime": "2026-10-27T18:30:00-04:00"
      },
      {
        "title": "Innodata Hackathon: Build at the Frontier of AI",
        "url": "https://www.meetup.com/pydatanyc/events/316949988/",
        "dateTime": "2026-11-14T09:00:00-05:00"
      }
    ],
    "socialLinks": [
      {
        "service": "TWITTER",
        "url": "https://twitter.com/pydatanyc"
      },
      {
        "service": "LINKEDIN",
        "url": "https://www.linkedin.com/company/pydata-nyc/"
      },
      {
        "service": "OTHER",
        "url": "https://discord.gg/ffnmygKf4T"
      }
    ],
    "sourceUrl": "https://www.meetup.com/pydatanyc/"
  }
]
```

</details>

### 💡 Use cases

- **Event marketing and sponsorship** — find the active tech, startup or professional events in a city, with attendance and ticket prices, to pick where to sponsor or speak.
- **Developer relations and community teams** — track the groups and events around a language or tool, their size, ratings and how often they meet.
- **Venue and hospitality sales** — see which venues host events, how many people come and which organisers run them.
- **Market and local research** — map communities by topic and country, with member counts, founding dates and categories.

### ❓ FAQ

- **Do I need a Meetup account or an API key?** No. The Actor reads the same public pages any visitor sees.
- **Do I need a proxy?** No. It runs without one by default.
- **How many events does a search return?** The events Meetup lists on the search page, usually 10 to 30 per topic and city. For more, search several topics or nearby cities, or start from the groups you care about.
- **Which topics can I search?** Meetup's own topics, such as `python`, `machine learning`, `hiking` or `book clubs`. A term that is not a Meetup topic finds nothing; the topic names appear on any group or event page.
- **Do the date, distance and category filters of a find URL apply?** Only the online / in-person filter (`eventType`) is applied. The other filters are not read, so the results are Meetup's default listing for the topic and city.
- **How do I get groups in a city?** Paste the city's group pages, or search `groups` for the country and filter by `city`.
- **Why are the coordinates empty for some events?** Online events have no venue, so the venue fields are `null`. Rows taken from a list with `includeDetails` off also carry no coordinates.

### 🔗 More scrapers by Anyx

- [Lu.ma Event Scraper](https://apify.com/anyxsolutions/lu-ma-scraper)
- [Dice.fm Event Scraper](https://apify.com/anyxsolutions/dice-fm-scraper)
- [Google Maps Email & Contact Extractor](https://apify.com/anyxsolutions/google-maps-email-extractor)
- [Reddit Scraper](https://apify.com/anyxsolutions/reddit-scraper)

### 🤝 Anyx Solutions

We build custom scrapers and data-extraction pipelines.

- Email: tantosthor@gmail.com

### 🖼 Image credit

Image credit: [meetup.com](https://www.meetup.com/)

# Actor input Schema

## `startUrls` (type: `array`):

Meetup pages to scrape: a topic search in a city (https://www.meetup.com/find/us--ny--new-york/machine-learning/), a city's events (https://www.meetup.com/find/us--ny--new-york/), a topic's groups (https://www.meetup.com/topics/python/us/), a group (https://www.meetup.com/pydatanyc/), its events (https://www.meetup.com/pydatanyc/events/ or ?type=past) or an event page.

## `searchTerms` (type: `array`):

Meetup topics to search for, for example python, machine learning or hiking. Events are searched in the location below; groups are listed for the location's country.

## `location` (type: `string`):

Where to search, for example New York, NY for a US city, Berlin, Germany elsewhere, or Meetup's own form such as us--ny--new-york. Required when searching events.

## `type` (type: `string`):

What the search terms look for: events in the location, or the topic's largest and newest groups in the location's country.

## `maxItems` (type: `integer`):

Maximum number of events or groups to return per start URL or search term. Leave empty to get every result the page lists.

## `includeDetails` (type: `boolean`):

Open every event or group page for the full record: end time, coordinates, hosts, topics, waitlist and group size for events; description, rating, organizer and upcoming events for groups. Turn off for faster list-only rows.

## `proxyConfiguration` (type: `object`):

Proxy settings. Meetup pages need no proxy; for runs of thousands of events, a datacenter proxy spreads the requests over several IPs.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.meetup.com/find/us--ny--new-york/machine-learning/"
    }
  ],
  "type": "events",
  "maxItems": 5,
  "includeDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.meetup.com/find/us--ny--new-york/machine-learning/"
        }
    ],
    "maxItems": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("anyxsolutions/meetup-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.meetup.com/find/us--ny--new-york/machine-learning/" }],
    "maxItems": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("anyxsolutions/meetup-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.meetup.com/find/us--ny--new-york/machine-learning/"
    }
  ],
  "maxItems": 5
}' |
apify call anyxsolutions/meetup-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,anyxsolutions/meetup-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/eELZMWqxEA6v3yuDU/builds/MsV7ct1FnNoLU5RMq/openapi.json
