Meetup API
The Meetup API returns local event and group data as clean JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary search endpoint returns events with id, name, URL, start and end dates, online flag, type, attendee count and fee, and you can pull an event, a group and a group's events. It is built for event-discovery apps, community tools and local-marketing products that need Meetup data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/meetup/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"location": "New York"
}
}{
"ok": true,
"meta": {
"api": "meetup",
"endpoint": "search",
"mode": "live",
"latency_ms": 6097.3,
"record_count": 17,
"bytes": 13434,
"cache_hit": false,
"stop_reason": "limit_reached",
"method": "gql_recommended_events",
"total_count": 17,
"has_more": true,
"next_cursor": "MjA=",
"resolved_location": "New York, NY"
},
"data": {
"events": [
{
"event_id": "[redacted-phone]",
"name": "[redacted-name]",
"url": "https://www.meetup.com/from-surviving-to-thriving-workshops-in-emotional-education/events/[redacted-phone]/",
"start_date": "[redacted-phone]T15:00:00-04:00",
"end_date": "[redacted-phone]T17:00:00-04:00",
"is_online": true,
"event_type": "ONLINE",
"going_count": 211,
"max_tickets": null,
"fee": null,
"image": "https://secure.meetupstatic.com/photos/event/b/c/6/7/highres_[redacted-phone].jpeg",
"venue": {
"name": "[redacted-name]",
"address": null,
"city": null,
"state": null,
"country": null,
"postal_code": null,
"latitude": -8.521147,
"longitude": 179.1962
},
"group": {
"group_id": "38561325",
"name": "[redacted-name]",
"urlname": "from-surviving-to-thriving-workshops-in-emotional-education",
"city": "New York",
"state": "NY",
"country": "us"
}
},
{
"event_id": "[redacted-phone]",
"name": "[redacted-name]",
"url": "https://www.meetup.com/neverwinter-free-parties/events/[redacted-phone]/",
"start_date": "[redacted-phone]T18:00:00-04:00",
"end_date": "[redacted-phone]T19:30:00-04:00",
"is_online": false,
"event_type": "PHYSICAL",
"going_count": 135,
"max_tickets": null,
"fee": null,
"image": "https://secure.meetupstatic.com/photos/event/3/6/6/e/highres_[redacted-phone].jpeg",
"venue": {
"name": "[redacted-name]",
"address": "1501 Broadway, New York, NY 10036, United States",
"city": "New York",
"state": null,
"country": "in",
"postal_code": "10036",
"latitude": 40.756973,
"longitude": -73.98654
},
"group": {
"group_id": "36262869",
"name": "[redacted-name]",
"urlname": "neverwinter-free-parties",
"city": "New York",
"state": "NY",
"country": "us"
}
},
{
"event_id": "[redacted-phone]",
"name": "[redacted-name]",
"url": "https://www.meetup.com/stripe-new-york/events/[redacted-phone]/",
"start_date": "[redacted-phone]T18:00:00-04:00",
"end_date": "[redacted-phone]T20:00:00-04:00",
"is_online": false,
"event_type": "PHYSICAL",
"going_count": 201,
"max_tickets": 214,
"fee": null,
"image": "https://secure.meetupstatic.com/photos/event/a/7/e/9/highres_[redacted-phone].jpeg",
"venue": {
"name": "[redacted-name]",
"address": "28 Liberty St. Fl. 48 New York, NY 10005",
"city": "New York",
"state": "NY",
"country": "us",
"postal_code": "10005",
"latitude": 40.707752,
"longitude": -74.008705
},
"group": {
"group_id": "37825173",
"name": "[redacted-name]",
"urlname": "stripe-new-york",
"city": "New York",
"state": "NY",
"country": "us"
}
}
]
}
}What the Meetup API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | 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.) | Content platforms call search to discover upcoming events near a city. | location, event_type, date, radius, cursor |
| event | 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. | Research tools call event to get full detail for one event by id or url. | event_id, url |
| group | 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. | Community analysts call group to get full profile for a Meetup group by urlname or url. | group, urlname, url |
| group_events | 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. | Media monitors call group_events to get a group's events by urlname or url. | group, urlname, url, type |
Call search from your stack
curl -X POST https://api.reefapi.com/meetup/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"location":"New York"}'import requests
r = requests.post(
"https://api.reefapi.com/meetup/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"location": "New York"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/meetup/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"location": "New York"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.meetup.search with {"location":"New York"}.Who uses this API and why
- Event-discovery apps call search to show upcoming Meetup events near a user.
- Community tools use group and group_events to track a community's activity.
- Local-marketing products use search to find engaged audiences by topic and city.
Questions developers ask before integrating
What is the Meetup API?
Meetup API is a ReefAPI endpoint group for meetup It returns live JSON through POST requests under /meetup/v1.
Is the Meetup API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Meetup calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Meetup login or account?
No login to Meetup is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Meetup data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Meetup API use?
Meetup actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Meetup from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call meetup actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Meetup API a Meetup scraper?
It is the managed alternative to a DIY Meetup scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same meetup back as clean JSON.
Why does my Meetup scraper keep getting blocked?
Most Meetup scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.