Luma Event Scraper: Hosts, Tickets, New Events avatar

Luma Event Scraper: Hosts, Tickets, New Events

Pricing

from $1.50 / 1,000 events

Go to Apify Store
Luma Event Scraper: Hosts, Tickets, New Events

Luma Event Scraper: Hosts, Tickets, New Events

Scrape public Luma (lu.ma) events by city, category, keyword, calendar, host or link: dates, venue and coordinates, ticket prices, sold out and approval flags, guest counts, hosts with LinkedIn and X links. Monitor new events and guest count changes. Export to JSON, CSV or Excel.

Pricing

from $1.50 / 1,000 events

Rating

0.0

(0)

Developer

Automation Craft

Automation Craft

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Luma Event Scraper: Hosts, Tickets, New Events

Scrape Luma events (lu.ma, now luma.com) into clean rows: dates in UTC and local time, venue with address and coordinates, ticket prices, sold out, waitlist and approval flags, guest counts, the hosts with their LinkedIn, X and Instagram links, the calendar, and with full details the description, categories, ticket types and registration questions. Find events by city, by any point on the map, by category, by keyword, by community calendar, by host, or paste event links. Run it on a schedule with a monitor name and each run delivers only the events that are new, plus a change report when a known event's guest count grows, it sells out, or its start time moves.

No Luma account, no cookies, no API key. Reads only the public event data Luma's own pages show to every visitor.

Who uses it

  • Sales and investor prospecting: the hosts of tech, AI and crypto events with their LinkedIn and X links, and the public featured guests of each event (optional).
  • Event newsletters, directories and calendars: every public event near a city, walked to the end, with dates, venue, price and a cover image.
  • Sponsorship and community teams: which events in a city or category draw the most guests, how fast they fill, which sell out.
  • Agents and automations: a structured Luma feed through the Apify API, with a monitor so a schedule only ever sends what is new.

Quick start

  1. Pick a city in Cities (for example sf, nyc, london), or paste Luma links in Luma links.
  2. Optional: add Categories, Keywords or the Filters (dates, minimum guests, free or paid, sold out, approval, in person or online, countries).
  3. Set Maximum events and click Start. Download the rows as JSON, CSV or Excel, or read them through the API.
  4. To watch for new events, give the run a Monitor name and schedule it. Turn on Report changes to also get a row when a known event's guest count, sold out state or start time moves.

What you get

One row per event (type: "event"). Fill rates measured on 9,887 distinct public events read on 2026-10-11 (4,415 outside the US, 1,213 past events) and, for the full details, on 294 events (FEASIBILITY.md):

FieldWhat it holdsFilled
eventId, url, nameLuma's event id, the event page, the title100%
startAt, endAt, timezone, startLocal, endLocal, durationMinutesstart and end in UTC and in the event's own time zone100%
format, locationTypein_person, online or unknown, and Luma's own location type100%
city, region, country, countryCodewhere the event takes place98.1% city, 98.5% country
latitude, longitudecoordinates of the venue98.5%
venueName, address, googlePlaceId, addressVisibilitythe venue and full address when the host shows it (guests_only when Luma shows it to registered guests only)75.1% address
isFree, price, maxPrice, currencyfree or paid, the lowest and highest ticket priceprice on 20.7% (the paid events)
isSoldOut, spotsRemaining, isNearCapacity, requiresApproval, waitlistEnabled, waitlistActive, registrationStatusavailability as Luma shows it100% (spots remaining 60%)
guestCount, guestListShownregistered guests as the event page shows them; null when the host hides the guest list, never a false 059.5% shown and above 0
hosts, hostNames, hostLinkedinUrls, hostCountevery host with name, Luma profile, bio, LinkedIn, X, Instagram, TikTok, YouTube and website links98.4% (LinkedIn on 7,624 of 13,213 hosts)
calendarthe community calendar: name, link, description, website and social links100%
featuredGuestCount, featuredGueststhe up to 10 attendees Luma shows on the page, with their links (only with Featured guests on)59.5%
description, descriptionLinksthe description as plain text and the links in it (full details)96.9%
categoriesLuma's categories of the event (full details)84.7%
ticketTypesevery ticket type: name, kind, price, currency, capacity, spots left, approval, sale dates (full details)100%
registrationQuestionsthe questions the host asks at registration (full details)59.5%
featuredIn, refundPolicy, languagewhere Luma features the event, the refund policy, the page language (full details)37.4%, 5.8%, 99.7%
coverImageUrl, visibility, platform, source, monitorChange, scrapedAtthe cover image, Luma's visibility, luma (or external for a calendar entry from another site), which input found the row, new in a monitor run, the time of the read100%

