Lu.ma Event Discovery Scraper avatar

Lu.ma Event Discovery Scraper

Pricing

Pay per usage

Go to Apify Store
Lu.ma Event Discovery Scraper

Lu.ma Event Discovery Scraper

Scrape public Lu.ma event pages — title, date/time, venue, geo, host(s) with public LinkedIn, ticket price & capacity, and featured-guest count. City, category, discover feeds, and individual event URLs. Public-only, no login, GDPR-safe.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share


🎯 What this scrapes

Lu.ma is where AI, crypto, and startup communities run their events — and every public listing is a B2B-intent signal. This Actor reads each event page's server-rendered data (no login, no API key) and turns city / category / discover feeds and individual event URLs into clean, structured rows: when and where the event is, who's hosting (with their public LinkedIn), how the tickets are priced, how many people are coming, and how many speakers are featured.

🔥 What we handle for you

  • 🛡️ Browser fingerprint impersonationcurl-cffi mimics real Chrome / Firefox / Safari TLS handshakes so Lu.ma's Cloudflare layer serves a browser, not Python.
  • 🌐 Residential proxy rotation via Apify Proxy — a fresh session and exit IP whenever you need one.
  • 🔁 Retries with exponential backoff on 403 / 408 / 429 / 5xx — up to 5 attempts per page, so a transient block never costs you a row.
  • 🧭 List-vs-event auto-detection — pass a city feed or a single event URL; the Actor figures out which and parses accordingly.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for events that land in your dataset. No data, no charge.

💡 Use cases

  • Event-led lead gen — surface organizers and their public LinkedIn from the events your buyers actually attend.
  • Community & ecosystem mapping — track which AI / crypto / startup events are running in a city or category over time.
  • Competitive intelligence — watch a rival's event cadence, pricing, and turnout.
  • Sponsorship prospecting — find well-attended, paid events worth a partnership pitch.
  • Trend research — aggregate events across cities and categories to spot what's heating up.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Drop in one or more Lu.ma URLs or slugs — sf, ai, https://luma.com/nyc, or a single event link.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
urlsarrayyes["sf"]Lu.ma URLs or bare slugs: city (sf), category (ai), discover, or event pages. Both lu.ma and luma.com accepted; a bare slug becomes https://luma.com/<slug>.
maxEventsPerUrlintegerno100Max events per list URL. 0 = every event on the page. Ignored for single-event URLs.
includeFeaturedGuestsbooleannofalseWhen enabled, each row carries a featured_guests array (name + public social handles). Off by default for a lean lead row.
proxyConfigurationobjectno{"useApifyProxy": true}Apify Proxy configuration. The default shared pool is sufficient for most volumes.

Example input

{
"urls": ["sf", "ai"],
"maxEventsPerUrl": 20,
"includeFeaturedGuests": false,
"proxyConfiguration": {
"useApifyProxy": true
}
}

📤 Output

Every row is one public event.

FieldTypeNotes
source_urlstringThe input URL that produced this row.
event_api_idstringLu.ma internal event ID (evt-...).
namestringEvent title.
event_urlstringCanonical public event URL.
start_atstringEvent start time (ISO-8601).
end_atstring | nullEvent end time, or null.
timezonestring | nullIANA timezone of the event.
event_typestring | nullLu.ma event type.
location_typestring | nulloffline or online.
citystring | nullCity, when present.
regionstring | nullRegion / state, when present.
addressstring | nullStreet address; null when Lu.ma obfuscates it (guests-only).
is_freebooleanTrue when the event is free.
price_centsinteger | nullBase ticket price in cents, when set.
max_price_centsinteger | nullHighest ticket price in cents, when set.
currencystring | nullISO currency code of the ticket price.
is_sold_outbooleanTrue when no spots remain.
requires_approvalbooleanTrue when registration needs host approval.
guest_countintegerPublic guest/registration count.
ticket_countintegerPublic ticket count.
host_namestring | nullPrimary host display name.
host_usernamestring | nullPrimary host Lu.ma username.
host_linkedinstring | nullPrimary host public LinkedIn URL, when surfaced.
host_is_verifiedbooleanPrimary host verified-profile flag.
host_countintegerNumber of hosts on the event.
featured_guest_countintegerNumber of featured guests.
featured_guestsarray | nullFeatured-guest details; only when includeFeaturedGuests is on.
cover_urlstring | nullEvent cover image URL.
scraped_atstringISO-8601 timestamp of when this row was recorded.

Example output

{
"source_url": "https://luma.com/sf",
"event_api_id": "evt-J1JJze1sOGGFYZz",
"name": "AI Operator Run Club: Embarcadero Loop",
"event_url": "https://luma.com/instalily-dgxm",
"start_at": "2026-06-14T13:30:00.000Z",
"end_at": "2026-06-14T15:00:00.000Z",
"timezone": "America/Los_Angeles",
"event_type": "independent",
"location_type": "offline",
"city": "San Francisco",
"region": "California",
"address": "Embarcadero",
"is_free": false,
"price_cents": null,
"max_price_cents": 0,
"currency": "usd",
"is_sold_out": false,
"requires_approval": true,
"guest_count": 142,
"ticket_count": 142,
"host_name": "Zac Nelson",
"host_username": "zacnelson",
"host_linkedin": "https://www.linkedin.com/in/zac-nelson-",
"host_is_verified": false,
"host_count": 2,
"featured_guest_count": 3,
"featured_guests": null,
"cover_url": "https://images.lumacdn.com/event-covers/...",
"scraped_at": "2026-06-13T10:00:00+00:00"
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.005One-off warm-up charge per run
result$0.004Per event written to the dataset

Example: 1 000 events ≈ $4.00. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit. (The closest Store incumbent charges a $29/mo subscription.)

🔒 Privacy & GDPR

This Actor scrapes public-by-design event metadata only. Hosts are public organizer profiles Lu.ma surfaces with their LinkedIn by design. Featured guests are promotional speaker placements — emitted as a count by default, with details only behind the opt-in includeFeaturedGuests flag. Full attendee lists, emails, and phone numbers are never collected — Lu.ma does not expose them publicly, and they are out of scope.

🚧 Limitations

The Actor reads what Lu.ma renders publicly on the page feed. Private or invite-only calendars are not accessible. Street addresses for guests-only events are deliberately suppressed (address is null). List pages return roughly the first page of events Lu.ma serves for that city / category.

❓ FAQ

Do I need a Lu.ma login or API key?

No. Everything comes from the public, server-rendered page — no auth at all.

Can I scrape a single event instead of a whole city?

Yes. Pass the event URL (or slug) and you get that one event's row. The Actor auto-detects list pages vs single events.

Does it collect attendee data?

No. Attendee lists aren't public on Lu.ma, so they're out of scope. You get the event, its host(s), and the featured-guest count.

Why is address sometimes null?

When a host marks the venue guests-only, Lu.ma obfuscates the street address. We respect that and return null rather than guessing.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.