Luma Events Scraper avatar

Luma Events Scraper

Pricing

from $0.50 / 1,000 event scrapeds

Go to Apify Store
Luma Events Scraper

Luma Events Scraper

Scrape Luma (lu.ma) events from city, calendar, category or event URLs: start/end time, timezone, venue and coordinates, hosts, ticket prices, sold-out status and cover image.

Pricing

from $0.50 / 1,000 event scrapeds

Rating

0.0

(0)

Developer

Trevor Ortega

Trevor Ortega

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Scrape public events from Luma (luma.com, formerly lu.ma): city pages like luma.com/sf, community calendars, category pages like luma.com/ai, keyword search and single event links. Every event comes with start and end time, timezone, venue and coordinates (when the host shows them), calendar, hosts, price range, sold-out and waitlist status, guest count and cover image. Turn on details to add the full description and every ticket type with its price.

It reads Luma's own public JSON API, the same one the website uses. No browser, no login and no cookies, so runs are fast and cheap: 100 events take a few seconds.

No start fee. You pay per event saved, and nothing for empty runs.

What data does Luma Events Scraper extract?

FieldDescription
idLuma event id (evt-...)
url, slugEvent page, e.g. https://luma.com/demo-night-sept2026
nameEvent title
startAt, endAtISO 8601 in UTC (2026-09-15T00:30:00Z)
timezoneEvent timezone, e.g. America/Los_Angeles
isOnline, locationTypeoffline, zoom, google_meet, ... (unknown if the host has not set a location)
venuename, address, shortAddress, city, region, country, countryCode, latitude, longitude, googlePlaceId
addressHiddentrue when the host shows the address to registered guests only; then only city/region/country are filled
calendarOrganising calendar: id, name, slug, url, website, isVerified, avatarUrl
hostsList of {name, username, url} (public Luma profile links)
coverImageUrlEvent cover image
isFree, priceMin, priceMax, currencyTicket price range (0 for free events)
isSoldOut, isWaitlist, registrationStatusopen, waitlist, sold_out, ...
spotsRemaining, isNearCapacityCapacity signals where Luma exposes them
requiresApprovalRegistration needs host approval
guestCountAggregate "going" number, only when the host shows the guest list publicly
tagsCalendar tags (calendar pages)
featuredCity, eventType, recurrenceId, visibility, platformExtra metadata. platform is external for events a calendar links to on another site
sourceUrl, scrapedAtWhere and when the item was scraped

With Include event details on, each event also gets:

FieldDescription
descriptionText, descriptionMarkdown, descriptionHtmlFull description in three formats
ticketTypes{name, type, isFree, price, minPrice, isFlexiblePrice, currency, isSoldOut, isAvailable, requiresApproval, membersOnly, capacity, spotsRemaining, salesStartAt, salesEndAt, description}
ticketPriceMin, ticketPriceMaxRange over available paid ticket types
registrationQuestionsCountHow many questions the registration form asks (never the answers)
categoriesLuma categories, e.g. AI, Tech, Food & Drink
waitlistEnabled, waitlistStatus, hasAvailableTickets, refundPolicy, socialImageUrl, localeRegistration extras

