# Meetup API scraper — discover upcoming events near any city (filter by in-person vs online and by date, paginated), pull full event detail (name, description, date, venue, fee, RSVP count, group), get a group's full profile (members, rating, topics, location, description) and list a group's upcoming and past events from Meetup.com — no login, no API key

> Discover upcoming events near a city. Filter by event type (in-person or online) and by date window, paginated. Returns each event's name, date, venue with coordinates, RSVP count, fee, image and the hosting group. (Meetup's logged-out discovery feed is location-based — pass a city; for a specific topic, browse a relevant group's events.)
> ReefAPI engine `meetup` · 4 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/meetup/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed or blocked calls are free.
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http, `Authorization: Bearer <key>`) and your assistant can call these actions directly.

## Endpoints

### POST /meetup/v1/search — 1 credit
Discover upcoming events near a city. Filter by event type (in-person or online) and by date window, paginated. Returns each event's name, date, venue with coordinates, RSVP count, fee, image and the hosting group. (Meetup's logged-out discovery feed is location-based — pass a city; for a specific topic, browse a relevant group's events.)

**Parameters:**
- `location` (string, optional) — City to find events near — a plain place name ('Chicago', 'London', 'Austin, TX', 'Berlin'). We geocode it for you (US and international). Defaults to New York, NY.
- `event_type` (enum, optional) — Restrict to in-person (PHYSICAL) or ONLINE events. Omit for both. [one of: PHYSICAL, ONLINE]
- `date` (enum, optional) — Optional date window for upcoming events. [one of: today, tomorrow, this-week, this-weekend, this-month]
- `radius` (number, optional, default 25) — Search radius in miles around the city (1-100, default 25).
- `cursor` (string, optional) — Pagination cursor. Pass meta.next_cursor from the previous response to fetch the next page. Page until meta.has_more is false.

**Returns:** events[]{event_id, name, url, start_date, end_date, is_online, event_type, going_count, fee{amount,currency,is_free}, image, venue{name,address,city,state,country,postal_code,latitude,longitude}, group{group_id,name,urlname,city,state,country}} + meta{total_count, has_more, next_cursor, resolved_location}

**Example request body:**
```json
{
  "location": "New York"
}
```

### POST /meetup/v1/event — 1 credit
Full detail for one event by id or url: name, description, start/end datetime, venue with full address and coordinates, hosting group, fee, RSVP/going count, topics, event type and status.

**Parameters:**
- `event_id` (string, optional) — Meetup event id (the number in /<group>/events/<id>/). From a search result's event_id. Requires `url` too if the group urlname is unknown (the id alone needs its group path).
- `url` (string, optional) — Full Meetup event URL (preferred — carries the group path).

**Returns:** event{event_id, name, description, start_date, end_date, status, is_online, event_type, going_count, max_tickets, fee, image, venue{...}, topics, host_count, group{group_id,name,urlname}}

**Example request body:**
```json
{
  "url": "https://www.meetup.com/code-for-boston/events/315094325/"
}
```

### POST /meetup/v1/group — 1 credit
Full profile for a Meetup group by urlname or url: name, member count, average event rating, topics, city/coordinates, description, join mode, founded date and social links.

**Parameters:**
- `group` (string, optional) — Meetup group urlname (the slug in meetup.com/<urlname>/). From a search result's group.urlname.
- `url` (string, optional) — Alternatively a full Meetup group URL.

**Returns:** group{group_id, name, urlname, url, description, member_count, leadership_count, rating, rating_count, topics, city, state, country, latitude, longitude, join_mode, founded_date, photo, social_links}

**Example request body:**
```json
{
  "group": "code-for-boston"
}
```

### POST /meetup/v1/group_events — 1 credit
A group's events by urlname or url. Choose upcoming (default) or past. Returns each event with name, datetime, venue, fee, RSVP count and link.

**Parameters:**
- `group` (string, optional) — Meetup group urlname to list events for.
- `url` (string, optional) — Alternatively a full Meetup group URL.
- `type` (enum, optional, default "upcoming") — 'upcoming' (default) or 'past' events. [one of: upcoming, past]

**Returns:** events[]{event_id, name, url, start_date, end_date, status, is_online, event_type, going_count, fee, image, venue{...}, group{...}} + meta{type, group_urlname}

**Example request body:**
```json
{
  "group": "code-for-boston"
}
```

## More
- Try it live, no code: https://reefapi.com/playground?engine=meetup
- Human docs page: https://reefapi.com/docs/meetup
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
