Luma Events Scraper API (lu.ma) avatar

Luma Events Scraper API (lu.ma)

Pricing

Pay per event

Go to Apify Store
Luma Events Scraper API (lu.ma)

Luma Events Scraper API (lu.ma)

Scrape lu.ma events by city, community calendar, category or event URL. Returns name, start and end time with timezone, venue or online link, host, cover image, ticket price or free flag, sold-out status and guest count. Clean JSON, no login and no API key.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Share

Pulls public events off lu.ma and hands them back as flat JSON rows: what the event is called, when it starts and ends (in its own timezone), where it is, who is hosting, what a ticket costs and how many people have signed up.

Point it at a city, a community calendar, a category, or a single event link.

$2.125 per 1,000 events ($0.002125 each), plus $0.001 each time a run starts. Flat rate — no volume tiers, no plan gates, and you pay only for events actually returned. See Pricing for the honest full picture, including a cheaper competitor.


What you get

One row per event. From a real 300-event run across 10 cities (29 seconds, 33 different towns, 5 countries):

{
"eventId": "evt-zmiNTm0S1Vw0tYU",
"slug": "beta-fdnw",
"url": "https://lu.ma/beta-fdnw",
"name": "Snowflake X Beta Fund X Evermind Agent & Token Economy Hackathon",
"startAt": "2026-08-07T16:00:00.000Z",
"endAt": "2026-08-08T01:00:00.000Z",
"timezone": "America/Los_Angeles",
"startAtLocal": "2026-08-07 09:00",
"endAtLocal": "2026-08-07 18:00",
"durationMinutes": 540,
"locationType": "offline",
"isOnline": false,
"venueName": null,
"addressFull": null,
"city": "Menlo Park",
"cityState": "Menlo Park, CA",
"region": "California",
"country": "United States",
"countryCode": "US",
"latitude": 37.4867899,
"longitude": -122.1764731,
"addressIsHidden": true,
"hostName": "Beta University",
"hostCount": 5,
"hosts": [{ "name": "Beta University", "username": "betauniversity", "twitter": "UofBeta", "linkedin": "/school/university-of-beta", "website": "https://www.betauniversity.org/" }],
"calendarName": "Beta University Events",
"calendarUrl": "https://lu.ma/Beta-events",
"coverImageUrl": "https://images.lumacdn.com/uploads/ag/7b2256b3-...png",
"isFree": true,
"price": null,
"priceCurrency": null,
"isSoldOut": false,
"spotsRemaining": null,
"requiresApproval": true,
"registrationStatus": "open",
"guestCount": 676,
"ticketCount": 676,
"visibility": "public",
"scrapedAt": "2026-08-07T22:07:14.001Z"
}

Paid events fill in the price. Three real rows from the same run:

EventPriceStarts
How to Build a Regenerative Future for Humanity & Nature$15 USD2026-08-12 17:30
Does America Have a Housing Crisis? Looking Beyond the Headlines$27 USD2026-08-12 19:00
Matrescence: How Motherhood Rewires the Brain$27 USD2026-08-12 19:00