How to scrape Luma events

  1. Paste Luma links into Start URLs: a city (https://luma.com/nyc), a calendar (https://luma.com/genai-sf), a category (https://luma.com/ai), https://luma.com/discover, or event links. lu.ma links work too.
  2. Or type city slugs into Cities (sf, nyc, london, berlin, tokyo, ...), or a keyword into Search query.
  3. Set Max events to cap the run and the cost. Turn on Include event details if you need descriptions and ticket types.
  4. Click Start and export the dataset as JSON, CSV or Excel, or read it through the API.

Supported inputs

InputWhat you get
City page luma.com/sf or Cities ["sf"]Every upcoming event Luma lists for the city
Calendar luma.com/<calendar> or luma.com/calendar/cal-...All upcoming events of the calendar; past events too with Include past events
Category luma.com/ai, luma.com/tech, ...Category events around each city in Cities (or around Luma's default city)
luma.com/discoverEvents of each city in Cities, otherwise the city Luma picks for the server's location
Event luma.com/abc123xy, luma.com/event/evt-...That event
Search query onlyLuma-wide keyword search (Luma returns up to 50 events per keyword)

Input example

{
"startUrls": [
{ "url": "https://luma.com/sf" },
{ "url": "https://lu.ma/genai-sf" }
],
"cities": ["london"],
"searchQuery": "",
"includePastEvents": false,
"includeDetails": false,
"maxItems": 200
}

Output example

{
"id": "evt-0WzHsrNeVjAEwJV",
"url": "https://luma.com/le6wfcyu",
"slug": "le6wfcyu",
"name": "YWS x Grand Cru Chicago: Deep-cut Northern Italian Grapes (night 1)",
"startAt": "2026-09-16T00:00:00Z",
"endAt": "2026-09-16T02:00:00Z",
"timezone": "America/Chicago",
"isOnline": false,
"locationType": "offline",
"venue": {
"name": "Grand Cru Chicago",
"address": "Grand Cru Chicago, 1119 W Grand Ave, Chicago, IL 60642, USA",
"shortAddress": "1119 W Grand Ave, Chicago",
"city": "Chicago",
"cityState": "Chicago, IL",
"sublocality": "West Loop",
"region": "Illinois",
"country": "United States",
"countryCode": "US",
"latitude": 41.8909047,
"longitude": -87.655434,
"googlePlaceId": "ChIJlaObfsMtDogR6Ho-WR5p5Tk"
},
"addressHidden": false,
"calendar": {
"id": "cal-DbejUUA2IVnrWqF",
"name": "YWS Chicago",
"slug": null,
"url": "https://luma.com/calendar/cal-DbejUUA2IVnrWqF",
"isPersonal": false,
"website": "https://www.youngwinesociety.com/chicago",
"isVerified": true,
"avatarUrl": "https://images.lumacdn.com/calendars/bz/30910dcb-9089-4e2d-869b-748959c2605b.png"
},
"hosts": [
{ "name": "Young Wine Society Chicago", "username": "YWSChicago", "url": "https://luma.com/user/YWSChicago" }
],
"coverImageUrl": "https://images.lumacdn.com/uploads/js/f338b4df-fb16-4336-a960-541ea5dabb53.jpg",
"isFree": false,
"priceMin": 38.25,
"priceMax": 45.0,
"currency": "USD",
"isSoldOut": true,
"isWaitlist": true,
"registrationStatus": "waitlist",
"spotsRemaining": 0,
"isNearCapacity": false,
"requiresApproval": false,
"guestCount": null,
"tags": [],
"categories": ["Food & Drink"],
"visibility": "public",
"platform": "luma",
"sourceUrl": "https://lu.ma/le6wfcyu",
"scrapedAt": "2026-09-14T20:12:27+00:00",
"descriptionText": "Deep-cut Northern Italian Grapes 🍷\nAs summer winds down, we're diving into Northern Italy's lesser-known grapes...",
"ticketTypes": [
{ "name": "Standard", "type": "fiat-price", "isFree": false, "price": 45.0, "currency": "USD", "isAvailable": true, "membersOnly": false },
{ "name": "Vintage Member", "type": "fiat-price", "isFree": false, "price": 38.25, "currency": "USD", "isAvailable": false, "membersOnly": true }
],
"registrationQuestionsCount": 0
}

How much does it cost to scrape Luma?

Pay per event, no start fee and no monthly rental:

  • $0.0005 per event saved ($0.50 per 1,000 events).
  • +$0.001 per event when Include event details is on.

Apify's free plan ($5 of monthly credit) covers about 10,000 events a month, or about 3,300 with details. Platform usage is small because the actor only makes JSON API calls (one request per 50 events, plus one per event for details).

Does it work without a Luma account?

Yes. Everything comes from Luma's public API, which the Luma website calls for logged-out visitors. You do not need a Luma account, cookies or an API key (Luma's official API requires a paid Luma Plus plan and only covers calendars you manage).

How many events can I get from a city?

All of them: the actor follows Luma's pagination until the city's list ends (San Francisco lists about 80 upcoming events, New York about 110). For more, add more cities, add the city's big community calendars as start URLs, or scrape category pages around a city. Keyword search on its own is limited by Luma to 50 events per keyword.

Can I scrape past events?

Yes, for calendars. Turn on Include past events and the actor scrapes the calendar's upcoming events and then its past events, newest first. City and category pages on Luma only show upcoming events.

Can I get attendee lists or host emails?

No. The actor collects public event information only: the event, its venue, the organising calendar, and hosts' public display names with their Luma profile links. It never collects guest lists, attendee names, featured guests, registration answers, or anyone's email or phone number. guestCount is the aggregate number Luma shows on public events.

Integrations and API

Run it on a schedule and send new events to Google Sheets, Airtable, Slack, Zapier, Make or n8n, or call it from Python or Node.js with the Apify client. The API tab has ready-made snippets.

This actor reads publicly visible event listings, the same information anyone sees on luma.com without logging in, and it skips personal data such as guest lists. You are responsible for how you use the data and for complying with Luma's terms and the laws that apply to you (for example GDPR if you process hosts' names in the EU).

Support

Found a bug or need a field? Open an issue in the Issues tab. The actor is checked against the live site every day.