Meetup event search
Meetup events around a place or map point, by keywords (or the site's events-near-you list without keywords), in person or online, in a date range and radius, in a topic category, sorted by relevance or date. Each event: id, title, link, start and end, type (in person or online), status, RSVP state, going and interested counts, trending flag, fee, venue (name, address, city, coordinates), group (name, link, rating) and image. Pass next_cursor back as cursor.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
location | string | A place name, e.g. New York, London, Berlin, Germany. Example: New York |
latitude | string | Or a map point: latitude. |
longitude | string | Map point longitude. |
q | string | Keywords (optional). Example: python |
type | online | in_person | Only online or only in-person events. |
start_date | string | Events starting on or after (YYYY-MM-DD or ISO date-time). |
end_date | string | Events starting before (YYYY-MM-DD or ISO date-time). |
radius | integer | Search radius in miles. |
category_id | string | Topic category id, e.g. 546 (technology). |
sort | relevance | date | Order with keywords (default relevance). |
limit | integer | Results per page (default 20, max 50). |
cursor | string | Pass next_cursor from the previous response; null on the last page. |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/meetup/v1/events?location=New+York" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/meetup/v1/events",
params={"location": "New York"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/meetup/v1/events");
url.searchParams.set("location", "New York");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).