Lu.ma Event Discovery Scraper
Pricing
Pay per usage
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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 impersonation —
curl-cffimimics 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
- Click Try for free at the top of the page.
- Drop in one or more Lu.ma URLs or slugs —
sf,ai,https://luma.com/nyc, or a single event link. - Click Start. Output streams into the run's dataset.
- Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
urls | array | yes | ["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>. |
maxEventsPerUrl | integer | no | 100 | Max events per list URL. 0 = every event on the page. Ignored for single-event URLs. |
includeFeaturedGuests | boolean | no | false | When enabled, each row carries a featured_guests array (name + public social handles). Off by default for a lean lead row. |
proxyConfiguration | object | no | {"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.
| Field | Type | Notes |
|---|---|---|
source_url | string | The input URL that produced this row. |
event_api_id | string | Lu.ma internal event ID (evt-...). |
name | string | Event title. |
event_url | string | Canonical public event URL. |
start_at | string | Event start time (ISO-8601). |
end_at | string | null | Event end time, or null. |
timezone | string | null | IANA timezone of the event. |
event_type | string | null | Lu.ma event type. |
location_type | string | null | offline or online. |
city | string | null | City, when present. |
region | string | null | Region / state, when present. |
address | string | null | Street address; null when Lu.ma obfuscates it (guests-only). |
is_free | boolean | True when the event is free. |
price_cents | integer | null | Base ticket price in cents, when set. |
max_price_cents | integer | null | Highest ticket price in cents, when set. |
currency | string | null | ISO currency code of the ticket price. |
is_sold_out | boolean | True when no spots remain. |
requires_approval | boolean | True when registration needs host approval. |
guest_count | integer | Public guest/registration count. |
ticket_count | integer | Public ticket count. |
host_name | string | null | Primary host display name. |
host_username | string | null | Primary host Lu.ma username. |
host_linkedin | string | null | Primary host public LinkedIn URL, when surfaced. |
host_is_verified | boolean | Primary host verified-profile flag. |
host_count | integer | Number of hosts on the event. |
featured_guest_count | integer | Number of featured guests. |
featured_guests | array | null | Featured-guest details; only when includeFeaturedGuests is on. |
cover_url | string | null | Event cover image URL. |
scraped_at | string | ISO-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:
| Event | USD | What it is |
|---|---|---|
actor-start | $0.005 | One-off warm-up charge per run |
result | $0.004 | Per 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.