Luma Scraper — Events, Hosts, Socials & Tickets (lu.ma)
Pricing
from $1.70 / 1,000 results
Luma Scraper — Events, Hosts, Socials & Tickets (lu.ma)
Luma (lu.ma / luma.com) events scraper: every upcoming event in any city or country, categories, keyword search, calendars with past events, hosts. Dates, venue, coordinates, prices, ticket types, guest counts, organiser and host socials (X, LinkedIn, Instagram, website). No login.
Pricing
from $1.70 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Luma Scraper
Export events from Luma (luma.com, formerly lu.ma) as clean, analysis-ready data — every upcoming event in a city, region, country or the whole world, Luma's categories and keyword search, any organiser's calendar with its past events, any host's events — with dates and time zones, venues and coordinates, prices and ticket types, registration status and guest counts, and the websites, LinkedIn, X (Twitter), Instagram, YouTube and TikTok profiles of the calendars and hosts behind each event.
Luma Scraper is a fast, reliable Luma API alternative for anyone who needs Luma event data at scale: scrape lu.ma and luma.com events without a login, without cookies and without a browser, and export Luma events to CSV, Excel or JSON, Google Sheets or your own database. Use it as a Luma events scraper for one city ("every tech event in San Francisco next week"), as a Luma calendar scraper that pulls an organiser's complete history (the Latent.Space calendar alone lists 308 events, 303 of them past), as a Luma host scraper for lead generation, or as a global event dataset builder — the whole Luma map held 20,319 upcoming in-person events in 133 countries on 2026-10-20, and one run exported all of them with 0 duplicates. It covers AI events, tech meetups, startup events, hackathons, founder dinners, crypto and web3 events, run clubs, wellness, art and book clubs — everything people publish on Luma.
Every row is one Luma event: name, Luma event id and link, start and end in UTC and in the event's local time zone, duration, in-person or online (Zoom, Google Meet, YouTube …), venue name, full address, neighbourhood, city, region, country and coordinates — or, when the organiser shows the address only to registered guests, the city with Luma's approximate pin and a clear addressHidden flag. Then the business side: free or paid, price and currency, every ticket type with its price, capacity and sales window, approval required, waitlist, sold out, spots left, guest count ("N Going"), the registration questions the organiser asks, the full description as clean text with all its links and the lines that mention sponsors and partners, Luma's categories, and where Luma features the event. Finally the people: the calendar (organiser) with its website and social profiles, and every host with name, Luma profile, bio, website, X (Twitter), LinkedIn, Instagram, YouTube and TikTok — optionally with how many events each host has organised and attended. Searching for a Luma Veranstaltungen Scraper, a way to extraer eventos de Luma a Excel, exporter les événements Luma en CSV or a Luma イベント 一覧 export? This is the tool.
Independent tool. Not affiliated with, endorsed by, or sponsored by Luma AI, Inc. (luma.com). "Luma" is a trademark of its owner and is used here only to describe the website this Actor reads.
Table of contents
- At a glance
- What you get
- Who uses it — and how
- How it works
- Cookbook: ready-to-run inputs
- Tutorial: your first run in the Apify Console
- Tutorial: run it through the API
- Input reference
- Output data dictionary
- Output example
- Scale, speed and coverage
- What you pay
- Integrations
- Performance tips
- Troubleshooting
- Limits
- Compared with the other ways to get Luma data
- FAQ
- Glossary
- Legal and data protection
- Changelog
- Support
At a glance
| Source | luma.com (lu.ma) — public event pages, calendars, profiles and Luma's event map |
| Coverage | Every upcoming in-person event on Luma's map — 20,319 events in 133 countries and 156 time zones on 2026-10-20 — plus the upcoming and past events (online and in-person) of any calendar or host |
| Fields per event | 74 columns: event, time, place, description, categories, prices, ticket types, registration, calendar with socials, hosts with socials |
| Ways to choose events | Locations (Luma's 87 cities, any city, region or country, coordinates, a map box, "everywhere"), Luma's 12 categories, keyword search, calendars, hosts, any luma.com link, Luma's featured picks |
| Filters | Upcoming / past / both (calendars and hosts), start date range, in person / online, free / paid |
| Speed (measured) | First rows in about a second; 1,000 events with full details in 50 s; the whole Luma map (20,319 events) in 22 minutes |
| De-duplication | By Luma event id across every source in a run — 0 duplicates in the 20,319-event run |
| Accuracy (measured) | 29 events checked field by field against the live luma.com pages: 796 of 799 values identical — the other 3 were guest counts that changed between scraping and checking |
| Output | Apify dataset → JSON, CSV, Excel, XML, RSS, HTML table; API; integrations |
| Login / cookies / browser | None needed |
| Price | Fixed price per event saved, from $1.70 per 1,000 events — compute and proxies included |
What you get
Real values from runs on 2026-10-20. Every field, with type and measured fill rate, is in the data dictionary.
The event
id—"evt-kEEwMQEK7LOx4Xj"(Luma's event id; stable, used for de-duplication)url—"https://luma.com/zbp6a1e1"(the public event page; old lu.ma links redirect there)name—"SGLang Meetup with LinkedIn and LMCache"description— the full "About Event" text as clean text, bullets and line breaks keptdescriptionLinks— every link in the descriptionsponsorMentions— the description lines that name sponsors or partners, verbatim:"Long Horizon After Party | Hosted by Encord, sponsored by CoreWeave & LanceDB","SPONSORS: Office of Economic Workforce Development | Grants For The Arts | Yerba Buena CBD"categories— Luma's own categories:["AI"],["Arts & Culture", "Climate"]featuredIn— Luma city pages and community calendars that feature the event:["San Francisco"]coverImageUrl— the event's cover image
When
startAt/endAt—"2026-10-21T00:00:00.000Z"(UTC, ISO 8601)timezone—"America/Los_Angeles"startAtLocal/endAtLocal—"2026-10-20T17:00:00-07:00"(the time the page shows, with its UTC offset)durationMinutes—240;timeStatus—"upcoming","ongoing"or"ended"
Where
locationType—"offline"(in person),"zoom","meet","youtube"…;isOnline—falsevenueName—"LinkedIn Corporation - Building 950 (LSNR)"address—"LinkedIn Corporation - Building 950 (LSNR), 950 W Maude Ave, Sunnyvale, CA 94085, USA";shortAddress—"950 W Maude Ave, Sunnyvale"neighborhood—"Sunnyvale West",city—"Sunnyvale",region—"California",country—"United States",countryCode—"US"latitude/longitude—37.39245/-122.0412877;googlePlaceId—"ChIJGVicMwC3j4AREcC64ZSIxbg"addressHidden—truewhen the organiser shows the address only to registered or approved guests (20.2 % of events on the map). Such rows still carry the neighbourhood, city, region and country, and Luma's approximate pin (coordinatesApproximate: true); the street address is never guessed.locationNote— the organiser's own note on the location ("Take the lift. Go to level 4!")
Tickets and registration
isFree—true;price—0(for paid events Luma's summary price, tax included, e.g.20withcurrency"GBP");maxPrice— the dearest ticket;minPrice— the minimum of a pay-what-you-want ticket;priceIsFlexibletaxName/taxPercent—"VAT"/20when the organiser charges tax at checkoutticketTypes— every ticket: name, type (free,fiat-price…), price, currency, capacity, registered, spots remaining, approval, hidden, sold out or closed, sales start and end, descriptionregistrationStatus— what the registration card says:"open","waitlist","sold-out","closed"or"coming-soon"requiresApproval—true(the host approves every guest — 37.3 % of map events);isSoldOut,waitlistActive,isNearCapacityguestCount—277(the page's "277 Going");spotsRemainingandcapacitywhen the organiser set a limitregistrationQuestions— the questions asked at registration; the most common on Luma: "What is your LinkedIn profile?" (2,282 events of 20,319) and "What company do you work for?" (2,175)refundPolicy— the organiser's refund terms
The organiser (calendar)
calendarName—"SGLang Meetups and Events",calendarUrl—"https://luma.com/SGLang",calendarIdcalendarDescription,calendarWebsite—"https://sglang.io/"calendarTwitter,calendarLinkedin,calendarInstagram,calendarYoutube,calendarTiktok— full profile URLscalendarCity,calendarCountryCode,calendarAvatarUrl,calendarIsPersonal(a person's own calendar rather than a community or company)
The hosts
hostNames—"LMSYS Org | Qing Lan | Sundara Raman Ramachandran",hostCount—3hosts— for each host:name,username,url(Luma profile),bio,avatarUrl,website,twitter,linkedin,instagram,youtube,tiktok,isVerified, and with Add host profile numbers alsoeventsHosted,eventsAttended,joinedAt
Run metadata
platform—"luma"(or"external"for events a calendar lists from another site),source— which of your inputs found the row,detailsIncluded,scrapedAt
Who uses it — and how
Event sponsors and B2B marketers
Sponsoring the right meetups is cheaper than any ad. Run a city or category every Monday, filter categories and guestCount, read sponsorMentions to see which brands already sponsor similar events, and contact the organiser through calendarWebsite and calendarLinkedin or the hosts' LinkedIn profiles. 55.6 % of events on the map have at least one host with a LinkedIn profile.
Developer relations and community teams
Map every AI, developer or data meetup in your target cities, see who organises them (calendarName, hosts), how big they get (guestCount, capacity) and which venues host them (venueName, googlePlaceId). Pick co-hosting partners and speaking slots with data instead of guesswork.
Venture capital and AI-ecosystem trackers
A weekly categories: ["ai"] + locations: ["everywhere"] export shows where the AI community meets, which companies host (hostNames, bio) and which events fill up (registrationStatus: "waitlist"). Calendars of accelerators and communities with when: "all" give you their complete event history.
Sales teams running event-led growth
Hosts are founders, community leads and operators. Filter events by category and city, de-duplicate hosts by id, and you have a lead list with LinkedIn, X and websites — plus context for the first message ("saw you host the Agent Builders Hackathon").
Event agencies, venues and coworking spaces
Which venues are booked for which kinds of events, how often, at what ticket prices? venueName, address, googlePlaceId, neighborhood, price and guestCount per city answer it. Venues find organisers who are still looking for a space.
Recruiters and talent teams
Hackathons, demo days and technical meetups are where engineers show up. Search "hackathon" across your cities, export the hosts (often the hiring managers and founders) and the dates, and plan sourcing around them.
Startup founders and community builders
Benchmark your own events: ticket prices (ticketTypes), approval and waitlist use, typical guest counts and questions asked in your city and category. Find the communities you should co-host with.
Market researchers and analysts
The whole Luma map in one dataset: events per city and country, free vs paid (79.2 % free on 2026-10-20), price levels by currency (USD, EUR, GBP, CAD, JPY …), category mix, approval rates, time-of-day patterns from startAtLocal. Repeat it weekly for a time series.
Newsletters, media and city guides
"What's on this weekend in Berlin" in one run: locations: ["Berlin"] with a startDate/endDate window. Clean descriptions, cover images and links make the issue quick to write.
Event discovery apps and aggregators
Sync Luma events into your app or website: stable id, url, coordinates, local times with offsets, cover images, prices and registration state. Schedule a daily run and upsert by id.
Universities, student clubs and career services
Collect campus-area, career and founder events for students — a small radiusKm around the campus, or the club calendars directly.
Event-platform and ticketing analysts
Measure Luma adoption: 13,290 calendars published map events on 2026-10-20; see how many are paid, in which currencies, and which features (approval, waitlists, flexible prices, tax) organisers use.
Influencer and creator marketing
Hosts with Instagram, TikTok and YouTube profiles who run in-person events are natural partners for brand activations. Filter hosts by those fields and by category (Fitness, Wellness, Arts & Culture, Food & Drink).
AI, RAG and LLM pipelines
Descriptions come as clean text (no HTML), with links extracted and every field typed — ready for embeddings, classification or an agent that recommends events. 97–98 % of events have a description.
How it works
Luma's own website reads its events from a public JSON interface. Luma Scraper reads the same interface, the way luma.com itself does, without a browser:
- Locations, categories and the whole map. Luma's map answers "the upcoming in-person events inside this box", soonest first, 50 per page. A city becomes a circle of
radiusKm; a region or country its OpenStreetMap boundary. Large areas are read in cells of at most 10 × 10 degrees, because Luma answers bigger boxes only approximately (a 15 × 60-degree box returned 93 % of its events); "everywhere" and countries as big as the United States are read through Luma's whole-map list and filtered. Long lists are read in several time windows at once, and every event is checked against your area before it is saved. - Keyword search. Luma's search is semantic: "hackathon" also finds "buildathon" and "hack night". It answers the 50 best matches per area. Luma Scraper keeps Luma's own answer for each area, and where that answer is full and still mostly mentions your term it zooms into smaller boxes and keeps the events that mention it — so busy cities are searched completely without drowning you in loosely related events.
- Calendars and hosts. A calendar's upcoming and/or past events and a host's events are read page by page — online and in-person.
- Links. Any luma.com or lu.ma link is recognised: event pages, calendars, city pages, category pages, profiles.
- Details. For every event, Luma's event record adds the description, categories, ticket types, registration questions, refund policy and where Luma features it (on by default). Add host profile numbers reads each host's profile once.
- De-duplication and filters. Every event is saved once (by Luma event id), however many of your sources find it; date, in-person/online and price filters apply to every source.
The scraper paces itself to Luma's limits (measured 2026-10-20: about 49 map requests a minute per address; event records clean at 10–30 per second): about 1.5 map pages and 15 event records per second, direct connection first, Apify datacenter proxies when Luma asks a shared address to slow down.
Cookbook: ready-to-run inputs
All recipes were run on 2026-10-20; the numbers are what they returned.
1. Every upcoming event in a city
{ "locations": ["San Francisco"], "maxItems": 1000 }
A 50 km circle around San Francisco (Oakland, Palo Alto, Mountain View, Sunnyvale) — the radius luma.com itself searches. 1,000 events in 49.1 s. Use "radiusKm": 15 for the city only.
2. One category in a city
{ "locations": ["New York"], "categories": ["ai"], "maxItems": 100 }
AI events in and around New York: 100 events in 2.9 s.
3. A whole country
{ "locations": ["Germany"], "maxItems": 2000 }
Germany's boundary, every event inside it (checked by Luma's country code). 1,289 German events were on the map on 2026-10-20.
4. One category everywhere
{ "locations": ["everywhere"], "categories": ["crypto"], "maxItems": 1000 }
Crypto events worldwide, soonest first. Categories alone (without locations) also cover the whole map.
5. A keyword in several cities
{ "searchTerms": ["hackathon"], "locations": ["San Francisco", "New York", "London"], "maxItems": 500 }
Luma's search plus the zoom-in on busy cities. In San Francisco and Germany 71 of 88 results mentioned "hackathon" in the title; the rest are Luma's own closest matches ("buildathon", "hack night").
6. A calendar's full history
{ "calendars": ["https://lu.ma/ls"], "when": "all", "maxItems": 0 }
Every upcoming and past event of the Latent.Space calendar: 308 events (5 upcoming, 303 past), online and in person.
7. Everything a host organises, with profile numbers
{ "hosts": ["https://luma.com/user/lmsys"], "when": "all", "includeHostProfiles": true }
27 events hosted by LMSYS Org, and for every co-host how many events they host and attend.
8. A list of event links
{ "urls": ["https://luma.com/zbp6a1e1", "evt-tkyaOUQSVvrjGQ3", "https://lu.ma/sologpsummit"] }
Refresh events you already know: 3 rows in 2.3 s.
9. Next week in a city
{ "locations": ["London"], "startDate": "2026-10-21", "endDate": "2026-10-27", "maxItems": 1000 }
Only events that start between the two dates (events already running on the first day are kept).
10. Free events only
{ "locations": ["Berlin"], "price": "free", "maxItems": 500 }
11. Paid events and their prices
{ "locations": ["London"], "price": "paid", "maxItems": 500 }
Ticket prices, currencies, tax and every ticket type — a pricing benchmark in minutes.
12. Luma's featured picks for every city
{ "locations": ["everywhere"], "featuredOnly": true, "maxItems": 2000 }
The events Luma's editors feature on its 87 city pages: 1,476 events on 2026-10-20 (New York 79, San Francisco 53, London 51, Berlin 49 …).
13. A small circle around a point
{ "locations": ["40.7411,-73.9897"], "radiusKm": 3, "maxItems": 200 }
Events within 3 km of a point — a neighbourhood, a campus, an office.
14. Online events of a calendar
{ "calendars": ["https://lu.ma/ls"], "when": "all", "eventType": "online" }
Luma's map lists in-person events only; online events (Zoom, Meet, YouTube) come from calendars, hosts and links.
15. Fastest export: list data only
{ "locations": ["everywhere"], "includeDetails": false, "maxItems": 5000 }
Skips the per-event detail record (description, categories, ticket types): 5,000 events in 129 s.
16. A map box
{ "locations": ["51.28,-0.51,51.69,0.33"], "categories": ["tech"], "maxItems": 500 }
"south, west, north, east" in decimal degrees — here Greater London.
17. A keyword in a region
{ "searchTerms": ["founders"], "locations": ["California"], "maxItems": 500 }
California's boundary from OpenStreetMap, searched cell by cell.
18. The whole Luma map
{ "locations": ["everywhere"], "maxItems": 0 }
Every upcoming in-person event on Luma: 20,319 events, 0 duplicates, 22 minutes. Set Maximum cost per run high enough (see What you pay).
Tutorial: your first run in the Apify Console
- Open the Actor and click Try for free (or Start if it is already in your list).
- In Locations, type a city —
San Francisco,London,Berlin,Singapore— or a region, a country, oreverywhere. - Optional: pick Categories (AI, Tech, Crypto, Arts & Culture …), add Search terms, or paste Calendars, Hosts or Luma links.
- Optional filters: Starting on or after / before for a date window, In person or online, Price.
- Set Max events (50 to try, 1,000 by default, 0 = no limit).
- Click Start. The first rows appear within a few seconds in the Output tab; the views Overview, Organisers & socials, Location and Tickets & registration show the most useful columns.
- Click Export for CSV, Excel, JSON, XML or HTML. Hosts are a list per event; in CSV they become columns
hosts/0/name,hosts/0/linkedin,hosts/1/name…
Tutorial: run it through the API
Replace <TOKEN> with your Apify API token (Console → Settings → Integrations).
# start a run and wait for it to finish (up to 300 s), then print the events as JSONcurl -s -X POST "https://api.apify.com/v2/acts/logiover~luma-scraper/run-sync-get-dataset-items?token=<TOKEN>&timeout=300" \-H "Content-Type: application/json" \-d '{"locations": ["San Francisco"], "categories": ["ai"], "maxItems": 200}'# long runs: start asynchronously, poll the run, then download the dataset as CSVcurl -s -X POST "https://api.apify.com/v2/acts/logiover~luma-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" -d '{"locations": ["everywhere"], "maxItems": 0}'curl -s "https://api.apify.com/v2/actor-runs/<RUN_ID>?token=<TOKEN>"curl -s "https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=csv&token=<TOKEN>" > luma-events.csv
Node.js (npm i apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('logiover/luma-scraper').call({calendars: ['https://lu.ma/ls'], when: 'all', maxItems: 0,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const e of items) console.log(e.startAtLocal, e.name, e.hostNames);
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("<TOKEN>")run = client.actor("logiover/luma-scraper").call(run_input={"searchTerms": ["hackathon"], "locations": ["London", "Berlin"], "maxItems": 500,})for e in client.dataset(run["defaultDatasetId"]).iterate_items():print(e["startAtLocal"], e["name"], e["city"], [h.get("linkedin") for h in e["hosts"]])
Input reference
| Field | Type | Default | What it does |
|---|---|---|---|
locations | list of text | — | Places to read Luma's map for: one of Luma's 87 cities ("San Francisco", "NYC", "London", "Bengaluru" …), any other city, region or country (boundary from OpenStreetMap: "Bavaria", "Germany", "Brazil"), "lat,lng" (a circle), "south,west,north,east" (a box), or "everywhere". |
radiusKm | integer 1–500 | 50 | Circle around a city or point. Regions and countries always use their boundary. |
categories | list | — | Luma's categories: ai, tech, crypto, arts, climate, fitness, wellness, food, books, games, running, family. Alone they cover the whole map; with locations, only those places. |
searchTerms | list of text | — | Keywords for Luma's search, in every location (or everywhere). |
calendars | list of text | — | Calendar links (https://luma.com/ls, lu.ma/genai-sf), slugs (ls) or ids (cal-…). |
hosts | list of text | — | Profile links (https://luma.com/user/lmsys), usernames or ids (usr-…). |
urls | list of text | — | Any luma.com / lu.ma link — events, calendars, city pages, category pages, profiles — or event ids (evt-…). Recognised automatically. |
when | upcoming / past / all | upcoming | For calendars and hosts. The map (locations, categories, search) is upcoming only. |
startDate | date | — | Only events starting on or after this day (events already running on it are kept). |
endDate | date | — | Only events starting on or before this day. |
eventType | all / in-person / online | all | In-person or online events only. |
price | all / free / paid | all | Free or paid events only. |
featuredOnly | boolean | false | Only the events Luma features on its city pages (with a Luma city or everywhere). |
maxItems | integer | 1000 | Stop after this many unique events (0 = no limit). |
includeDetails | boolean | true | Description, categories, ticket types, questions, refund policy, featured places. Off = faster list data only. |
includeHostProfiles | boolean | false | Adds eventsHosted, eventsAttended, joinedAt to every host (one request per unique host). |
includeExternalEvents | boolean | true | Keep events a calendar lists from other websites (platform: "external"; name, time, place and link only). |
proxyConfiguration | proxy | Apify Proxy | Fallback only — the direct connection is used first. |
Sources combine: locations × categories × searchTerms define map searches; calendars, hosts and urls are added on top. Every event is saved once.
Output data dictionary
Fill rates measured on 3,000 events from Luma's whole map (build 1.0.9, 2026-10-20, run 77nY6dROZmy0oOJdx); calendar-only fields from calendar runs. Empty values are null (or [] for lists) — never 0, never invented.
| Field | Type | Meaning | Filled | Example |
|---|---|---|---|---|
id | text | Luma event id (evt-…; calev-… for external calendar items) | 100 % | evt-kEEwMQEK7LOx4Xj |
url | text | Public event page (external items: their own site) | 100 % | https://luma.com/zbp6a1e1 |
name | text | Event title | 100 % | SGLang Meetup with LinkedIn and LMCache |
startAt / endAt | ISO date | Start and end in UTC | 100 % | 2026-10-21T00:00:00.000Z |
timezone | text | IANA time zone of the event | 100 % | America/Los_Angeles |
startAtLocal / endAtLocal | text | Local wall time with UTC offset | 100 % | 2026-10-20T17:00:00-07:00 |
durationMinutes | number | End minus start | 100 % | 240 |
timeStatus | text | upcoming, ongoing, ended at scrape time | 100 % | upcoming |
locationType | text | offline or the online platform (zoom, meet, youtube, twitch, discord, …) | 100 % | offline |
isOnline | boolean | Online event | 100 % | false |
venueName | text | Place name as Luma shows it (not for hidden addresses) | 78.2 % | LinkedIn Corporation - Building 950 (LSNR) |
address | text | Full postal address | 78.2 % | …, 950 W Maude Ave, Sunnyvale, CA 94085, USA |
shortAddress | text | Street and city | 77.3 % | 950 W Maude Ave, Sunnyvale |
locationNote | text | Organiser's note on the location | 17.6 % | Take the lift. Go to level 4! |
neighborhood | text | Neighbourhood / district | 69.4 % | Sunnyvale West |
city | text | City | 99.0 % | Sunnyvale |
region | text | State / region | 97.5 % | California |
country / countryCode | text | Country and ISO code | 100 % / 99.6 % | United States / US |
latitude / longitude | number | Coordinates (approximate for hidden addresses) | 100 % | 37.39245 / -122.0412877 |
coordinatesApproximate | boolean | Luma's approximate pin (hidden address) | 100 % | false |
addressHidden | boolean | Address shown to registered/approved guests only | 100 % | false |
googlePlaceId | text | Google place id of the venue | 78.2 % | ChIJGVicMwC3j4AREcC64ZSIxbg |
coverImageUrl | text | Cover image | 100 % | https://images.lumacdn.com/uploads/…png |
description | text | Full description as clean text | 98.0 % | Join SGLang, LinkedIn and LMCache … |
descriptionLinks | list | Links in the description | 36.7 % | ["https://github.com/sgl-project/sglang"] |
sponsorMentions | list | Description lines naming sponsors / partners | 10.8 % | ["Food and drinks sponsored by our friends at Sentry."] |
categories | list | Luma categories | 76.2 % | ["AI"] |
tags | list | The calendar's own tags (calendar runs) | calendars only | ["Meetup"] |
featuredIn | list | Luma city pages / calendars featuring the event | 14.2 % | ["San Francisco"] |
isFree | boolean | Free event | 100 % | true |
price | number | Luma's summary price, tax included (0 = free) | 99.3 % | 20 |
minPrice | number | Minimum of a pay-what-you-want price | 1.4 % | 5 |
maxPrice | number | Highest ticket price | 4.6 % | 56 |
currency | text | ISO currency of paid events | 14.9 % | GBP |
priceIsFlexible | boolean | Pay-what-you-want price | 13.9 % | true |
taxName / taxPercent | text / number | Tax added at checkout | 2.2 % | VAT / 20 |
ticketTypes | list | Every ticket type (see below) | 100 % | |
registrationStatus | text | open, waitlist, sold-out, closed, coming-soon | 100 % | waitlist |
requiresApproval | boolean | Host approves guests | 100 % | true |
isSoldOut | boolean | No spots left | 100 % | true |
spotsRemaining | number | Spots left (events with a limit) | 61.4 % | 0 |
capacity | number | Tickets taken + spots left (events with a limit) | 61.4 % | 277 |
isNearCapacity | boolean | Luma shows "almost full" | 100 % | false |
waitlistActive | boolean | Waitlist open | 100 % | true |
guestCount | number | "N Going" on the page | 100 % | 277 |
guestListShown | boolean | Organiser shows the guest list | 100 % | true |
registrationQuestions | list | Questions asked at registration | 55.0 % | ["What company/school do you work for?"] |
refundPolicy | text | Refund terms | 6.5 % | Tickets are nonrefundable and nontransferable |
calendarId | text | Calendar id | 100 % | cal-E1vs3T6MHVV1wRQ |
calendarName | text | Calendar (organiser) | 100 % | SGLang Meetups and Events |
calendarUrl | text | Calendar page (a person's profile for personal calendars) | 100 % | https://luma.com/SGLang |
calendarDescription | text | Calendar's short description | 44.9 % | SGLang is an open-source … |
calendarWebsite | text | Calendar website | 39.1 % | https://sglang.io/ |
calendarTwitter | text | X (Twitter) profile | 11.9 % | https://x.com/latentspacepod |
calendarLinkedin | text | LinkedIn page | 31.0 % | https://linkedin.com/company/latentspacepod |
calendarInstagram | text | Instagram profile | 31.7 % | https://instagram.com/latentspacepod |
calendarYoutube | text | YouTube channel | 13.1 % | https://youtube.com/@… |
calendarTiktok | text | TikTok profile | 7.3 % | https://tiktok.com/@… |
calendarAvatarUrl | text | Calendar logo | 100 % | |
calendarCity / calendarCountryCode | text | Calendar's home city / country | 33.4 % | San Francisco / US |
calendarIsPersonal | boolean | A person's own calendar | 100 % | false |
hostCount | number | Number of hosts shown | 100 % | 3 |
hostNames | text | Host names, |-separated | 97.8 % | LMSYS Org | Qing Lan | … |
hosts | list | Hosts (see below) | 97.9 % | |
featuredGuestCount | number | Attendees Luma shows on the public event page | 100 % ‡ | 10 |
featuredGuestNames | text | Their names, |-separated | 52 % ‡ | Priyanka Mary Mammen | Ryan Lagasse | … |
featuredGuests | list | Each one's id, name, profile link, bio, avatar, website, X/Twitter, LinkedIn, Instagram, YouTube, TikTok (same shape as hosts) | 52 % ‡ | |
platform | text | luma or external | 100 % | luma |
source | text | Which input found the event | 100 % | location San Francisco (Luma city, 50 km) |
detailsIncluded | boolean | Event detail record was read | 100 % | true |
scrapedAt | ISO date | When the row was collected | 100 % | 2026-10-20T13:17:28.734Z |
‡ San Francisco, 120 events, 2026-10-20: 52 % of events show featured guests — 619 people, 87 % of them with at least one social profile (525 with LinkedIn).
hosts[] (fill rates per host entry, 3,000-event run; on the 20,319-event run, per unique host: LinkedIn 51.0 %, Instagram 30.9 %, website 26.9 %, X 14.3 %, YouTube 8.1 %, TikTok 5.5 %, bio 36.1 %):
| Field | Meaning | Filled |
|---|---|---|
id | Luma user id (usr-…) | 100 % |
name | Name as shown | 99.0 % |
username | Luma username | 41.0 % |
url | Luma profile | 100 % |
bio | Short bio | 36.4 % |
avatarUrl | Profile photo | 100 % |
website | Website | 31.9 % |
twitter / linkedin / instagram / youtube / tiktok | Profile URLs | 16.0 / 55.9 / 32.8 / 8.9 / 5.0 % |
isVerified | Luma-verified | 100 % (rarely true) |
eventsHosted / eventsAttended / joinedAt | With Add host profile numbers | 100 % when on |
ticketTypes[]: id, name, type (free, fiat-price …), price (before tax), currency, minPrice (pay what you want), isFlexible, capacity (12.7 % set one), registered, spotsRemaining, requiresApproval, isHidden, isSoldOutOrClosed, salesStart / salesEnd (3.5 % / 4.5 %), description (13.1 %).
Output example
A real row from a run on 2026-10-20 (includeHostProfiles on), unedited:
{"id": "evt-kEEwMQEK7LOx4Xj","url": "https://luma.com/zbp6a1e1","name": "SGLang Meetup with LinkedIn and LMCache","startAt": "2026-10-21T00:00:00.000Z","endAt": "2026-10-21T04:00:00.000Z","timezone": "America/Los_Angeles","startAtLocal": "2026-10-20T17:00:00-07:00","endAtLocal": "2026-10-20T21:00:00-07:00","durationMinutes": 240,"timeStatus": "upcoming","locationType": "offline","isOnline": false,"venueName": "LinkedIn Corporation - Building 950 (LSNR)","address": "LinkedIn Corporation - Building 950 (LSNR), 950 W Maude Ave, Sunnyvale, CA 94085, USA","shortAddress": "950 W Maude Ave, Sunnyvale","locationNote": null,"neighborhood": "Sunnyvale West","city": "Sunnyvale","region": "California","country": "United States","countryCode": "US","latitude": 37.39245,"longitude": -122.0412877,"coordinatesApproximate": false,"addressHidden": false,"googlePlaceId": "ChIJGVicMwC3j4AREcC64ZSIxbg","coverImageUrl": "https://images.lumacdn.com/uploads/au/18f17544-0b09-4057-ac41-9bf61bc159a6.png","description": "Join SGLang, LinkedIn and LMCache for an AI Infra Meetup during Open Source AI Week!\nAfter a busy day at the conference, come unwind with fellow engineers, researchers, and AI practitioners. We're bringing together the people building and deploying real-world LLM serving systems for focused technical talks, great food and drinks, and plenty of time to connect with the community. Whether you're in town for PyTorch Conf or part of the Bay Area AI ecosystem, we'd love to have you join us.\nSchedule\n• 5:00 PM: Doors open, drinks, and networking\n• 6:00 PM – 8:00 PM: Technical talks from SGLang and LinkedIn (short break around 7:00 PM)\n• 8:00 PM – 9:00 PM: Networking, food, and drinks\nTalks include\n• LinkedIn: Generative Retrieval and running SGLang in production at scale\n• SGLang: Current status and RoadMap for Q4\n• Miles: RL Training update and Feature sharing\n• LMCache: Agent and KVCache Memory management\nAdditional Information\n• Space is limited to 150 attendees. Registration required for building access.\n• Photography and videography may take place during the event for promotional purposes.\n• Part of Open Source AI Week.\nSee you at our Meetup! 🎉","descriptionLinks": ["https://github.com/sgl-project/sglang", "https://www.linkedin.com/", "https://lmcache.ai/en/", "https://luma.com/opensourceaiweek"],"sponsorMentions": [],"categories": ["AI"],"tags": [],"featuredIn": ["San Francisco"],"isFree": true,"price": 0,"minPrice": null,"maxPrice": null,"currency": null,"priceIsFlexible": null,"taxName": null,"taxPercent": null,"ticketTypes": [{ "id": "ttype-bJpM7F9zzcz5mtJ", "name": "Standard", "type": "free", "price": 0, "currency": null, "minPrice": null, "isFlexible": false, "capacity": null, "registered": 277, "spotsRemaining": null, "requiresApproval": true, "isHidden": false, "isSoldOutOrClosed": false, "salesStart": null, "salesEnd": null, "description": null }],"registrationStatus": "waitlist","requiresApproval": true,"isSoldOut": true,"spotsRemaining": 0,"capacity": 277,"isNearCapacity": false,"waitlistActive": true,"guestCount": 277,"guestListShown": true,"registrationQuestions": ["What company/school do you work for?"],"refundPolicy": null,"calendarId": "cal-E1vs3T6MHVV1wRQ","calendarName": "SGLang Meetups and Events","calendarUrl": "https://luma.com/SGLang","calendarDescription": "SGLang is an open-source high-performance inference framework for LLM, built and maintained by the LMSYS Org. Join our events to learn more! All past & upcoming events: https://www.sglang.io/events","calendarWebsite": "https://sglang.io/","calendarTwitter": null,"calendarLinkedin": null,"calendarInstagram": null,"calendarYoutube": null,"calendarTiktok": null,"calendarAvatarUrl": "https://images.lumacdn.com/calendars/i4/d76dcaca-250b-4a10-8b3f-398d67ae7d41.jpg","calendarCity": "San Francisco","calendarCountryCode": "US","calendarIsPersonal": false,"hostCount": 3,"hostNames": "LMSYS Org | Qing Lan | Sundara Raman Ramachandran","hosts": [{ "id": "usr-vdm1UDfhrYPoJi1", "name": "LMSYS Org", "username": "lmsys", "url": "https://luma.com/user/lmsys", "bio": "LMSYS Org is a non-profit research organization dedicated to incubating open-source projects and advancing research on large AI models.", "avatarUrl": "https://images.lumacdn.com/avatars/bl/bd9dc8c9-0c8e-452b-ae58-dbcf2fd4dad6.jpg", "website": "https://lmsys.org/", "twitter": "https://x.com/lmsysorg", "linkedin": "https://linkedin.com/in/xxxx", "instagram": null, "youtube": "https://youtube.com/@lmsys-org", "tiktok": null, "isVerified": false, "eventsHosted": 29, "eventsAttended": 2, "joinedAt": "2026-02-27T07:07:15.137Z" },{ "id": "usr-oJGIf94FFmYcHpE", "name": "Qing Lan", "username": "lanking", "url": "https://luma.com/user/lanking", "bio": "MLSys @ LinkedIn", "avatarUrl": "https://images.lumacdn.com/uploads/a4/9bc1709b-bd9c-4099-becd-c6c699c2c636.jpg", "website": null, "twitter": null, "linkedin": "https://linkedin.com/in/lanking", "instagram": null, "youtube": null, "tiktok": null, "isVerified": false, "eventsHosted": 2, "eventsAttended": 12, "joinedAt": "2024-11-06T01:21:58.358Z" },{ "id": "usr-Gcm7OTGrbEsLjVQ", "name": "Sundara Raman Ramachandran", "username": "sundar24295", "url": "https://luma.com/user/sundar24295", "bio": "LLM Inference/Recommendation Systems @ LinkedIn | Staff Engineer | SGlang Contributor | UT Austin", "avatarUrl": "https://images.lumacdn.com/avatars/ty/60a0ea91-dfad-421e-b664-386c1d156765.jpg", "website": null, "twitter": null, "linkedin": "https://linkedin.com/in/sundara-raman-ramachandran", "instagram": null, "youtube": null, "tiktok": null, "isVerified": false, "eventsHosted": 2, "eventsAttended": 12, "joinedAt": "2024-07-30T15:31:35.221Z" }],"platform": "luma","source": "event link","detailsIncluded": true,"scrapedAt": "2026-10-20T13:17:28.734Z"}
Featured guests on a real San Francisco event (platform run, 2026-10-20):
"featuredGuests": [{"id": "usr-40SQEluKs96Lt2k","name": "Priyanka Mary Mammen","username": null,"url": "https://luma.com/user/usr-40SQEluKs96Lt2k","bio": null,"avatarUrl": "https://cdn.lu.ma/avatars-default/avatar_2.png","website": null,"twitter": "https://x.com/priyanka_mary","linkedin": "https://linkedin.com/in/priyanka-mary-mammen","instagram": null,"youtube": null,"tiktok": null,"isVerified": false},{"id": "usr-bw2t5tfbTPPJRRu","name": "Ryan Lagasse","username": null,"url": "https://luma.com/user/usr-bw2t5tfbTPPJRRu","bio": null,"avatarUrl": "https://images.lumacdn.com/uploads/1l/51a52b16-0f7c-46d2-a2f2-c5ff1462a206.jpg","website": null,"twitter": null,"linkedin": "https://linkedin.com/in/lagasse-ryan","instagram": null,"youtube": null,"tiktok": null,"isVerified": false}]
Values are exactly what Luma holds: linkedin.com/in/xxxx above is what LMSYS Org entered on its profile.
CSV / Excel columns: every field above becomes a column; lists are flattened by the export (categories/0, ticketTypes/0/name, ticketTypes/0/price, hosts/0/name, hosts/0/linkedin, hosts/1/name …). For one row per host, download JSON and expand hosts.
Scale, speed and coverage
Measured on the Apify platform on 2026-10-20 with the default 1 GB memory:
| Input | Events | Time |
|---|---|---|
| Prefill: New York, 50 events | 50 | 3.0 s (first rows after ~1 s) |
| San Francisco, 1,000, full details | 1,000 | 49.1 s |
| London, 1,000, full details | 1,000 | 49.7 s |
| Everywhere, the 3,000 soonest, full details | 3,000 | 237 s |
| Everywhere, 5,000, list data only | 5,000 | 129 s |
| Everywhere, everything, full details | 20,319 | 1,339 s (22 min), 0 duplicates |
| 17 cookbook recipes, 3–150 events each | — | 2–18 s each |
The whole-map run made 20,756 requests, every one answered (436 map pages and 20,319 event records), with no refusal and no rate-limit answer.
Where Luma's events are (whole map, 2026-10-20): United States 7,666 · United Kingdom 1,504 · Germany 1,289 · Canada 1,006 · Mexico 685 · Spain 570 · France 472 · Netherlands 448 · Japan 416 · India 410 · Australia 309 · Italy 294 · Switzerland 288 · Singapore 281 · Brazil 270 — 133 countries in all. Busiest cities: London 1,015 · New York 971 · San Francisco 695 · Berlin 521 · Mexico City 381 · Toronto 343 · Amsterdam 320 · Paris 296 · Brooklyn 283 · Munich 278 · Singapore 278 · Seattle 274 · Barcelona 252 · Austin 223 · Los Angeles 207.
What the events are: Tech 4,160 · AI 3,864 · Arts & Culture 3,426 · Fitness 1,543 · Wellness 963 · Climate 912 · Books 736 · Family 681 · Running 528 · Games 511 · Crypto 510 · Food & Drink 510 (an event can have several categories; 24.1 % have none). 79.2 % are free; paid events are priced in USD (2,008), EUR (886), GBP (423), CAD (359), JPY (118), AUD (94), CHF (73) and 29 more currencies. 13,290 different calendars and 25,440 different hosts published them; 83.0 % of events carry at least one website or social profile of the calendar or a host.
Accuracy. On 2026-10-20, 17 deliberately different events (paid in GBP with VAT, EUR, JPY, Mexico, India, Australia, a hidden address with approval, a 106-person waitlist, a pay-what-you-want ticket, two with registration closed, an online Zoom event, events with sponsors and with many host profiles) and 12 random events from the whole-map run were compared field by field with the live luma.com pages — the event's schema.org data and visible text (venue, address, map link, ticket list, organiser text, description links, sponsor lines), each host's profile page and the calendar page: 796 of 799 values matched; the 3 others were "N Going" counts that had changed by one between scraping and checking (Luma's own API confirmed the new numbers).
What you pay
Pay per event saved — no subscription, no extra charge for compute or proxies. The price per 1,000 events falls with your Apify plan:
| Apify plan | Price per 1,000 events |
|---|---|
| Free | $2.50 |
| Bronze | $2.23 |
| Silver | $1.97 |
| Gold, Platinum, Diamond | $1.70 |
Examples:
- 1,000 events (one city, full details): $2.50 on the free plan, $1.70 on Gold and above.
- 10,000 events: $25.00 … $17.00.
- The whole Luma map (≈ 20,000 upcoming events): ≈ $50 … $34.
- 100,000 events (weekly whole-map exports for five weeks): $250 … $170.
Only saved events are charged: duplicates found by several of your sources, events outside your area and events removed by your filters cost nothing. Host profile numbers and event details are included.
Maximum cost per run. Every run has a cost limit (set it under Run options → Maximum cost per run, or maxTotalChargeUsd in the API). Luma Scraper stops cleanly when the limit is reached, keeps everything collected so far and says so in the status message — a test run on 2026-10-20 with a $0.05 limit ended with "Saved 22 events — this run's maximum cost ($0.05) covers 22 results at the current price. Raise "Maximum cost per run" to get more." (22 rows, 22 charged). For a whole-map export, allow about $55.
Integrations
API (curl)
See the API tutorial: run-sync-get-dataset-items returns the events in one call for runs under five minutes; longer runs are started asynchronously and their dataset downloaded as JSON, CSV, XLSX, XML or HTML.
Node.js and Python
The official apify-client packages start runs, wait for them and iterate the dataset (examples above). Upsert by id to keep your own table current.
Make, Zapier and n8n
Use the Apify app (Make, Zapier) or the Apify node (n8n): Run an Actor with your input, then Get dataset items. Typical flows: new AI events in your city → Slack channel; events with sponsorMentions → a sponsorship pipeline; hosts → CRM.
Google Sheets and Airtable
Append rows with the Apify → Google Sheets integration or a Make/Zapier step (=IMPORTDATA() on the CSV link works for small lists); in Airtable use id as the primary key and update records on every run.
CRM via webhooks (HubSpot, Salesforce, Pipedrive, Attio)
A webhook on Run succeeded lets your endpoint read the dataset and upsert companies (calendars) and contacts (hosts) by their Luma ids.
Scheduling
Schedules in the Apify Console run the Actor every day or week with the same input — e.g. locations: ["London"], startDate today, endDate in 7 days. Because rows carry stable ids, de-duplicate across runs on your side.
MCP and AI agents
The Actor runs through Apify's MCP server, so AI assistants and agents (Claude, ChatGPT, Cursor and others that speak MCP) can call it with a plain-language request ("find AI hackathons in Berlin next month") and read the rows.
Data warehouses and BI
Export to S3, BigQuery, Snowflake or Postgres with the Apify integrations or a small script; UTC times, country codes, categories and prices are dashboard-ready.
Performance tips
- Need only names, dates, places and organisers? Turn off Include full event details: the whole map without details takes minutes instead of 22.
- Big exports: set Max events to 0 and a sufficient Maximum cost per run; one run for "everywhere" is faster than many runs for single cities (it reads Luma's whole-map list once).
- Cities: Luma's city names (San Francisco, New York, London …) use Luma's own city coordinates — no geocoding, fastest start. Use
radiusKmto tighten or widen the circle. - Countries: a country name filters by Luma's own country code, so border towns and islands are right.
- Calendars with long histories: use
when: "past"and astartDateto stop at a year instead of reading everything. - Host profile numbers cost one request per unique host; leave them off unless you rank hosts.
- Keyword search is semantic; for exact topics, combine a category with a few search terms.
Troubleshooting
"Saved N events (max results reached) in X s." — The run stopped at Max events. Raise it (0 = no limit) for more.
"Saved N events (every matching event read) in X s." — Everything that matched your input was read.
"Saved N events (stopped at the run time limit) in X s." — The run used its time limit (default 3,600 s). Raise the timeout in Run options, turn off details, or split the input.
"… N event detail(s) could not be read; those rows carry the list data only." — A few event records did not answer in time; those rows have detailsIncluded: false (no description, categories or ticket types). If many rows are affected the run is marked PARTIAL in its SUMMARY.
"… N page(s) could not be read." — Some map or calendar pages failed repeatedly; the SUMMARY shows outcome: PARTIAL and pagesSkipped. Re-run the same input to fill the gaps.
"No events matched on Luma — the search ran fine but returned 0 events." — Luma has no matching event. Common reasons follow in the same message: a place with no Luma events, a date window in the past for the map, eventType: "online" with locations (the map lists in-person events only), or a calendar without upcoming events (use when: "all").
"Saved N events — this run's maximum cost ($X) covers N results at the current price. Raise "Maximum cost per run" to get more." — The cost limit stopped the run cleanly; SUMMARY.stoppedBy is MAX_COST.
"Saved 0 events — this run's maximum cost ($X) does not cover a single result at the current price." — Raise Maximum cost per run.
Run failed: "Nothing to scrape: give locations …" — The input has no locations, categories, search terms, calendars, hosts or links.
Run failed: "No events collected: no page could be fetched (…)" — Luma could not be reached at all (outcome BLOCKED or FETCH_FAILED). This is an access failure, not an empty result; try again later or set a residential proxy in Proxy configuration.
Run failed: "No events collected and N page(s) could not be read, so an empty result cannot be confirmed." — Pages failed and nothing was saved; re-run.
Warnings in the log:
- "Could not find the place "X"…" — add a country ("Springfield, Illinois") or use coordinates.
- "Unknown category "X"…" — use one of the 12 category names.
- "Calendar "X" not found on Luma", "… is a Luma event, not a calendar", "Luma profile "X" not found", "Not a Luma link", "Luma has no page at …", "Unsupported Luma page" — check the link.
- "Luma's map … lists in-person events only …" — online events come from calendars, hosts and links.
- "X lies outside the part of the map where Luma lists events (60° S – 80° N)."
- "Featured events only needs one of Luma's own cities …" —
featuredOnlyworks with Luma's 87 cities or "everywhere". - "Luma asked this connection to slow down … using the Apify datacenter proxy" / "Luma rate-limited this connection …" — normal on shared platform addresses; the run continues through the proxy.
- "Luma did not answer the whole-map request as expected; reading the map cell by cell instead" — automatic fallback, slower but complete.
Limits
- The map is upcoming, in-person events only. Luma's map does not list past events (it refuses requests for them) or online events. Past and online events come from calendars, hosts and links.
- Featured guests, not full guest lists. Luma's public event page shows a handful of attendees ("featured guests", usually up to ~10) with their public profiles — those are exported in
featuredGuests. The complete guest list is visible only to signed-in guests and is not exported;guestCountgives the full "N Going". - Hidden addresses stay hidden. When the organiser shows the address only to approved guests, you get the neighbourhood, city, region, country and Luma's approximate pin.
- Search is Luma's semantic search. Results include related events; Luma answers 50 per area, so very broad terms in very busy areas are read through smaller areas while results stay on topic.
- Sponsors have no field on Luma;
sponsorMentionsare the description's own lines about sponsors and partners. - Profiles are what people typed. A host's LinkedIn can be a placeholder (
/in/xxxx) or out of date; stray spaces in handles are removed. - Prices:
priceandmaxPriceare Luma's summary prices with tax included; ticket-type prices are before tax (taxName,taxPercent). Prices are in the event's currency (yen and won have no decimals). capacityis tickets taken plus spots left, available only when the organiser set a limit.- Speed is paced to Luma's limits (about 15 event records per second), so the whole map with details takes about 22 minutes.
- Snapshots. Events change; schedule runs for fresh data.
Compared with the other ways to get Luma data
| Luma Scraper | Luma's own exports and API | Copying from the website | |
|---|---|---|---|
| Events from any organiser | Yes | Only calendars you manage | Yes, by hand |
| Whole city / country / world in one run | Yes | No | No |
| Past events of a calendar | Yes | Your own calendars | Scrolling |
| Host and organiser socials | Yes, as URLs | Your own guests | Clicking each profile |
| Ticket types, prices, approval, waitlist | Yes | Your own events | Partly visible |
| Output | CSV, Excel, JSON, API, integrations | CSV for your own data | Manual |
| Needs a Luma account / subscription | No | Yes (API needs a paid Luma plan) | No |
FAQ
What is Luma Scraper?
An Apify Actor that exports events from Luma (luma.com, lu.ma) — by city, country, category, keyword, calendar, host or link — as structured rows with dates, places, prices, registration data and the organisers' and hosts' public profiles.
Is there an official Luma API?
Luma's API covers only the calendars you manage (on a paid Luma plan). Luma Scraper reads the public event data any visitor sees, from every organiser.
How do I scrape Luma events into Excel or CSV?
Run the Actor with your locations or calendars, open the Output tab and click Export → CSV or Excel. Through the API, download …/datasets/<id>/items?format=csv or format=xlsx.
Can I export all events from Luma?
All upcoming in-person events on Luma's map: {"locations": ["everywhere"], "maxItems": 0} — 20,319 events on 2026-10-20 in 22 minutes. Past and online events come from calendars and hosts.
How do I get all events in San Francisco (or New York, London, Berlin) from Luma?
{"locations": ["San Francisco"]} — a 50 km circle around the city like luma.com's own city search. 1,000 events take about 50 seconds.
How do I scrape a Luma calendar?
Paste its link into Calendars: {"calendars": ["https://lu.ma/ls"], "when": "all"} returns its upcoming and past events.
Can I get past events from Luma?
Yes, for calendars and hosts (when: "past" or "all"). Luma's map itself lists only upcoming events.
How do I find AI events (or tech, crypto, wellness …) on Luma?
Use Categories: {"categories": ["ai"], "locations": ["London"]}, or everywhere. Luma's 12 categories: AI, Tech, Crypto, Arts & Culture, Climate, Fitness, Wellness, Food & Drink, Books, Games, Running, Family.
Can I search Luma events by keyword?
Yes — Search terms use Luma's own search in every location ("hackathon", "founders", "yoga", "web3").
Does it get the hosts' LinkedIn, X (Twitter) and Instagram?
Yes, for every host who entered them on Luma: hosts[].linkedin, .twitter, .instagram, .youtube, .tiktok, .website. On the whole map, 55.6 % of events had at least one host with LinkedIn.
Does it get the organiser's website and social links?
Yes: calendarWebsite, calendarLinkedin, calendarTwitter, calendarInstagram, calendarYoutube, calendarTiktok.
Can I get attendee lists or guest emails?
You get the attendees Luma shows publicly on each event page — featuredGuests, with each person's name, bio, website and social profiles (X/Twitter, LinkedIn, Instagram, YouTube, TikTok). In San Francisco on 2026-10-20, 52 % of events showed featured guests (619 people across 120 events, 525 with a LinkedIn profile). The full guest list and e-mail addresses are visible only to signed-in guests and are not exported; guestCount gives the total.
Do I need a Luma account or login?
No. Everything comes from public pages; no login, cookies or browser.
How fast is it?
First rows in about a second; 1,000 events with full details in about 50 seconds; the whole Luma map in about 22 minutes.
How much does it cost to scrape Luma?
$2.50 per 1,000 events on the free plan, down to $1.70 on Gold and above. The whole map is about $34–50.
Why do some events have no address?
The organiser chose to show the address only to registered or approved guests. Those rows have addressHidden: true, the city and Luma's approximate coordinates.
Why do some events have no hosts?
The organiser shows only the calendar ("Presented by …") — 2 % of events. The calendar's own name, website and socials are still there.
Are the times in local time?
Both: startAt/endAt in UTC and startAtLocal/endAtLocal in the event's time zone (timezone).
Does it include online events?
Yes, from calendars, hosts and links (isOnline, locationType such as zoom). Luma's map has in-person events only.
Can I filter by date?
Yes — startDate and endDate (YYYY-MM-DD).
Can I get only free events, or only paid ones?
"price": "free" or "price": "paid".
How do I get ticket prices?
price, minPrice, maxPrice, currency and the full ticketTypes list with each ticket's price, capacity and sales window.
What does "registrationStatus: closed" mean?
The event page says "Registration Closed": the organiser stopped registrations or all ticket sales windows ended.
How are duplicates handled?
Each event is saved once per run by its Luma event id, whichever source finds it first; source tells you which.
Can I get the events Luma features on its city pages?
"featuredOnly": true with a Luma city — or "everywhere" for all 87 cities (1,476 events on 2026-10-20).
Can I monitor new Luma events every day?
Schedule the Actor daily with a date window and upsert rows by id.
Why does a keyword search return events without the word in the title?
Luma's search is semantic ("buildathon" for "hackathon") and also reads descriptions; deeper zoom levels keep only events that mention the term.
What are sponsorMentions?
Lines of the description that mention sponsors or partners ("sponsored by …", a "Sponsors" heading and the names under it). Luma has no sponsor field; this is the organiser's own text.
Can an AI agent use this Actor?
Yes, through Apify's MCP server or the API; the rows are typed JSON with clean text descriptions.
Why did my run stop before Max events?
Everything matching was read, the cost limit was reached (MAX_COST in the SUMMARY) or the time limit came first — the status message says which.
I need a field or a filter that is missing. Can you add it?
Yes — write to us through the Issues tab; we reply within 24 hours.
Glossary
- Event — one Luma event page (
evt-…). - Calendar — the page a community, company or person publishes events on ("Presented by …" on the event page).
- Host — a person or organisation listed under "Hosted By".
- Luma city — one of Luma's 87 city pages (luma.com/sf, /london, /berlin …).
- Category — Luma's topic pages (AI, Tech, Crypto …).
- Featured — an event chosen for a Luma city page or a community calendar.
- Approval required — the host approves each registration.
- Waitlist — registrations beyond capacity wait for a spot.
- Ticket type — a kind of ticket with its own price, capacity and sales window.
- Pay what you want — a flexible price with a minimum (
priceIsFlexible,minPrice). - Hidden address — shown only to registered/approved guests (
addressHidden). - Map cell — a box of at most 10 × 10 degrees that Luma's map answers exactly.
- External event — an event a calendar lists from another website.
- Maximum cost per run — the spending cap of a pay-per-event run.
- Dataset — the run's table of results on Apify.
Legal and data protection
Luma Scraper reads information that Luma publishes on public pages for anyone to see, without logging in and without bypassing any access control; it does not export full guest lists, e-mail addresses or phone numbers. Event pages include personal data of hosts and of the featured guests Luma displays (names, profile photos, bios and the social profiles they chose to publish). If you process this data you are the controller: under the GDPR, UK GDPR, CCPA and similar laws, have a lawful basis (for example legitimate interest for B2B outreach), tell people where you got their data, honour objections and deletion requests, and keep only what you need. Respect Luma's terms of use and do not use the data for spam. The Actor paces its requests to Luma's published limits. This is not legal advice.
Changelog
1.0 (2026-10-20)
- First release: locations (Luma cities, any city/region/country, coordinates, boxes, everywhere), categories, keyword search, calendars (upcoming and past), hosts, any luma.com/lu.ma link, Luma's featured picks.
- Event details (description, categories, ticket types, questions, refund policy, featured places), optional host profile numbers.
- Whole map in 22 minutes (20,319 events, 0 duplicates); 1,000 events in about 50 seconds.
- Registration status as the event page shows it; prices in the correct units for zero- and three-decimal currencies; tax shown separately.
- Clean outcomes (COMPLETED / PARTIAL / EMPTY_RESULT succeed with a message; BLOCKED / FETCH_FAILED fail) and a SUMMARY record; clean stop at the maximum cost per run.
Support
Questions, a missing field, a site change? Open an issue on the Actor's Issues tab — we reply within 24 hours. Tell us the run id and what you expected; we usually ship fixes within days.
Luma Scraper is an independent tool, not affiliated with, endorsed by or sponsored by Luma AI, Inc. All trademarks belong to their owners.