Event Scraper Pro

Event Scraper Pro

by barrierefix

Professional Apify Actor that aggregates upcoming events from Eventbrite, Meetup, and Lu.ma with attendee counts, organizer info, and unified data mod...

301 runs
40 users
Try This Actor

Opens on Apify.com

About Event Scraper Pro

Professional Apify Actor that aggregates upcoming events from Eventbrite, Meetup, and Lu.ma with attendee counts, organizer info, and unified data model.

What does this actor do?

Event Scraper Pro is a web scraping and automation tool available on the Apify platform. It's designed to help you extract data and automate tasks efficiently in the cloud.

Key Features

  • Cloud-based execution - no local setup required
  • Scalable infrastructure for large-scale operations
  • API access for integration with your applications
  • Built-in proxy rotation and anti-blocking measures
  • Scheduled runs and webhooks for automation

How to Use

  1. Click "Try This Actor" to open it on Apify
  2. Create a free Apify account if you don't have one
  3. Configure the input parameters as needed
  4. Run the actor and download your results

Documentation

Event Scraper Pro - Multi-Platform Event Aggregator Professional Apify Actor that aggregates upcoming events from Eventbrite, Meetup, and Lu.ma with attendee counts, organizer info, and unified data model. Apify TypeScript Pay-per-Event ## Features - 🎯 Multi-Platform Aggregation: Scrapes events from Eventbrite, Meetup, and Lu.ma in one unified Actor - 📊 RSVP Counts: Captures publicly available RSVP numbers from Meetup and Lu.ma events - 🏢 Organizer Intelligence: Extracts organizer profiles, follower counts, and contact information for lead generation - 🔄 Smart Deduplication: Fuzzy matching across platforms to eliminate duplicate events - 🏷️ Industry Classification: Map events to custom industry categories for targeted filtering - 📅 ICS Calendar Export: Generate .ics calendar files for easy import to Google Calendar, Outlook, etc. - 🔗 n8n Webhook Integration: Push results to n8n workflows for automated prospecting - 💾 State Persistence: Tracks seen events across runs to avoid duplicates - 💰 Pay-per-Event Pricing: Only pay for events ingested, not compute time ## Use Cases - Event Discovery: Find relevant events in your target cities and industries - Lead Generation: Identify high-engagement event organizers with follower counts - Market Research: Analyze event trends, topics, and attendance patterns - Community Outreach: Build targeted lists for partnership and sponsorship opportunities - Competitive Intelligence: Track competitor events and audience sizes ## Data Sources | Platform | RSVP Data | Organizer Data | Data Quality | |----------|-----------|----------------|--------------| | Meetup | ✅ RSVP counts (always public) | Group members, profile URL | Excellent | | Lu.ma | ✅ Guest counts (usually public) | Host profile, event history | Excellent | | Eventbrite | ❌ Not available | Organizer followers, profile | Good | ## Input Configuration ### Basic Example json { "queries": [ { "keywords": ["tech", "startup"], "locations": ["San Francisco, US"], "dateFrom": "2026-01-01", "dateTo": "2026-03-01", "platforms": ["eventbrite", "meetup", "luma"] } ], "minAttendees": 20, "generateICS": true, "webhookUrl": "https://n8n.yourdomain.com/webhook/events" } Note on minAttendees: This filter uses rsvpCount as the metric. Only Meetup and Lu.ma provide RSVP counts, so Eventbrite events will be included regardless of this setting. ### Advanced Example with Industry Mapping json { "queries": [ { "keywords": ["devops", "kubernetes", "docker"], "locations": ["San Francisco, US", "New York, US"], "dateFrom": "2026-01-01", "dateTo": "2026-04-01", "platforms": ["meetup", "luma"], "eventType": "all" } ], "minAttendees": 50, "includeFree": true, "includePaid": true, "industryMapping": { "DevOps": ["devops", "kubernetes", "docker", "ci/cd"], "Cloud": ["aws", "azure", "gcp", "cloud native"] }, "fuzzyTitleThreshold": 0.82, "timeWindowMinutes": 90, "distanceMeters": 800, "webhookUrl": "https://n8n.yourdomain.com/webhook/tech-events", "webhookHeaders": { "Authorization": "Bearer YOUR_TOKEN" }, "generateICS": true, "maxItemsPerPlatform": 1000 } ## Input Parameters | Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | queries | array | ✅ Yes | - | Array of search queries with keywords, locations, dates, and platforms | | minAttendees | number | No | 0 | Minimum RSVP count to include events (0 = all, only applies to Meetup/Lu.ma) | | includeFree | boolean | No | true | Include free events in results | | includePaid | boolean | No | true | Include paid/ticketed events | | maxItemsPerPlatform | number | No | 1000 | Max events per platform (controls cost/duration) | | useApifyProxy | boolean | No | true | Enable Apify proxy for scraping | | proxyGroups | array | No | ["DATACENTER"] | Proxy groups to use (DATACENTER works well) | | fuzzyTitleThreshold | number | No | 0.82 | Similarity threshold for deduplication (0-1) | | timeWindowMinutes | number | No | 90 | Time delta for fuzzy matching (minutes) | | distanceMeters | number | No | 800 | Geo distance threshold for deduplication | | industryMapping | object | No | - | Map event topics to custom industry categories | | webhookUrl | string | No | - | POST results to this webhook (n8n integration) | | webhookHeaders | object | No | - | Custom headers for webhook requests | | generateICS | boolean | No | true | Generate .ics calendar file | | storeRawData | boolean | No | false | Include raw platform JSON (debugging) | | maxConcurrency | number | No | 10 | Max concurrent requests | | dryRun | boolean | No | false | Test mode (no save/webhooks) | ## Output Schema Each event record includes: json { "id": "01HQZX9K3P2VQWE8RTGBNM4567", "canonicalKey": "abc123def456", "platform": "meetup", "event": { "title": "AI & Machine Learning Meetup", "descriptionHtml": "...", "topics": ["ai", "machine-learning", "deep-learning"], "category": "AI", "startsAt": "2025-11-15T18:00:00.000Z", "endsAt": "2025-11-15T21:00:00.000Z", "timezone": "Europe/Berlin", "isOnline": false, "recurrence": null }, "venueName": "Tech Hub Berlin", "address": "Hauptstraße 123", "city": "Berlin", "country": "DE", "latitude": 52.5200, "longitude": 13.4050, "currency": "EUR", "priceMin": 0, "priceMax": 0, "ticketStatus": "free", "rsvpCount": 85, "capacity": 100, "organizerName": "Berlin AI Community", "organizerUrl": "https://www.meetup.com/berlin-ai", "organizerFollowers": 3500, "coverImageUrl": "https://...", "eventUrl": "https://www.meetup.com/...", "ticketUrl": null, "discoveredAt": "2025-10-02T12:00:00.000Z" } Location Fields Explained: - city: City name, or "Online" for virtual events - country: ISO country code (e.g., "DE", "US", "GB"), or null for online events - latitude/longitude: Geographic coordinates (null for online events or when unavailable) This structure makes it easy to filter events by location while clearly distinguishing online vs. physical events. ## Output Formats 1. Dataset: Normalized JSON records in Apify dataset 2. ICS Calendar: Saved to Key-Value Store as calendar.ics 3. Webhook: POST to your n8n workflow with stats and first 100 events ## Deduplication Strategy Events are deduplicated using multi-factor fuzzy matching: 1. Canonical Key: Hash of (normalized title + start time UTC + normalized city) 2. Fuzzy Title Matching: Jaro-Winkler similarity ≥ 82% (configurable) 3. Time Window: Events within 90 minutes of each other (configurable) 4. Geo Distance: Events within 800 meters (configurable) ## RSVP Count Availability | Platform | Availability | Field Used | |----------|-------------|------------| | Meetup | ✅ Always public | rsvpCount | | Lu.ma | ✅ Usually public | rsvpCount (guest_count) | | Eventbrite | ❌ Not available | rsvpCount (always null) | Note: For Eventbrite events, consider using organizerFollowers as an alternative audience signal when available. ## n8n Integration ### Webhook Payload Structure json { "runId": "abc123", "datasetId": "xyz789", "stats": { "total": 150, "byPlatform": { "meetup": 80, "luma": 45, "eventbrite": 25 }, "avgAttendees": 65, "dedupedCount": 12 }, "events": [ /* first 100 events */ ] } ### Example n8n Workflow 1. [Webhook] POST /webhook/apify-events 2. [HTTP Request] GET Apify dataset (all events) 3. [Function] Filter by industry categories 4. [Function] Map to prospect list (company, url, city, audience) 5. [Deduplicate] By company+city hash 6. [Branch A] → Google Sheets / Airtable 7. [Branch B] → CRM API / Email campaign 8. [Slack] Notification with run stats ## Pricing This actor uses pay-per-event pricing - you only pay for events successfully ingested. See current pricing in the Apify Console when starting a run. ## Platform-Specific Notes ### Meetup - Data Source: __NEXT_DATA__ JSON in page HTML - RSVP Counts: Always publicly visible (yes_rsvp_count) - Best For: Community events, tech meetups, networking - Proxy: Datacenter proxy works fine ### Lu.ma - Data Source: API endpoint /discover/get-events - Guest Counts: Usually publicly visible (guest_count) - Best For: Creator events, workshops, online events - Proxy: Datacenter proxy works fine ### Eventbrite - Data Source: __SERVER_DATA__ JSON in page HTML - URL Format: /d/{country}--{city}/{keyword}/ for keyword-based discovery - Search Strategy: Creates separate URLs for each keyword (e.g., /medtech/, /technology/) - Attendee Counts: Rarely visible on public pages - Organizer Followers: Often visible (use as audience signal) - Best For: Professional conferences, large events, ticketed events - Proxy: Datacenter proxy works fine - Note: Eventbrite's keyword-based URLs are case-insensitive and normalize spaces to hyphens ## Development & Testing ### Local Testing bash # Install dependencies npm install # Build TypeScript npm run build # Test with pay-per-event simulation npm run test:ppe # Regular dev run npm run dev ### Pay-Per-Event Testing bash ACTOR_TEST_PAY_PER_EVENT=true \ ACTOR_USE_CHARGING_LOG_DATASET=true \ npm run dev Check the charging-log dataset to see all billing events triggered. ## Limitations - LinkedIn Events: Not included (requires residential proxy + complex anti-bot handling) - Eventbrite Attendee Counts: Rarely public on event pages - Rate Limits: Respects platform rate limits with automatic backoff - Geo Accuracy: Depends on platform-provided coordinates - Historical Events: Only finds future events (past events not scraped) ## Error Handling The Actor implements robust error handling: - 3 retries with exponential backoff per request - Platform-level circuit breakers (fail-fast if >10% error rate) - Graceful degradation (continues with other platforms if one fails) - Error logging with sample HTML snapshots for debugging ## Performance Typical run times (with default concurrency): - 2 cities, 2 keywords, 60 days, 3 platforms: 5-10 minutes - 5 cities, 3 keywords, 60 days, 3 platforms: 10-15 minutes - 10 cities, 5 keywords, 90 days, 3 platforms: 20-30 minutes Memory usage: < 200 MB Concurrency: 10 concurrent requests (configurable) ## Roadmap - V1.1: Geocoding normalization (Google Maps API for missing coordinates) - V1.2: ML-based classification (fastText/TF-Lite for smarter categorization) - V1.3: Language filtering & i18n date parsing - V2.0: City geo-radius search (Haversine distance queries) ## ❓ FAQ ### Can I use this with n8n, Zapier, or Make? Yes! Enable the webhookUrl parameter to push results directly to automation platforms. The output is flat JSON perfect for integration with n8n, Zapier, Make, Google Sheets, and Airtable. ### Which platforms provide RSVP/attendee counts? Meetup and Lu.ma provide public RSVP counts. Eventbrite rarely shows attendee counts on public pages, but does show organizer follower counts as an audience signal. ### How does deduplication work across platforms? The scraper uses fuzzy matching on event titles (82% similarity), time windows (90 minutes), and geo-distance (800 meters) to eliminate duplicates when the same event appears on multiple platforms. ### Can I generate calendar files (.ics) for discovered events? Yes! Set generateICS: true to create an .ics calendar file saved to Key-Value Store. Import it to Google Calendar, Outlook, or Apple Calendar. ### How do I filter events by minimum attendance? Use the minAttendees parameter. Note: This only applies to Meetup and Lu.ma events (which have RSVP data). Eventbrite events are included regardless of this setting. ### Can I map events to custom industry categories? Yes! Use the industryMapping parameter to define keyword-to-category mappings. Example: "DevOps": ["kubernetes", "docker", "ci/cd"] ### How do I filter online vs in-person events? Use the eventType field in your query: - "eventType": "all" (default) - Include both online and in-person events - "eventType": "online" - Only online/virtual events - "eventType": "in-person" - Only in-person events (excludes online events) ### What's the difference between free and paid events? Use includeFree and includePaid parameters to filter. Free events have ticketStatus: "free", while paid events have priceMin/priceMax values. ### How accurate are event locations (latitude/longitude)? Accuracy depends on platform-provided coordinates. Most events have accurate geo-data, but some may be missing or approximate. Online events have city: "Online" and null coordinates. ### Can I schedule recurring runs to monitor new events? Yes! Use Apify's scheduler for daily/weekly runs. Combine with state persistence to track new events and avoid duplicate processing. --- ## 🔗 Explore More of Our Actors ### 🔍 SEO & Marketing | Actor | Description | |-------|-------------| | Ahrefs Scraper Pro | Extract SEO metrics and backlink data from Ahrefs | | Semrush Scraper | Scrape Semrush for keyword research and competitor analysis | ### 💬 Social Media & Community | Actor | Description | |-------|-------------| | Reddit Scraper Pro | Monitor subreddits and track keywords with sentiment analysis | | Discord Scraper Pro | Extract Discord messages and chat history for community insights | | YouTube Comments Harvester | Comprehensive YouTube comments scraper with channel-wide enumeration | | YouTube Contact Scraper | Extract YouTube channel contact information for outreach | | YouTube Shorts Scraper | Scrape YouTube Shorts for viral content research | --- ## 🏷️ SEO Keywords Event scraper, Eventbrite scraper, Meetup scraper, Luma scraper, event aggregator, event data extraction, scrape event listings, event discovery tool, event marketing intelligence, competitor event tracking, event lead generation, conference scraper, tech event finder, networking event scraper, how to scrape events, n8n event integration, Zapier event scraper, Make event automation, event calendar export, RSVP data scraper, event organizer data, meetup group scraper ## Support & Issues - Email: kontakt@barrierefix.de - GitHub Issues: Report bugs or feature requests ## License MIT License - see LICENSE file for details --- Built with ❤️ by Barrierefix | Apify Store | Documentation ## Legal Disclaimer / Rechtlicher Hinweis EN: This actor is a general-purpose tool for analyzing publicly accessible web data. The user bears sole responsibility for ensuring their specific use complies with: - Applicable laws (GDPR/DSGVO, copyright law) - The target website's Terms of Service - Apify's Terms of Service The provider (barrierefix) expressly disclaims liability for any unauthorized or unlawful use. By using this actor, the user agrees to indemnify the provider against any third-party claims arising from their use of the data. DE: Dieser Actor ist ein allgemeines Werkzeug zur Analyse öffentlich zugänglicher Webdaten. Der Nutzer trägt die alleinige Verantwortung dafür, dass seine spezifische Nutzung den geltenden Gesetzen (DSGVO, Urheberrecht), den Nutzungsbedingungen der Zielwebsite und den Apify-Nutzungsbedingungen entspricht. Der Anbieter (barrierefix) schließt jegliche Haftung für unbefugte oder rechtswidrige Nutzung ausdrücklich aus. Mit der Nutzung dieses Actors erklärt sich der Nutzer bereit, den Anbieter von allen Ansprüchen Dritter freizustellen, die aus seiner Datennutzung entstehen. --- This tool is not affiliated with Eventbrite/Meetup/Lu.ma. All trademarks belong to their respective owners.

Common Use Cases

Market Research

Gather competitive intelligence and market data

Lead Generation

Extract contact information for sales outreach

Price Monitoring

Track competitor pricing and product changes

Content Aggregation

Collect and organize content from multiple sources

Ready to Get Started?

Try Event Scraper Pro now on Apify. Free tier available with no credit card required.

Start Free Trial

Actor Information

Developer
barrierefix
Pricing
Paid
Total Runs
301
Active Users
40
Apify Platform

Apify provides a cloud platform for web scraping, data extraction, and automation. Build and run web scrapers in the cloud.

Learn more about Apify

Need Professional Help?

Couldn't solve your problem? Hire a verified specialist on Fiverr to get it done quickly and professionally.

Find a Specialist

Trusted by millions | Money-back guarantee | 24/7 Support