Other rows: eventUpdate (a monitor's change report: changes, guestCountBefore, guestCountNow, guestCountChange, soldOutBefore, soldOutNow, startAtBefore, lastDeliveredOn), host (a host profile: bio, eventsHosted, eventsAttended, joinedAt, links, foundOnEvents), status (a free row for a link Luma does not know, an empty search, a failed page or a stop) and one summary row at the end with the run's counters.

Example event row (shortened; a real row of run T1KWQ3hmPzsSYjZkX on 2026-10-11):

{
"type": "event",
"eventId": "evt-CPrQbJ5hNcrLCDT",
"url": "https://luma.com/greptile-3hiu",
"name": "Greptile x Datadog Happy Hour",
"startAt": "2026-10-13T22:00:00.000Z",
"startLocal": "2026-10-13T18:00",
"timezone": "America/New_York",
"format": "in_person",
"venueName": "The New York Times",
"address": "The New York Times, 620 8th Ave, New York, NY 10018, USA",
"city": "New York",
"countryCode": "US",
"latitude": 40.756268899999995,
"longitude": -73.990337,
"categories": ["AI"],
"isFree": true,
"isSoldOut": false,
"requiresApproval": true,
"guestCount": 220,
"guestListShown": true,
"hostNames": "Greptile, Datadog",
"hostLinkedinUrls": "https://www.linkedin.com/company/greptile, https://www.linkedin.com/company/datadog",
"detailsIncluded": true
}

How much does it cost to scrape Luma events?

Pay per event, with Apify's Store discounts by plan:

EventFree planBronzeSilverGold
Event (one event row)$0.002$0.0019$0.0017$0.0015
Event update (a monitor's change report)$0.002$0.0019$0.0017$0.0015
Host profile (only with Host profiles on)$0.002$0.0019$0.0017$0.0015
Results page (only in monitor runs: one list page read, up to 50 events, 100 on a calendar, or one link read)$0.0002$0.0002$0.0002$0.0002
Actor start (once per run, and once more if you resurrect it)$0.004$0.004$0.004$0.004

Platinum and Diamond plans pay the Gold price. The Store pricing card shows these prices per 1,000 events: "$2.00 / 1,000" on the Event row means one event costs 0.2 cents. Full event details, featured guests and the filters cost nothing extra.

Examples on the Free plan: 100 events near a city cost $0.004 + 100 x $0.002 = $0.204. 1,000 events cost $2.004. A daily monitor of a city whose feed holds 300 events (6 list pages) and finds 12 new ones costs $0.004 + 6 x $0.0002 + 12 x $0.002 = $0.0292 that day.

Free (a run still pays its start fee, and a monitor run its Results pages): links Luma does not know, events that fail your filters, empty searches, invalid input, repeated events, status rows and the summary. A monitor never charges an event twice.

Work that delivers nothing is bounded: a run may work 30 seconds plus 3 seconds per paid row (and 2 seconds per Results page) before it stops with a status row that says so. A search whose filters almost no event passes, or a long list of links Luma does not know, ends there; narrow the search or split the list. A monitor's own list pages and link reads are paid as Results pages and never count against it.

Input

FieldWhat it does
citiesLuma cities (sf, nyc, london, ... 87 in the list). By default every public event near the city, all categories, from now on.
coordinatesAny other place as "latitude,longitude", for example "30.2672,-97.7431". Luma answers with the events around it (measured up to about 70 km).
categoriesLuma categories: ai, arts, books, climate, crypto, family, fitness, food, games, running, tech, wellness. With cities or points: that category near each. Alone: that category on every continent.
keywordsWords or phrases an event's name or description must hold (whole words; the description counts when the event is read in full). With other sources they filter; alone each keyword is one Luma search (at most 50 events per keyword).
cityFeednearby (every event near the city, the default) or featured (only the events on Luma's own city page).
urlsLuma event, calendar, host (luma.com/user/<name>), city or category links, or ids evt-, cal-, usr-.
periodFor calendar and host links: upcoming (default), past or all.
startDateFrom, startDateTo, startWithinDaysA window on the event's own local start date.
minGuests, price, availability, approval, format, countriesMinimum guests (hidden guest lists never pass), free or paid, open or sold out, host approval, in person or online, ISO country codes or names.
maxItemsThe most event rows one run delivers (100 when left empty).
includeDetailsFull details (description, categories, ticket types, questions). On by default; off skips the full read for searches, calendars and hosts (faster, the same price); an event link is always read in full.
includeFeaturedGuests, includeHostProfiles, includeExternalEventsFeatured guests on event rows; one host profile row per host; calendar entries hosted on other sites. Off by default.
monitorName, reportChanges, minGuestChangeThe monitor: only new events, and change reports when guest counts move by at least minGuestChange.
stopAfterMissesA run stops after this many links in a row that Luma does not know (200 by default).

Input example:

{
"cities": ["sf", "nyc"],
"categories": ["ai"],
"startWithinDays": 14,
"minGuests": 50,
"availability": "open",
"maxItems": 500,
"monitorName": "ai-events-sf-nyc",
"reportChanges": true
}

The monitor: new events and guest count changes

Give the run a Monitor name and schedule it (daily or hourly). The monitor remembers every event it delivered under that name and never delivers or charges it again. Each run walks its sources to the end or to its row cap (a feed sorted by date can gain a new event on any page) and pays one Results page per list page read and per link read (a list of event links is re-read every run, to find new ones and changes). With Report changes on, a known event whose guest count moved by at least Minimum guest count change, whose guest count the host showed or hid, that sold out or reopened, or whose start time moved, comes back as one eventUpdate row with the figures before and now. One monitor name belongs to one set of settings; a name is per listing. A memory holds up to 100,000 events.

FAQ

How do I get every Luma event in my city?

Put the city in Cities and leave City feed on nearby: the run reads every public event Luma lists around the city to the end of the feed (1,162 events near San Francisco on 2026-10-11). featured gives only the shorter list on Luma's own city page.

Can I get Luma event data without Luma Plus or an API key?

Yes. Luma's official API needs a Luma Plus plan and only reaches your own calendars. This Actor reads the public event pages any visitor sees, with no account and no key.

Can I scrape a Luma event's guest list?

No. Luma shows the full guest list only to signed in users, and this Actor does not sign in. It delivers the guest count when the host shows it and, on request, the up to 10 featured guests Luma shows on the public page.

How do I export Luma events to CSV or Google Sheets?

Run the Actor, then download the dataset as CSV or Excel, or connect the Google Sheets integration on the run. Flat columns such as hostNames and hostLinkedinUrls sit next to the full hosts objects for spreadsheets.

Can I filter by date, country or guest count?

Yes: a start date window, countries, minimum guests, free or paid, sold out or open, host approval, in person or online. Events that fail a filter are left out and not charged.

Why does this Actor run with limited permissions?

It needs nothing beyond its own storage: the run's dataset, and for a monitor a named key-value store it creates itself. Limited permissions keep it from reading any other data in your account.

What this Actor does not do

  • No full guest lists: they are behind Luma's login (Luma answers "You are not signed in.").
  • No organizer e-mail addresses guessed from other websites; it delivers the links Luma shows.
  • No separate calendar lead rows; each event row carries its calendar with its links.
  • No other platforms (Eventbrite, Meetup) in the same run, and no ICS file or webhook of its own (use the platform's integrations).
  • A keyword alone searches Luma's own search, which answers at most 50 events per keyword; add a city, a point or a category to go deeper.
  • Hidden addresses stay hidden: an event that shows its address to guests only gives its city, area and coordinates.
  • A host who asked Luma to keep their profile away from search engines gets no host profile row.

API

curl -X POST "https://api.apify.com/v2/acts/automation_craft~luma-event-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"cities":["london"],"categories":["tech"],"maxItems":50}'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation_craft/luma-event-scraper').call({ cities: ['nyc'], minGuests: 100, maxItems: 200 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("automation_craft/luma-event-scraper").call(run_input={"urls": ["https://luma.com/user/Betaworks"], "period": "past"})
items = client.dataset(run["defaultDatasetId"]).list_items().items

Changelog

  • 0.1 (2026-10-11): first release.

More data tools by Automation Craft