Luma Scraper — Events, Hosts, Socials & Tickets (lu.ma) avatar

Luma Scraper — Events, Hosts, Socials & Tickets (lu.ma)

Pricing

from $1.70 / 1,000 results

Go to Apify Store
Luma Scraper — Events, Hosts, Socials & Tickets (lu.ma)

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

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

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

  1. At a glance
  2. What you get
  3. Who uses it — and how
  4. How it works
  5. Cookbook: ready-to-run inputs
  6. Tutorial: your first run in the Apify Console
  7. Tutorial: run it through the API
  8. Input reference
  9. Output data dictionary
  10. Output example
  11. Scale, speed and coverage
  12. What you pay
  13. Integrations
  14. Performance tips
  15. Troubleshooting
  16. Limits
  17. Compared with the other ways to get Luma data
  18. FAQ
  19. Glossary
  20. Legal and data protection
  21. Changelog
  22. Support

At a glance

Sourceluma.com (lu.ma) — public event pages, calendars, profiles and Luma's event map
CoverageEvery 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 event74 columns: event, time, place, description, categories, prices, ticket types, registration, calendar with socials, hosts with socials
Ways to choose eventsLocations (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
FiltersUpcoming / 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-duplicationBy 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
OutputApify dataset → JSON, CSV, Excel, XML, RSS, HTML table; API; integrations
Login / cookies / browserNone needed
PriceFixed 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 kept
  • descriptionLinks — every link in the description
  • sponsorMentions — 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 — 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"
  • neighborhood — "Sunnyvale West", city — "Sunnyvale", region — "California", country — "United States", countryCode — "US"
  • latitude / longitude — 37.39245 / -122.0412877; googlePlaceId — "ChIJGVicMwC3j4AREcC64ZSIxbg"
  • addressHidden — true when 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. 20 with currency "GBP"); maxPrice — the dearest ticket; minPrice — the minimum of a pay-what-you-want ticket; priceIsFlexible
  • taxName / taxPercent — "VAT" / 20 when the organiser charges tax at checkout
  • ticketTypes — every ticket: name, type (free, fiat-price …), price, currency, capacity, registered, spots remaining, approval, hidden, sold out or closed, sales start and end, description
  • registrationStatus — 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, isNearCapacity
  • guestCount — 277 (the page's "277 Going"); spotsRemaining and capacity when the organiser set a limit
  • registrationQuestions — 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", calendarId
  • calendarDescription, calendarWebsite — "https://sglang.io/"
  • calendarTwitter, calendarLinkedin, calendarInstagram, calendarYoutube, calendarTiktok — full profile URLs
  • calendarCity, 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 — 3
  • hosts — for each host: name, username, url (Luma profile), bio, avatarUrl, website, twitter, linkedin, instagram, youtube, tiktok, isVerified, and with Add host profile numbers also eventsHosted, 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:

  1. 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.
  2. 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.
  3. 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.
  4. Links. Any luma.com or lu.ma link is recognised: event pages, calendars, city pages, category pages, profiles.
  5. 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.
  6. 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.

{ "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.

{ "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

  1. Open the Actor and click Try for free (or Start if it is already in your list).
  2. In Locations, type a city — San Francisco, London, Berlin, Singapore — or a region, a country, or everywhere.
  3. Optional: pick Categories (AI, Tech, Crypto, Arts & Culture …), add Search terms, or paste Calendars, Hosts or Luma links.
  4. Optional filters: Starting on or after / before for a date window, In person or online, Price.
  5. Set Max events (50 to try, 1,000 by default, 0 = no limit).
  6. 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.
  7. 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 JSON
curl -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 CSV
curl -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 ApifyClient
client = 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

FieldTypeDefaultWhat it does
locationslist 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".
radiusKminteger 1–50050Circle around a city or point. Regions and countries always use their boundary.
categorieslist—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.
searchTermslist of text—Keywords for Luma's search, in every location (or everywhere).
calendarslist of text—Calendar links (https://luma.com/ls, lu.ma/genai-sf), slugs (ls) or ids (cal-…).
hostslist of text—Profile links (https://luma.com/user/lmsys), usernames or ids (usr-…).
urlslist of text—Any luma.com / lu.ma link — events, calendars, city pages, category pages, profiles — or event ids (evt-…). Recognised automatically.
whenupcoming / past / allupcomingFor calendars and hosts. The map (locations, categories, search) is upcoming only.
startDatedate—Only events starting on or after this day (events already running on it are kept).
endDatedate—Only events starting on or before this day.
eventTypeall / in-person / onlineallIn-person or online events only.
priceall / free / paidallFree or paid events only.
featuredOnlybooleanfalseOnly the events Luma features on its city pages (with a Luma city or everywhere).
maxItemsinteger1000Stop after this many unique events (0 = no limit).
includeDetailsbooleantrueDescription, categories, ticket types, questions, refund policy, featured places. Off = faster list data only.
includeHostProfilesbooleanfalseAdds eventsHosted, eventsAttended, joinedAt to every host (one request per unique host).
includeExternalEventsbooleantrueKeep events a calendar lists from other websites (platform: "external"; name, time, place and link only).
proxyConfigurationproxyApify ProxyFallback 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.

FieldTypeMeaningFilledExample
idtextLuma event id (evt-…; calev-… for external calendar items)100 %evt-kEEwMQEK7LOx4Xj
urltextPublic event page (external items: their own site)100 %https://luma.com/zbp6a1e1
nametextEvent title100 %SGLang Meetup with LinkedIn and LMCache
startAt / endAtISO dateStart and end in UTC100 %2026-10-21T00:00:00.000Z
timezonetextIANA time zone of the event100 %America/Los_Angeles
startAtLocal / endAtLocaltextLocal wall time with UTC offset100 %2026-10-20T17:00:00-07:00
durationMinutesnumberEnd minus start100 %240
timeStatustextupcoming, ongoing, ended at scrape time100 %upcoming
locationTypetextoffline or the online platform (zoom, meet, youtube, twitch, discord, …)100 %offline
isOnlinebooleanOnline event100 %false
venueNametextPlace name as Luma shows it (not for hidden addresses)78.2 %LinkedIn Corporation - Building 950 (LSNR)
addresstextFull postal address78.2 %…, 950 W Maude Ave, Sunnyvale, CA 94085, USA
shortAddresstextStreet and city77.3 %950 W Maude Ave, Sunnyvale
locationNotetextOrganiser's note on the location17.6 %Take the lift. Go to level 4!
neighborhoodtextNeighbourhood / district69.4 %Sunnyvale West
citytextCity99.0 %Sunnyvale
regiontextState / region97.5 %California
country / countryCodetextCountry and ISO code100 % / 99.6 %United States / US
latitude / longitudenumberCoordinates (approximate for hidden addresses)100 %37.39245 / -122.0412877
coordinatesApproximatebooleanLuma's approximate pin (hidden address)100 %false
addressHiddenbooleanAddress shown to registered/approved guests only100 %false
googlePlaceIdtextGoogle place id of the venue78.2 %ChIJGVicMwC3j4AREcC64ZSIxbg
coverImageUrltextCover image100 %https://images.lumacdn.com/uploads/…png
descriptiontextFull description as clean text98.0 %Join SGLang, LinkedIn and LMCache …
descriptionLinkslistLinks in the description36.7 %["https://github.com/sgl-project/sglang"]
sponsorMentionslistDescription lines naming sponsors / partners10.8 %["Food and drinks sponsored by our friends at Sentry."]
categorieslistLuma categories76.2 %["AI"]
tagslistThe calendar's own tags (calendar runs)calendars only["Meetup"]
featuredInlistLuma city pages / calendars featuring the event14.2 %["San Francisco"]
isFreebooleanFree event100 %true
pricenumberLuma's summary price, tax included (0 = free)99.3 %20
minPricenumberMinimum of a pay-what-you-want price1.4 %5
maxPricenumberHighest ticket price4.6 %56
currencytextISO currency of paid events14.9 %GBP
priceIsFlexiblebooleanPay-what-you-want price13.9 %true
taxName / taxPercenttext / numberTax added at checkout2.2 %VAT / 20
ticketTypeslistEvery ticket type (see below)100 %
registrationStatustextopen, waitlist, sold-out, closed, coming-soon100 %waitlist
requiresApprovalbooleanHost approves guests100 %true
isSoldOutbooleanNo spots left100 %true
spotsRemainingnumberSpots left (events with a limit)61.4 %0
capacitynumberTickets taken + spots left (events with a limit)61.4 %277
isNearCapacitybooleanLuma shows "almost full"100 %false
waitlistActivebooleanWaitlist open100 %true
guestCountnumber"N Going" on the page100 %277
guestListShownbooleanOrganiser shows the guest list100 %true
registrationQuestionslistQuestions asked at registration55.0 %["What company/school do you work for?"]
refundPolicytextRefund terms6.5 %Tickets are nonrefundable and nontransferable
calendarIdtextCalendar id100 %cal-E1vs3T6MHVV1wRQ
calendarNametextCalendar (organiser)100 %SGLang Meetups and Events
calendarUrltextCalendar page (a person's profile for personal calendars)100 %https://luma.com/SGLang
calendarDescriptiontextCalendar's short description44.9 %SGLang is an open-source …
calendarWebsitetextCalendar website39.1 %https://sglang.io/
calendarTwittertextX (Twitter) profile11.9 %https://x.com/latentspacepod
calendarLinkedintextLinkedIn page31.0 %https://linkedin.com/company/latentspacepod
calendarInstagramtextInstagram profile31.7 %https://instagram.com/latentspacepod
calendarYoutubetextYouTube channel13.1 %https://youtube.com/@…
calendarTiktoktextTikTok profile7.3 %https://tiktok.com/@…
calendarAvatarUrltextCalendar logo100 %
calendarCity / calendarCountryCodetextCalendar's home city / country33.4 %San Francisco / US
calendarIsPersonalbooleanA person's own calendar100 %false
hostCountnumberNumber of hosts shown100 %3
hostNamestextHost names, |-separated97.8 %LMSYS Org | Qing Lan | …
hostslistHosts (see below)97.9 %
featuredGuestCountnumberAttendees Luma shows on the public event page100 % ‡10
featuredGuestNamestextTheir names, |-separated52 % ‡Priyanka Mary Mammen | Ryan Lagasse | …
featuredGuestslistEach one's id, name, profile link, bio, avatar, website, X/Twitter, LinkedIn, Instagram, YouTube, TikTok (same shape as hosts)52 % ‡
platformtextluma or external100 %luma
sourcetextWhich input found the event100 %location San Francisco (Luma city, 50 km)
detailsIncludedbooleanEvent detail record was read100 %true
scrapedAtISO dateWhen the row was collected100 %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 %):

FieldMeaningFilled
idLuma user id (usr-…)100 %
nameName as shown99.0 %
usernameLuma username41.0 %
urlLuma profile100 %
bioShort bio36.4 %
avatarUrlProfile photo100 %
websiteWebsite31.9 %
twitter / linkedin / instagram / youtube / tiktokProfile URLs16.0 / 55.9 / 32.8 / 8.9 / 5.0 %
isVerifiedLuma-verified100 % (rarely true)
eventsHosted / eventsAttended / joinedAtWith Add host profile numbers100 % 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:

InputEventsTime
Prefill: New York, 50 events503.0 s (first rows after ~1 s)
San Francisco, 1,000, full details1,00049.1 s
London, 1,000, full details1,00049.7 s
Everywhere, the 3,000 soonest, full details3,000237 s
Everywhere, 5,000, list data only5,000129 s
Everywhere, everything, full details20,3191,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 planPrice 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 radiusKm to 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 a startDate to 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 …" — featuredOnly works 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; guestCount gives 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; sponsorMentions are 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: price and maxPrice are 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).
  • capacity is 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 ScraperLuma's own exports and APICopying from the website
Events from any organiserYesOnly calendars you manageYes, by hand
Whole city / country / world in one runYesNoNo
Past events of a calendarYesYour own calendarsScrolling
Host and organiser socialsYes, as URLsYour own guestsClicking each profile
Ticket types, prices, approval, waitlistYesYour own eventsPartly visible
OutputCSV, Excel, JSON, API, integrationsCSV for your own dataManual
Needs a Luma account / subscriptionNoYes (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.

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.

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.