Dataspryva

Meetup & Lu.ma Event Finder by City, Group & Calendar

Search, browse, or look up events on Meetup and Lu.ma by city, group, or calendar: dates, venue, organizer, attendee count, photo and RSVP status from one actor and input shape.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
platformstringrequiredWhich platform to query. All modes are HTTP-only and need no login.
modestringrequiredWhat to scrape: search, specific event/group/calendar URLs, group/calendar event lists, nearby discovery, or auto-routed URLs.
querystringoptionalFree-text keyword. Required for Meetup search. Lu.ma keyword search caps at 50 results per run.
Show all input fields
FieldTypeRequiredDescription
platformstringrequiredWhich platform to query. All modes are HTTP-only and need no login.
modestringrequiredWhat to scrape: search, specific event/group/calendar URLs, group/calendar event lists, nearby discovery, or auto-routed URLs.
querystringoptionalFree-text keyword. Required for Meetup search. Lu.ma keyword search caps at 50 results per run.
locationstringoptionalCity, state, or country. Meetup resolves it server-side; Lu.ma resolves the featured city. Examples: `san francisco`, `New York, NY`, `London, UK`.
latnumberoptionalExplicit latitude. Bypasses location geocoding and anchors Lu.ma category feeds.
lngnumberoptionalExplicit longitude. Bypasses location geocoding and anchors Lu.ma category feeds.
countrystringoptionalOptional ISO country code used when resolving a Meetup location.
meetupCategorystringoptionalBrowse or filter Meetup by a live topic category. Use `all` with a query for no category filter.
lumaCategorystringoptionalLu.ma category feed. Needs a city or `lat`/`lng` to anchor the feed.
eventTypestringoptionalMeetup server-side event format filter. Lu.ma location types are not reliable, so Lu.ma ignores this field.
sortBystringoptionalMeetup sorts server-side. Lu.ma sorts client-side by start date; relevance keeps source order.
dateFromstringoptionalEarliest event date (inclusive). Accepts `YYYY-MM-DD` or an ISO date-time.
dateTostringoptionalLatest event date (inclusive). Accepts `YYYY-MM-DD` or an ISO date-time.
radiusKmintegeroptionalMeetup search radius around the resolved location.
minAttendeesintegeroptionalDrop events below this RSVP/guest count. Meetup filters server-side; Lu.ma filters client-side.
freeOnlybooleanoptionalDrop events that are known to charge. Events with an unknown price are kept.
eventPeriodstringoptionalUpcoming, past, or both. Past is reliable on Meetup groups and Lu.ma calendars; Lu.ma city/category feeds are upcoming-only.
urlsarrayoptionalOne or more Meetup or Lu.ma URLs. `mode=byUrl` auto-routes each one; `byEvent`, `byGroup`, and calendar modes also accept URLs.
slugsarrayoptionalMeetup group urlnames or Lu.ma event/calendar slugs. For Meetup events, pair index-aligned with `eventIds`.
eventIdsarrayoptionalNumeric Meetup event IDs or Lu.ma `evt-...` ids. Meetup numeric IDs can be used alone or index-aligned with `slugs` (group urlnames).
lumaCitystringoptionalFeatured Lu.ma city feed. Alternatively supply `location` or `lat`/`lng`.
maxItemsintegeroptionalHard cap on emitted records.
includeAttendeesbooleanoptionalAdd public RSVP names/photos to Meetup events (one extra request per event, capped at 250).
includeMembersbooleanoptionalAdd a public member sample to Meetup group records (one extra request per group).
enrichDetailsbooleanoptionalFetch each Lu.ma event's detail endpoint for description, ticket tiers, and featured guests. Off by default for speed.
onlyNewSinceLastRunbooleanoptionalRemember emitted IDs for this exact input and skip them on later runs. The first run emits everything.

Download the published input schema

