
Instagram Reel Scraper
scrape.ly/store/echofield/instagram-reel-scraperSocial mediaVideos
1 monthly user

Scrape Meetup events and groups by keyword and city, or from event, group and search URLs. Get dates, venue and coordinates, RSVP counts, fees, hosts, topics, and group profiles with member counts, organizer, ratings and social links.
Scrape Meetup.com events and groups by keyword and city, or straight from event, group and search URLs. Every event comes with its date and time zone, venue and GPS coordinates, RSVP count and capacity, fee, hosts, topics and a full group profile. Switch to groups mode for member counts, organizers, ratings and social links. No login, no browser, and a 100-event search finishes in seconds.
javascript + London), or paste Meetup URLs.| Field | What it does |
|---|---|
searchTerms | Keywords, one search each. Leave empty to list all upcoming events near the location. |
location | City to search around, e.g. London, Austin, TX, München. |
startUrls | Event, group or meetup.com/find/ search URLs. |
mode | events (default) or groups. |
maxResults | Maximum results across all inputs (0 = no limit). |
country, radius, eventType, category, startDate, endDate, minRsvps, sortBy | Search filters. |
groupEvents | For group URLs: upcoming, past or all. |
{
"searchTerms": ["javascript"],
"location": "London",
"maxResults": 20,
"startUrls": [
"https://www.meetup.com/london-js/",
"https://www.meetup.com/python-users-berlin-pub/events/?type=past"
]
}
Events mode saves one row per event:
| Field | Description |
|---|---|
eventId, eventName, eventUrl, eventDescription | The event |
eventType, eventStatus, isOnline | In person, online or hybrid; active, past or cancelled |
startDateTime, endDateTime, durationISO, timezone | When, with the local offset and IANA time zone |
venue, venueName, venueCity, address, lat, lon | Where |
actualAttendees, maxAttendees, waitlistCount, rsvpState | RSVPs and capacity |
isPaidEvent, feeAmount, feeCurrency, feeRequired | Fee |
organizedByGroup, groupMemberCount, category, group | The group, its organizer, ratings and social links |
hosts, topics, series, featuredPhotoUrl | Hosts with profile URLs, topic tags, recurring series, photo |
Groups mode saves one row per group: groupName, groupUrl, memberCount, category, city, country, foundedDate, joinMode, ratingAverage, ratingCount, reviewCount, organizerName, organizerProfileUrl, socialLinks, topics, upcomingEventsCount, pastEventsCount, nextEventDate and more.
Example event (trimmed, people are fictional):
{
"type": "event",
"eventId": "316953049",
"eventName": "London.js at VEED.IO on Wednesday 28th October 2026",
"eventType": "PHYSICAL",
"eventUrl": "https://www.meetup.com/london-js/events/316953049/",
"startDateTime": "2026-10-28T18:00:00Z",
"endDateTime": "2026-10-28T20:30:00Z",
"durationISO": "PT2H30M",
"timezone": "Europe/London",
"address": "17-18 Clere Street, VEED.IO, London",
"venue": { "name": "VEED.IO", "address": "17-18 Clere Street", "city": "London", "country": "gb", "postalCode": "EC2A 4LJ", "lat": 51.524063, "lon": -0.08462 },
"actualAttendees": 51,
"maxAttendees": 160,
"isPaidEvent": false,
"eventStatus": "ACTIVE",
"organizedByGroup": "London.js - Learn, Share & Use JavaScript",
"groupMemberCount": 4480,
"category": "Technology",
"group": {
"urlname": "london-js",
"memberCount": 4480,
"ratingAverage": 4.72,
"ratingCount": 511,
"organizerName": "Jane Example",
"organizerProfileUrl": "https://www.meetup.com/members/123456789/",
"socialLinks": [{ "service": "LINKEDIN", "url": "https://www.linkedin.com/company/example" }]
},
"hosts": [{ "name": "Alex Sample", "memberId": "987654321", "memberUrl": "https://www.meetup.com/members/987654321/" }],
"topics": [{ "id": "1504197", "name": "JavaScript", "urlkey": "javascript" }],
"source": "search",
"searchQuery": "javascript",
"scrapedAt": "2026-10-16T08:00:00Z"
}
You pay $0.75 per 1,000 results ($0.00075 per event or group), plus a small amount of platform usage (compute and datacenter proxy traffic, usually around 1 cent per 1,000 results). Example: 1,000 events cost about $0.76 in total.
Is it legal to scrape Meetup? The actor only reads public data that Meetup shows to logged-out visitors. You are responsible for how you use the data, including privacy rules such as GDPR.
Do I need a Meetup account or proxy? No. No login and no cookies. The default datacenter proxy works well.
How many results can I get? Meetup returns a few hundred results per search. When a search hits that ceiling, the actor splits it into single days (the next 120 days, or your date range) to collect more. Group URLs return all of a group's upcoming or past events.
Why does a keyword search return loosely related events? Meetup's own search is semantic and also returns nearby related events. Sort by relevance (the default) to see the closest matches first.
Why is a field empty? Meetup leaves it empty for that event, for example no venue for online events, no capacity when attendance is unlimited, or no rating before a group has reviews.
Can I schedule it or use the API? Yes. Schedule runs to monitor new events, and start runs and read results through the API.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchTermsarrayOptionalSearch keywords
Keywords to search for, e.g. 'javascript' or 'hiking'. Each keyword runs as its own search near the location below. Leave empty to list all upcoming events near the location.
locationstringOptionalLocation
City to search around, e.g. 'London', 'Austin, TX' or 'München'. Needed for keyword searches.
startUrlsarrayOptionalMeetup URLs
Meetup event pages (meetup.com//events//), group pages (meetup.com//, past events with /events/?type=past) or search pages (meetup.com/find/?keywords=...&location=...). Search URL filters are kept.
modeenumOptionaldefault "events"What to scrape
Events, or group profiles (member count, organizer, ratings, social links). Applies to keyword searches and group URLs.
maxResultsintegerOptionaldefault 20Max results
Maximum number of results to save across all inputs. Set 0 for no limit.
Apply to keyword searches. Group URLs use only the dates, event type and minimum RSVPs.
countrystringOptionalCountry code
Two-letter country code to pick the right city when the name is ambiguous, e.g. 'us', 'gb', 'de'.
radiusintegerOptionalRadius (miles)
Search radius around the location in miles. Leave empty for Meetup's default.
eventTypeenumOptionalEvent type
Only in-person, online or hybrid events.
categoryenumOptionalCategory
Only events or groups in this Meetup category.
startDatestringOptionalFrom date
Only events starting on or after this day (YYYY-MM-DD). Search covers upcoming events.
endDatestringOptionalTo date
Only events starting on or before this day (YYYY-MM-DD).
minRsvpsintegerOptionalMinimum RSVPs
Only events with at least this many attendees going.
sortByenumOptionalSort keyword results by
Relevance (Meetup's default) or soonest first. Browsing without a keyword always uses Meetup's recommended order.
groupEventsenumOptionaldefault "upcoming"Group URL events
Which events to save for group URLs: upcoming, past, or both. A group URL ending in /events/?type=past always lists past events.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy
Datacenter proxies work well for Meetup.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| type | string | null | event or group |
| eventId | string | null | Meetup event id |
| eventName | string | null | Event title |
| eventDescription | string | null | Event description (Markdown) |
| eventType | string | null | PHYSICAL, ONLINE or HYBRID |
| date | string | null | Start, local time with offset |
| address | string | null | Venue address or 'Online event' |
| eventUrl | string | null | Event page |
| organizedByGroup | string | null | Group name |
| groupUrlname | string | null | Group URL name |
| groupId | string | null | Group id |
| groupMemberCount | number | null | Group members |
| category | string | null | Meetup category |
| maxAttendees | number | null | Capacity (empty if unlimited) |
| actualAttendees | number | null | Attendees going |
| waitlistCount | number | null | Waitlist |
| isPaidEvent | boolean | null | Has a fee |
| feeAmount | number | null | Fee |
| feeCurrency | string | null | Fee currency |
| eventStatus | string | null | ACTIVE, PAST, CANCELLED... |
| isOnline | boolean | null | Online event |
| startDateTime | string | null | Start |
| endDateTime | string | null | End |
| durationISO | string | null | Duration (ISO 8601) |
| timezone | string | null | IANA time zone |
| venueName | string | null | Venue |
| venueCity | string | null | Venue city |
| venueCountry | string | null | Venue country |
| lat | number | null | Latitude |
| lon | number | null | Longitude |
| featuredPhotoUrl | string | null | Event photo |
| venue | object | null | Venue details |
| group | object | null | Group and organizer details |
| hosts | array | null | Event hosts |
| topics | array | null | Topics |
| groupName | string | null | Group name (groups mode) |
| groupUrl | string | null | Group page (groups mode) |
| memberCount | number | null | Members (groups mode) |
| organizerName | string | null | Organizer |
| organizerProfileUrl | string | null | Organizer profile |
| ratingAverage | number | null | Average rating |
| socialLinks | array | null | Social links |
| upcomingEventsCount | number | null | Upcoming events (groups mode) |
| pastEventsCount | number | null | Past events (groups mode) |
| scrapedAt | string | null | Scraped at |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Result | One saved Meetup event or group. | $0.00075 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('echofield/meetup-scraper').call({
"searchTerms": [
"javascript"
],
"location": "London",
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run echofield/meetup-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=echofield/meetup-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Meetup groups found by keyword and city.
Earlier events from a Meetup group URL.
Online technology events, soonest first.
Browse events near a city without a keyword.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.