Turn on Fetch the full description and ticket tiers and each row also gets description (the event write-up as plain text), categories (Luma's own tags, e.g. ["AI","Crypto"]) and ticketTypes (every tier with its price and how many are registered).


Input

FieldWhat it does
startUrlsAny lu.ma links. Event pages (https://lu.ma/beta-fdnw), city pages (https://lu.ma/sf), community calendars (https://lu.ma/Beta-events), category pages (https://lu.ma/ai). Bare slugs work too.
citiesDiscover cities by slug (sf, nyc, london, berlin, tokyo, bengaluru) or plain name (San Francisco). Luma runs discover pages for 87 cities.
searchQueryKeyword filter applied to every city and calendar feed, e.g. hackathon.
categorytech, ai, crypto, climate, food, arts, fitness, wellness. Global feed only.
periodfuture (default) or past. Only affects community calendars.
includeDetailsAdds description, category tags and ticket tiers. One extra request per event.
maxItemsHard cap on rows. You pay per row returned.

Two ways to start:

{ "cities": ["sf", "nyc"], "maxItems": 100 }
{ "startUrls": ["https://lu.ma/Beta-events"], "period": "past", "maxItems": 50 }

What this does NOT do

Read this part before you buy.

  • A city feed is not an archive. Luma's discover page only serves upcoming events, and it runs out. San Francisco returned 82, New York 70, London 52, Berlin 16 on the day we tested. If you want thousands of rows, list more cities — not a bigger maxItems.
  • Past events only work on community calendars. Set period: "past" and pass a calendar URL. There is no past-events feed for a city.
  • About a third of street addresses are hidden by the organiser. Luma lets hosts reveal the exact venue only to approved guests. 194 of 300 rows in our test run had a venue name; the other 106 had addressIsHidden: true with only the city and an approximate coordinate. We report the flag rather than guessing.
  • No guest lists. guestCount is the number Luma shows publicly. Individual attendee names, emails and profiles are not scraped.
  • No private, unlisted or password-gated events. If you cannot see it logged out, neither can this actor.
  • The category filter is global, not per-city. Luma ignores a category when a city is also set, so category works on its own and the results skew to whatever region the request exits from.
  • Online-only events are rare here. Every one of our 300 test rows was offline. Luma's city feeds are, by definition, geographic.

Pricing

$2.125 per 1,000 events — $0.002125 per event returned — plus $0.001 each time a run starts. Flat rate: no volume tiers, no plan gates, no minimum.

Sample rows, diagnostic rows, blocked requests and empty runs are never charged. A run with no input returns one clearly labelled _sample row and costs you the start fee only. includeDetails adds one request per event but does not change the price, so descriptions, category tags and full ticket tiers cost the same $0.002125 per row.

Where that sits on this store. This is not the cheapest Luma scraper listed: matyascimbulka/luma-event-scraper (50 monthly users) charges $0.03 per 1,000 on its lowest tier. What you get for the difference is the row shown above — UTC and event-local start/end times with the IANA timezone, geocoded coordinates plus an explicit addressIsHidden flag, every host with their social links, ticket tiers with currency handled correctly for zero-decimal currencies, and public guest counts. If raw price per row is your only criterion, go and read every listing's pricing tab. We would rather tell you that than pretend.


FAQ

What is the Luma API and can I use it for free? Lu.ma has an official API, but it is scoped to calendars you own and needs a Luma Plus plan and an API key. There is no public endpoint for browsing other people's events. This actor reads the same public data the website shows a logged-out visitor.

How do I scrape all events in a city from lu.ma? Put the city slug in citiessf, nyc, london, berlin, tokyo, singapore, bengaluru, la and 79 others. You will get everything Luma currently lists as upcoming there, typically 50–90 events.

Can I get Luma event attendee or guest data? You get the public guestCount and ticketCount per event. You do not get individual attendees. Names and emails of registrants are private to the organiser and this actor does not touch them.

Does it return ticket prices? Yes. isFree is always set. Paid events carry price, priceCurrency, priceMax (when tiers vary), isSoldOut and spotsRemaining. With includeDetails on you also get every ticket tier by name. price is in whole currency units and the conversion respects zero-decimal currencies, so a 2,500 yen ticket comes back as 2500 JPY, not 25. Our last run returned USD, GBP, EUR, JPY and SGD prices side by side.

Why is price null when isFree is true but priceMax has a number? That is Luma's "Free – £15" pattern: the entry tier is free and there are optional paid tiers. The row is telling you the cheapest ticket costs nothing and the dearest costs priceMax.

Can I monitor a specific community's calendar? Yes — paste the calendar page, e.g. https://lu.ma/Beta-events. Schedule the run daily and diff on eventId. Calendars are the only source that also exposes past events.

What timezone are the dates in? startAt and endAt are UTC ISO-8601. timezone is the event's IANA zone, and startAtLocal / endAtLocal are already converted to it, so you do not have to do the maths.

Does it need a proxy or a login? No. No Luma account, no cookies, no API key. The actor brings its own egress.

How fast is it? 300 events across 10 cities finished in 29 seconds. A single event URL takes about 3 seconds.

Which fields are empty and why? venueName / addressFull are null when the organiser hides the address (35% of our test run) — addressIsHidden tells you which. description, categories and ticketTypes are null unless you switch on includeDetails.


Notes

Built and maintained by Dami Studio. If Luma changes something and rows stop coming back, the actor returns a diagnostic row explaining what broke instead of silently charging you for nothing.