View complete JSON
{
  "description": "Find events on Meetup and Lu.ma by keyword, city, group, calendar, URL, or event ID. No login or API key required.",
  "properties": {
    "country": {
      "description": "Optional ISO country code used when resolving a Meetup location.",
      "editor": "select",
      "enum": [
        "us",
        "ca",
        "gb",
        "de",
        "fr",
        "es",
        "it",
        "nl",
        "se",
        "ch",
        "ie",
        "au",
        "nz",
        "in",
        "sg",
        "jp",
        "br",
        "mx",
        "ar",
        "be",
        "at",
        "pl",
        "pt",
        "dk",
        "fi",
        "no",
        "cz",
        "il",
        "ae",
        "za"
      ],
      "enumTitles": [
        "United States",
        "Canada",
        "United Kingdom",
        "Germany",
        "France",
        "Spain",
        "Italy",
        "Netherlands",
        "Sweden",
        "Switzerland",
        "Ireland",
        "Australia",
        "New Zealand",
        "India",
        "Singapore",
        "Japan",
        "Brazil",
        "Mexico",
        "Argentina",
        "Belgium",
        "Austria",
        "Poland",
        "Portugal",
        "Denmark",
        "Finland",
        "Norway",
        "Czechia",
        "Israel",
        "United Arab Emirates",
        "South Africa"
      ],
      "title": "Country (Meetup)",
      "type": "string"
    },
    "dateFrom": {
      "description": "Earliest event date (inclusive). Accepts `YYYY-MM-DD` or an ISO date-time.",
      "editor": "textfield",
      "title": "Start date",
      "type": "string"
    },
    "dateTo": {
      "description": "Latest event date (inclusive). Accepts `YYYY-MM-DD` or an ISO date-time.",
      "editor": "textfield",
      "title": "End date",
      "type": "string"
    },
    "enrichDetails": {
      "default": false,
      "description": "Fetch each Lu.ma event's detail endpoint for description, ticket tiers, and featured guests. Off by default for speed.",
      "prefill": false,
      "title": "Enrich Lu.ma details",
      "type": "boolean"
    },
    "eventIds": {
      "default": [],
      "description": "Numeric Meetup event IDs or Lu.ma `evt-...` ids. Meetup numeric IDs can be used alone or index-aligned with `slugs` (group urlnames).",
      "editor": "stringList",
      "title": "Event IDs",
      "type": "array"
    },
    "eventPeriod": {
      "default": "upcoming",
      "description": "Upcoming, past, or both. Past is reliable on Meetup groups and Lu.ma calendars; Lu.ma city/category feeds are upcoming-only.",
      "editor": "select",
      "enum": [
        "upcoming",
        "past",
        "all"
      ],
      "enumTitles": [
        "Upcoming",
        "Past",
        "Upcoming + past"
      ],
      "prefill": "upcoming",
      "title": "Event period",
      "type": "string"
    },
    "eventType": {
      "default": "any",
      "description": "Meetup server-side event format filter. Lu.ma location types are not reliable, so Lu.ma ignores this field.",
      "editor": "select",
      "enum": [
        "any",
        "physical",
        "online",
        "hybrid"
      ],
      "enumTitles": [
        "Any",
        "In person",
        "Online",
        "Hybrid"
      ],
      "prefill": "any",
      "title": "Event type (Meetup)",
      "type": "string"
    },
    "freeOnly": {
      "default": false,
      "description": "Drop events that are known to charge. Events with an unknown price are kept.",
      "prefill": false,
      "title": "Free events only",
      "type": "boolean"
    },
    "includeAttendees": {
      "default": false,
      "description": "Add public RSVP names/photos to Meetup events (one extra request per event, capped at 250).",
      "prefill": false,
      "title": "Include Meetup attendees",
      "type": "boolean"
    },
    "includeMembers": {
      "default": false,
      "description": "Add a public member sample to Meetup group records (one extra request per group).",
      "prefill": false,
      "title": "Include Meetup group members",
      "type": "boolean"
    },
    "lat": {
      "description": "Explicit latitude. Bypasses location geocoding and anchors Lu.ma category feeds.",
      "maximum": 90,
      "minimum": -90,
      "title": "Latitude",
      "type": "number"
    },
    "lng": {
      "description": "Explicit longitude. Bypasses location geocoding and anchors Lu.ma category feeds.",
      "maximum": 180,
      "minimum": -180,
      "title": "Longitude",
      "type": "number"
    },
    "location": {
      "description": "City, state, or country. Meetup resolves it server-side; Lu.ma resolves the featured city. Examples: `san francisco`, `New York, NY`, `London, UK`.",
      "editor": "textfield",
      "prefill": "san francisco",
      "title": "Location",
      "type": "string"
    },
    "lumaCategory": {
      "description": "Lu.ma category feed. Needs a city or `lat`/`lng` to anchor the feed.",
      "editor": "select",
      "enum": [
        "family",
        "books",
        "games",
        "tech",
        "food",
        "ai",
        "running",
        "arts",
        "climate",
        "fitness",
        "wellness",
        "crypto"
      ],
      "enumTitles": [
        "Family",
        "Books",
        "Games",
        "Tech",
        "Food & Drink",
        "AI",
        "Running",
        "Arts & Culture",
        "Climate",
        "Fitness",
        "Wellness",
        "Crypto"
      ],
      "title": "Lu.ma category",
      "type": "string"
    },
    "lumaCity": {
      "description": "Featured Lu.ma city feed. Alternatively supply `location` or `lat`/`lng`.",
      "editor": "select",
      "enum": [
        "nyc",
        "sf",
        "london",
        "berlin",
        "tokyo",
        "amsterdam",
        "la",
        "lisbon",
        "toronto",
        "helsinki",
        "paris",
        "stockholm",
        "mumbai",
        "singapore",
        "barcelona",
        "hongkong",
        "boston",
        "madrid",
        "montreal",
        "tel-aviv",
        "dc",
        "austin",
        "zurich",
        "philadelphia",
        "chicago",
        "atlanta",
        "copenhagen",
        "sydney",
        "bangkok",
        "buenos-aires",
        "seattle",
        "vancouver",
        "warsaw",
        "hamburg",
        "munich",
        "prague",
        "sd",
        "mexico-city",
        "milan",
        "saopaulo",
        "bengaluru",
        "melbourne",
        "bogota",
        "brussels",
        "calgary",
        "dublin",
        "kuala-lumpur",
        "miami",
        "oslo",
        "houston",
        "phoenix",
        "salt-lake-city",
        "taipei",
        "dubai",
        "ho-chi-minh-city",
        "portland",
        "raleigh",
        "vienna",
        "dallas",
        "denver",
        "istanbul",
        "las-vegas",
        "minneapolis",
        "sacramento",
        "seoul",
        "frankfurt",
        "geneva",
        "pittsburgh",
        "waterloo_ca",
        "budapest",
        "capetown",
        "cincinnati",
        "edmonton",
        "manila",
        "new-delhi",
        "rome",
        "detroit",
        "lagos",
        "lausanne",
        "nairobi",
        "osaka",
        "rio",
        "auckland",
        "brisbane",
        "honolulu",
        "jakarta",
        "medellin"
      ],
      "enumTitles": [
        "New York",
        "San Francisco",
        "London",
        "Berlin",
        "Tokyo",
        "Amsterdam",
        "Los Angeles",
        "Lisbon",
        "Toronto",
        "Helsinki",
        "Paris",
        "Stockholm",
        "Mumbai",
        "Singapore",
        "Barcelona",
        "Hong Kong",
        "Boston",
        "Madrid",
        "Montréal",
        "Tel Aviv-Yafo",
        "Washington, DC",
        "Austin",
        "Zurich",
        "Philadelphia",
        "Chicago",
        "Atlanta",
        "Copenhagen",
        "Sydney",
        "Bangkok",
        "Buenos Aires",
        "Seattle",
        "Vancouver",
        "Warsaw",
        "Hamburg",
        "Munich",
        "Prague",
        "San Diego",
        "Mexico City",
        "Milan",
        "São Paulo",
        "Bengaluru",
        "Melbourne",
        "Bogotá",
        "Brussels",
        "Calgary",
        "Dublin",
        "Kuala Lumpur",
        "Miami",
        "Oslo",
        "Houston",
        "Phoenix",
        "Salt Lake City",
        "Taipei",
        "Dubai",
        "Ho Chi Minh City",
        "Portland",
        "Raleigh",
        "Vienna",
        "Dallas",
        "Denver",
        "Istanbul",
        "Las Vegas",
        "Minneapolis",
        "Sacramento",
        "Seoul",
        "Frankfurt",
        "Geneva",
        "Pittsburgh",
        "Waterloo",
        "Budapest",
        "Cape Town",
        "Cincinnati",
        "Edmonton",
        "Manila",
        "New Delhi",
        "Rome",
        "Detroit",
        "Lagos",
        "Lausanne",
        "Nairobi",
        "Osaka",
        "Rio de Janeiro",
        "Auckland",
        "Brisbane",
        "Honolulu",
        "Jakarta",
        "Medellín"
      ],
      "title": "Lu.ma city",
      "type": "string"
    },
    "maxItems": {
      "default": 50,
      "description": "Hard cap on emitted records.",
      "maximum": 1000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max items",
      "type": "integer"
    },
    "meetupCategory": {
      "description": "Browse or filter Meetup by a live topic category. Use `all` with a query for no category filter.",
      "editor": "select",
      "enum": [
        "all",
        "social-activities",
        "hobbies-passions",
        "sports-fitness",
        "travel-outdoor",
        "career-business",
        "technology",
        "community-environment",
        "identity-language",
        "games",
        "dancing",
        "support-coaching",
        "music",
        "health-wellbeing",
        "art-culture",
        "science-education",
        "pets-animals",
        "religion-spirituality",
        "writing",
        "parents-family",
        "movements-politics"
      ],
      "enumTitles": [
        "All categories",
        "Social Activities",
        "Hobbies & Passions",
        "Sports & Fitness",
        "Travel & Outdoor",
        "Career & Business",
        "Technology",
        "Community & Environment",
        "Identity & Language",
        "Games",
        "Dancing",
        "Support & Coaching",
        "Music",
        "Health & Wellbeing",
        "Art & Culture",
        "Science & Education",
        "Pets & Animals",
        "Religion & Spirituality",
        "Writing",
        "Parents & Family",
        "Movements & Politics"
      ],
      "title": "Meetup category",
      "type": "string"
    },
    "minAttendees": {
      "description": "Drop events below this RSVP/guest count. Meetup filters server-side; Lu.ma filters client-side.",
      "maximum": 100000,
      "minimum": 0,
      "title": "Minimum attendees",
      "type": "integer"
    },
    "mode": {
      "default": "searchEvents",
      "description": "What to scrape: search, specific event/group/calendar URLs, group/calendar event lists, nearby discovery, or auto-routed URLs.",
      "editor": "select",
      "enum": [
        "searchEvents",
        "byEvent",
        "byGroup",
        "groupEvents",
        "byCalendar",
        "discoverNearby",
        "discoverTrending",
        "byUrl"
      ],
      "enumTitles": [
        "Search events",
        "By event URL/slug/ID",
        "By group or calendar profile",
        "Group/calendar event list",
        "By calendar (profile + events)",
        "Discover nearby",
        "Discover trending",
        "By URL (auto-routes)"
      ],
      "prefill": "searchEvents",
      "title": "Mode",
      "type": "string"
    },
    "onlyNewSinceLastRun": {
      "default": false,
      "description": "Remember emitted IDs for this exact input and skip them on later runs. The first run emits everything.",
      "prefill": false,
      "title": "Only new since last run",
      "type": "boolean"
    },
    "platform": {
      "default": "meetup",
      "description": "Which platform to query. All modes are HTTP-only and need no login.",
      "editor": "select",
      "enum": [
        "meetup",
        "luma"
      ],
      "enumTitles": [
        "Meetup.com",
        "Lu.ma"
      ],
      "prefill": "meetup",
      "title": "Platform",
      "type": "string"
    },
    "query": {
      "description": "Free-text keyword. Required for Meetup search. Lu.ma keyword search caps at 50 results per run.",
      "editor": "textfield",
      "prefill": "tech",
      "title": "Search query",
      "type": "string"
    },
    "radiusKm": {
      "description": "Meetup search radius around the resolved location.",
      "maximum": 500,
      "minimum": 1,
      "title": "Radius (km)",
      "type": "integer"
    },
    "slugs": {
      "default": [],
      "description": "Meetup group urlnames or Lu.ma event/calendar slugs. For Meetup events, pair index-aligned with `eventIds`.",
      "editor": "stringList",
      "title": "Slugs",
      "type": "array"
    },
    "sortBy": {
      "default": "relevance",
      "description": "Meetup sorts server-side. Lu.ma sorts client-side by start date; relevance keeps source order.",
      "editor": "select",
      "enum": [
        "relevance",
        "dateAsc",
        "dateDesc"
      ],
      "enumTitles": [
        "Relevance",
        "Date: soonest first",
        "Date: latest first"
      ],
      "prefill": "relevance",
      "title": "Sort order",
      "type": "string"
    },
    "urls": {
      "default": [],
      "description": "One or more Meetup or Lu.ma URLs. `mode=byUrl` auto-routes each one; `byEvent`, `byGroup`, and calendar modes also accept URLs.",
      "editor": "stringList",
      "title": "Event / group / calendar URLs",
      "type": "array"
    }
  },
  "required": [
    "platform",
    "mode"
  ],
  "schemaVersion": 1,
  "title": "Meetup + Lu.ma Events Scraper Input",
  "type": "object"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
recordsstringoptionalDataset of scraped events, groups, calendars, and per-URL errors.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "Event, group, calendar, city, and error records from Meetup and Lu.ma with dates, venue, pricing, hosts, topics, attendance, and optional attendee details.",
  "properties": {
    "records": {
      "description": "Dataset of scraped events, groups, calendars, and per-URL errors.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "Event records",
      "type": "string"
    }
  },
  "title": "Meetup & Lu.ma Event Finder Output"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "views": {
    "overview": {
      "display": {
        "component": "table",
        "properties": {}
      },
      "title": "Events",
      "transformation": {
        "fields": [
          "platform",
          "recordType",
          "name",
          "startAt",
          "venueName",
          "city",
          "country",
          "guestCount",
          "isFree",
          "url"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

Meetup & Lu.ma Event Finder by City, Group & Calendar

Meetup and Lu.ma host two very different event ecosystems. This actor reads both from one input shape: search by keyword and city, browse a group or calendar, open a specific event URL, or discover what is happening around a city — with pagination, filters, and rich event details.

What this actor does

  • One actor, two platforms — set platform to meetup or luma and reuse the same fields
  • Eight intent modes — keyword search, event lookup, group profile, group/calendar event lists, nearby discovery, trending discovery, and URL auto-routing
  • Full result pages — Meetup cursor pagination and Lu.ma cursor pagination, not just the first page
  • Useful filters — dates, event format, radius, minimum attendance, free-only, category, and sort order
  • Rich records — venue and coordinates, group size, topics, hosts, prices, ticket tiers, and RSVP/guest counts
  • Optional enrichment — Meetup attendee names/photos and Lu.ma event descriptions/ticket tiers/featured guests, both off by default
  • Monitoring — onlyNewSinceLastRun remembers IDs for the same input and skips them next time
  • Clean data — empty fields are omitted at every depth; no null, "", [], or {}

No login, cookie, API key, or browser is required.

Modes

Mode Meetup Lu.ma
searchEvents Keyword search with location, dates, type, radius, category, attendance Keyword search, city feed, or category feed
byEvent Event URL, group/eventId URL, or numeric event ID Event URL (lu.ma or luma.com), slug, or evt-... ID
byGroup Group profile and stats Calendar/community profile
groupEvents Group's upcoming or past events Calendar's upcoming or past events
byCalendar Alias for groupEvents Calendar profile plus its events
discoverNearby Recommended events near a location/category City or nearest featured city feed
discoverTrending Recommended events by category/location Featured city/category feeds
byUrl Auto-routes event and group URLs Auto-routes event and calendar URLs

Output per Meetup event

  • id, name, url — event identity and link
  • startAt, endAt, timezone — scheduling (timezone falls back to the group's timezone)
  • description — full description from the event payload
  • eventType, rsvpState, status, waitlistMode — event state
  • imageUrl, imageId — event photo
  • guestCount, attendeeCount, waitlistCount, capacity — attendance and capacity
  • isFree, feeAmount, feeCurrency, feeAccepts, feeRequired — pricing
  • group, groupName, groupUrlname, groupMemberCount, groupCategory — group summary
  • venueName, venueAddress, city, state, country, postalCode, latitude, longitude, googleMapsUrl — venue
  • topics[] — topic id, name, and urlkey
  • hosts[] — host name and photo
  • attendees[] — optional public RSVP names/photos when includeAttendees is on (capped at 250)
  • seriesId, seriesName — recurring series, when present
  • recordType, platform, siteName, scrapedAt — record metadata

Output per Meetup group

  • id, name, urlname, url, timezone, description, photoUrl
  • foundedDate, city, state, country, latitude, longitude
  • memberCount, rating, ratingCount, isNewGroup
  • category, categoryId, categoryUrlkey, topics[]
  • organizer, socials — organizer profile and linked social accounts
  • upcomingEventCount, pastEventCount
  • memberSample[] — optional public members when includeMembers is on

Output per Lu.ma event

  • id, name, url, slug, startAt, endAt, timezone
  • description — full ProseMirror text on detail/enrichment
  • imageUrl, eventType, locationType, waitlistActive, hideRsvp
  • guestCount, ticketCount, isFree, feeAmount, maxFeeAmount, currency
  • ticketTiers[] — tier name, price, currency, type, spots remaining, registration count
  • isSoldOut, requireApproval, isNearCapacity, spotsRemaining, registrationAvailability
  • venues and location fields — venueName, fullAddress, venueAddress, city, state, country, latitude, longitude
  • hosts[], organizerName, featuredGuests[]
  • calendar, calendarName — calendar identity, socials, website, and location
  • categories[], featuredCity
  • recordType, platform, siteName, scrapedAt

Output per Lu.ma calendar

  • id, name, slug, url, description
  • avatarUrl, coverImageUrl
  • instagram, linkedin, twitter, website, socials
  • timezone, city, state, country
  • eventCount, subscriberCount, upcomingEventCount, pastEventCount
  • recordType (calendar or city), platform, siteName, scrapedAt

Output per error record

If a specific URL, slug, or event ID cannot be fetched or parsed, the actor emits an error record rather than silently dropping it:

  • recordType — error
  • platform, reason, source, httpStatus
  • url, slug, eventId, or groupUrlname — the identifier that failed
  • scrapedAt

Input

Field Type Default Description
platform select, required meetup meetup or luma
mode select, required searchEvents One of the eight modes above
query string – Keyword; required for Meetup search unless a category is supplied
location string – City or region used to resolve the search area
lat, lng number – Explicit coordinates; bypasses geocoding
country select – Optional Meetup country hint
meetupCategory select – Live Meetup topic category (all plus 20 current topics)
lumaCategory select – Lu.ma category feed (needs a city or coordinates)
eventType select any Meetup: any, physical, online, hybrid
sortBy select relevance relevance, dateAsc, or dateDesc
dateFrom, dateTo string – Inclusive date bounds (YYYY-MM-DD or ISO date-time)
radiusKm integer – Meetup search radius, 1–500 km
minAttendees integer – Minimum RSVPs/guests, 0–100000
freeOnly boolean false Drop events known to charge
eventPeriod select upcoming upcoming, past, or all for group/calendar modes
urls array [] Meetup or Lu.ma event/group/calendar URLs
slugs array [] Meetup group urlnames or Lu.ma slugs
eventIds array [] Numeric Meetup event IDs (alone or paired with slugs) or Lu.ma evt-... ids
lumaCity select – Any of the 87 live Lu.ma featured cities
maxItems integer 50 Hard cap on records, 1–1000
includeAttendees boolean false Meetup: add public RSVP names/photos
includeMembers boolean false Meetup groups: add a public member sample
enrichDetails boolean false Lu.ma: fetch detail for descriptions, tiers, featured guests
onlyNewSinceLastRun boolean false Skip IDs already emitted for this exact input

Examples

Search Meetup events in a city

{
  "platform": "meetup",
  "mode": "searchEvents",
  "query": "tech",
  "location": "san francisco",
  "dateFrom": "2026-11-01",
  "eventType": "physical",
  "maxItems": 50
}

Browse a Lu.ma city feed with more than one page

{
  "platform": "luma",
  "mode": "discoverNearby",
  "lumaCity": "sf",
  "maxItems": 100
}

Read a Meetup group's past events

{
  "platform": "meetup",
  "mode": "groupEvents",
  "slugs": ["real-time-analytics-and-ai"],
  "eventPeriod": "past",
  "maxItems": 30
}

Auto-route mixed Meetup and Lu.ma URLs

{
  "platform": "meetup",
  "mode": "byUrl",
  "urls": [
    "https://www.meetup.com/real-time-analytics-and-ai/events/316657797/",
    "https://luma.com/fireworks-8kmc"
  ],
  "includeAttendees": true
}

Use cases

  • Build a combined Meetup + Lu.ma event feed for a city or topic
  • Track a community group's or calendar's upcoming and past schedule
  • Research venues, prices, hosts, and attendance before attending
  • Monitor new events for a saved search with onlyNewSinceLastRun
  • Compare how a topic is represented across both platforms

FAQ

Is this affiliated with Meetup or Lu.ma? No. This is an independent actor that reads publicly available data from both platforms and is not operated by or affiliated with either.

Do I need an account, cookie, or API key? No. Every supported path works anonymously and cookielessly; nothing is required beyond the input fields.

Why does a Lu.ma keyword search stop at 50 results? Lu.ma's public keyword search is capped at 50 results per query. For more coverage, split the keyword into narrower terms or use a city or category feed, which supports cursor pagination.

Can I get past events? Yes for Meetup groups (groupEvents with eventPeriod: "past") and Lu.ma calendars (byCalendar, groupEvents, or eventPeriod). Meetup keyword search and Lu.ma city/category feeds do not expose past events.

Why are Lu.ma attendee names missing? Lu.ma only publishes counts, featured guests, and first-name previews. The full guest list requires a signed-in user with access to the event, so this actor returns counts and featured guests only.

Are Meetup attendee names public? On many events the public RSVP list is visible and can be included with includeAttendees. Some organizers hide it; in that case the field is omitted. Attendee data is opt-in and never part of the small default run.

Why are some prices or venues missing? Hosts can hide prices, and some events are online-only or use an obfuscated address. The actor reports only what the platform discloses; it never invents a price or address.

What happens if a request is blocked? The actor retries politely and, only after a real block, makes one automatic proxy retry. There is no proxy field to configure.

How many records can one run return? Up to maxItems (maximum 1000). Coverage depends on what the platform publishes for the query, city, group, or calendar.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build FFqtvn0WerZ7vwqc7. Documentation is regenerated from the default published build; private drafts are not included.