lu.ma Events Scraper avatar

lu.ma Events Scraper

Pricing

from $0.10 / 1,000 lu.ma events

Go to Apify Store
lu.ma Events Scraper

lu.ma Events Scraper

Scrape lu.ma events by URL, calendar, host, city, category, search, or geo. One unified schema covering location, hosts, ticketing, and capacity — pulled directly from lu.ma's public JSON API.

Pricing

from $0.10 / 1,000 lu.ma events

Rating

0.0

(0)

Developer

Nate Schnell

Nate Schnell

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

What does lu.ma Events Scraper do?

lu.ma Events Scraper pulls live event data from lu.ma — the platform tech, AI, crypto, and startup communities use to host meetups, conferences, hackathons, and dinners. Paste any lu.ma URL (event page, calendar/community, host profile, or featured city), a category slug (tech, ai, crypto, food, arts, climate, fitness, wellness), a free-text query, or lat/lng coordinates, and get back a clean dataset of every matching event. Great for event marketers tracking sponsorship opportunities, SDRs sourcing leads from public RSVP feeds, conference organizers monitoring competitor calendars, and analysts mapping the live event scene by city or topic.

What data can you extract from lu.ma?

Each emitted record has 45+ fields covering the full event surface lu.ma publishes:

  • Identityid (lu.ma's stable api_id, e.g. evt-pWhbpO3C5CFr3VE), url, slug, name, platform (always lu.ma).
  • TimingstartAt, endAt (ISO 8601 UTC), timezone (IANA).
  • LocationlocationType (offline / online / hybrid), isOnline, isInPerson, city, region, country, countryCode, latitude, longitude, fullAddress, shortAddress, addressMode, addressVisibility.
  • Hosts & guestshosts[] with full social handles (Twitter, LinkedIn, Instagram, TikTok, YouTube, website) for each organizer, plus featuredGuests[] for speakers/headliners.
  • Calendar / communitycalendar block: name, slug, description, social handles, avatar, the calendar's city.
  • Capacity & RSVPsguestCount, ticketCount, spotsRemaining, isSoldOut, isNearCapacity, registrationAvailability, waitlistEnabled.
  • PricingisFree, requireApproval, price, maxPrice. Per-tier breakdown in ticketTypes[] (name, cents, currency, capacity, registered count) when includeFullDescription is enabled.
  • Description — full plain-text description (from lu.ma's ProseMirror source) when includeFullDescription is enabled or when scraping by event URL.
  • ProvenancediscoveryContext (which input mode + value surfaced this record), source (the api2.luma.com URL we fetched), scrapedAt.

Records are deduplicated by event id across inputs — if you scrape category=ai and city=sf in the same run, an event that appears in both is emitted once.

How to use lu.ma Events Scraper

  1. Create a free Apify account.
  2. Open lu.ma Events Scraper and click Try for free.
  3. Choose one or more input modes:
    • lu.ma URLs (any kind) — paste any lu.ma/... link. The scraper auto-routes based on what the URL points to (event page, calendar, featured city, category, or host profile).
    • Event URLs, Calendar URLs, Host profiles, Featured city URLs, Discover categories, Free-text search queries, Geo coordinates — use the typed inputs if you want strict routing.
  4. (Optional) Add filters: Free events only, Online only, Minimum guest count, Date range start/end, etc. Filters apply before billing.
  5. (Optional) Turn on Include full description + ticket types for the richest per-event record.
  6. Click Save & Start. List endpoints return 25 events per request; runs finish in seconds for typical inputs.
  7. Download results from the Storage tab in JSON, CSV, Excel, XML, or HTML.

How much does it cost?

lu.ma Events Scraper is pay-per-result: one event per emitted record, no matter how many inputs you query.

  • $0.0001 per event ($0.10 per 1,000 events) — flat rate across all plans, the cheapest Lu.ma scraper on Apify Store.
  • The Apify Free plan includes $5/month of credit, enough for ~50,000 free events.
  • No minimum — pull 1 event or 50,000.
  • Filters and the global maxItems cap apply at the source, so filtered-out events aren't billed.

Cost tip: leaving includeFullDescription off keeps records compact (no description body, no per-tier ticket breakdown) and avoids a second request per event.

Input

Every field is optional — you just need to provide at least one source. Common patterns:

// All upcoming AI events on lu.ma's Discover page
{ "categorySlugs": ["ai"], "maxItems": 200 }
// Everything on the Founders, Inc. community calendar
{ "calendarUrls": ["https://lu.ma/fdotinc"], "period": "future" }
// All upcoming events in San Francisco + NYC, in-person only
{ "cityUrls": ["sf", "nyc"], "inPersonOnly": true, "maxItems": 500 }
// One specific event, fully enriched (description, ticket tiers, categories)
{ "eventUrls": ["https://lu.ma/festival"], "includeFullDescription": true }
// Multi-source pull with filters
{
"categorySlugs": ["crypto", "ai"],
"cityUrls": ["sf", "nyc", "london"],
"searchQueries": ["hackathon"],
"freeOnly": true,
"minGuestCount": 50,
"dateFrom": "2026-06-01",
"dateTo": "2026-09-30",
"maxItems": 1000
}

See the Input tab for every field with help text.

Output

One record per lu.ma event. Sample (list mode, AI category):

{
"platform": "lu.ma",
"id": "evt-CZfyCM5bTl4Md2H",
"url": "https://lu.ma/qxdpvsfc",
"slug": "qxdpvsfc",
"name": "Maryland Fintech Event",
"startAt": "2026-05-23T18:00:00.000Z",
"endAt": "2026-05-23T20:00:00.000Z",
"timezone": "America/New_York",
"locationType": "offline",
"isOnline": false,
"isInPerson": true,
"city": "Columbia",
"region": "Maryland",
"country": "United States",
"countryCode": "US",
"fullAddress": "5885 Robert Oliver Pl, Columbia, MD 21045, USA",
"latitude": 39.2092878,
"longitude": -76.8455688,
"coverUrl": "https://images.lumacdn.com/uploads/vg/f2a173e0-39f7-445c-bce9-c55fb293f2c0.png",
"visibility": "public",
"registrationAvailability": "open",
"guestCount": 8,
"ticketCount": 8,
"spotsRemaining": 92,
"isSoldOut": false,
"isFree": true,
"requireApproval": false,
"waitlistEnabled": true,
"hosts": [
{
"apiId": "usr-6tccATC7C3G6uOf",
"name": "Soji Okunade",
"twitterHandle": null,
"linkedinHandle": null,
"website": null
}
],
"featuredGuests": [/* ...8 entries... */],
"calendar": {
"apiId": "cal-ANM9zGEAQBT2IxR",
"name": "Personal",
"isPersonal": true
},
"ticketTypes": [],
"categories": [],
"discoveryContext": { "mode": "category", "input": "ai" },
"source": "https://api2.luma.com/discover/get-paginated-events?slug=ai&pagination_limit=25",
"scrapedAt": "2026-05-22T15:35:09.868Z"
}

With includeFullDescription: true, the same record gains description (full plain text), ticketTypes[] (each tier with cents / currency / numTicketsRegistered / maxCapacity), and categories[] (lu.ma's tag taxonomy).

Calendars / hosts / cities with no events return zero records (no error). Slugs that 404 log a warning and skip — your run isn't billed for them.

Integrations

lu.ma Events Scraper works with the full Apify integration set: Make, Zapier, n8n, Slack, Google Drive, GitHub, Airbyte, scheduled runs, and the Apify REST API. Trigger runs from your CRM, push fresh events into a Sheet or a database, or fan out webhook notifications when new events are added to a calendar. See Apify integrations.

FAQ

How does lu.ma Events Scraper work?

It hits api2.luma.com — the same JSON endpoints lu.ma's own Next.js app uses to render the public Discover, category, calendar, and event pages. No login, no proxy, no headless browser, no rate-limit workarounds. Pagination is cursor-based (next_cursor), so the scraper walks through long calendars and category feeds without missing events.

What input modes are supported?

Seven: event URL, calendar/community URL, host profile URL, featured city slug, discover category, free-text search query, and geo coordinates (lat/lng). The lu.ma URLs (any kind) field auto-routes — paste any lu.ma link and the scraper figures out which mode applies.

Can I use lu.ma Events Scraper as an API?

Yes. Trigger a run via the Apify REST API:

POST https://api.apify.com/v2/acts/schnellscrapers~luma-events-scraper/runs?token=<APIFY_TOKEN>

Use the run-sync-get-dataset-items endpoint to get records inline when the run finishes.

Can I use it in Python or Node.js?

from apify_client import ApifyClient
client = ApifyClient(token="<APIFY_TOKEN>")
run = client.actor("schnellscrapers/luma-events-scraper").call(run_input={
"categorySlugs": ["ai", "crypto"],
"cityUrls": ["sf", "nyc"],
"freeOnly": True,
"maxItems": 500,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["name"], item["city"], item["startAt"])
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<APIFY_TOKEN>' });
const run = await client.actor('schnellscrapers/luma-events-scraper').call({
categorySlugs: ['ai'],
includeFullDescription: true,
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

lu.ma event pages are public and the JSON endpoints we use are the same ones lu.ma's own site consumes. lu.ma's robots.txt only restricts Googlebot from a small set of dashboard paths (/social-share, /in/, /company/, /session-*) and contains no rules for other user-agents. The data we collect is what's already publicly visible on the page; storing or republishing it must comply with lu.ma's terms and any applicable privacy laws (GDPR, CCPA).

How fresh is the data?

Live — every run hits lu.ma's API directly. Records reflect the exact RSVP and capacity counts at the moment of the request.

What's the difference between list mode and detail mode?

List mode (categories, cities, calendars, hosts, search, geo) emits records straight from lu.ma's discover/list endpoints — already includes host info, calendar info, location, coordinates, capacity, and ticket summary. Detail mode (event URLs or includeFullDescription: true) adds a per-event fetch that pulls the full text description, ticket-tier breakdown, and category tags. Detail mode roughly doubles the request count.

Why is my full address showing only city-level info?

lu.ma lets hosts hide the precise venue until you RSVP. When that's the case, addressMode will be obfuscated and fullAddress will be city-level — city, region, country, latitude, and longitude still come through.

Can I get the attendee / guest list?

Not in this actor. Public guest lists are a separate concern (different buyer, different ToS posture) and may ship as a follow-on actor if there's demand. For now, capacity metrics (guestCount, spotsRemaining, isSoldOut) are the closest signal.

Your feedback

Found a bug, missing a field, or want a new filter? Open an issue on the actor's Issues tab or email me. Every report gets read.