Luma Events Scraper: lu.ma Cities, Calendars, Hosts avatar

Luma Events Scraper: lu.ma Cities, Calendars, Hosts

Pricing

from $0.69 / 1,000 events

Go to Apify Store
Luma Events Scraper: lu.ma Cities, Calendars, Hosts

Luma Events Scraper: lu.ma Cities, Calendars, Hosts

Scrape Luma (lu.ma) events from city pages, categories around a city, keywords, calendars and event links. Each row: start and end with time zone, venue or online, hosts, guest count, ticket prices, calendar with its links. Full description and ticket types on request. No login.

Pricing

from $0.69 / 1,000 events

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

8 days ago

Last modified

Share

794 Luma events in 18 seconds

From The Mine Works, makers of Threads Scraper and B2B Leads Finder, with over 140,000 runs across 170+ public actors.

Why choose this actor?

  • The people and the community behind every event. Each row carries the hosts' names, the calendar (Luma's organizer page) with the website and LinkedIn, X and Instagram links it lists, the guest count where the event shows it, and the ticket price. Our proof run returned 794 Tech and AI events around San Francisco, New York, London and Berlin in 18 seconds from 16 requests, with hosts on 98% of rows. No Luma account, no API key.
  • Cities, categories, keywords, calendars and single events. Read any of Luma's 87 city pages, its 12 categories (Tech, AI, Crypto, Climate and more) around a city, a keyword search, a community's calendar with its upcoming and past events, or a list of event links. Both lu.ma and luma.com links work.
  • You pay only for events you receive. One charge per event saved to your dataset, plus a flat start fee per run. An event found by two sources is delivered once, links that do not exist cost nothing, and on a schedule you can switch on "only events not delivered before".

Run it on Apify

Part of The Mine Works Food and local services family: NoBroker Scraper, Swiggy Restaurant Scraper, Zomato Scraper.

Try it in one minute

Paste this input and press Start. It returns 20 events from Luma's San Francisco page, each with hosts, calendar, venue and ticket facts, in about 5 seconds:

{
"cities": ["San Francisco"],
"maxEventsPerSource": 20
}

You can tell the actor what to read in several plain forms, and mix them in one run:

  • Cities: a name (San Francisco, London, Bengaluru), a common short form (NYC, SF, Bangalore), Luma's slug (sf, nyc) or a city link (https://luma.com/london). Luma has city pages for 87 cities; the full list is in the input form.
  • Categories: Luma's own: Tech, AI, Crypto, Climate, Arts & Culture, Fitness, Wellness, Food & Drink, Books, Games, Running, Family. Each is read around each city.
  • Keywords: plain text (founders, hackathon), searched in each city or each category around it.
  • Luma links: calendar pages (https://luma.com/happytown, https://lu.ma/calendar/cal-...), event pages (https://lu.ma/wbqgr661), city pages and category pages. Any other luma.com page name is looked up with Luma's own resolver.

Apify's free plan includes $5 of credit every month, which covers about 4,800 results at this actor's price.

Copy to your AI assistant

themineworks/luma-events-scraper on Apify. Returns public Luma (lu.ma, luma.com) events from city pages, categories around a city, keyword searches, calendar links (upcoming or past) and event links, one row per event with start and end in local time with offset and in UTC, venue with address and coordinates when the host shows them, online flag, host names, guest count where shown, free flag, ticket price range and currency, sold out and spots left, registration status, and the calendar's name, link, website and LinkedIn, X and Instagram links; with includeDetails also the full description, every ticket type with its price, Luma categories and refund policy. Call ApifyClient("TOKEN").actor("themineworks/luma-events-scraper").call(run_input={"cities": ["London"], "categories": ["ai"], "maxEventsPerSource": 100}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: at least one of cities (name, slug or luma.com city link) or startUrls (calendar, event, city or category links). Optional: categories (keys "tech", "ai", "crypto", "climate", "arts", "fitness", "wellness", "food", "books", "games", "running", "family"), searchTerms (list), calendarPeriod ("upcoming", "past", "both", default upcoming), maxEventsPerSource (20 to 5,000, default 100), includeDetails (default false), onlyNewEvents (default false). Skip rows that have "_type": "info". Full spec: GET https://api.apify.com/v2/acts/themineworks~luma-events-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral

Key features

  • About 50 fields per event, about 55 with details: title, link, start and end in local time with offset and in UTC, time zone, in person or online, venue name, full address, city, region, country, area and coordinates when public, host names and count, guest count, free flag, lowest and highest paid ticket price with currency, sold out, spots left, approval needed, registration status, waitlist, and the calendar's id, name, link, verified flag, website, LinkedIn, X and Instagram.
  • Five ways in: Luma city pages (87 cities), categories around a city (12 categories), keyword searches, calendars (upcoming, past or both) and event links. Every city runs with every category and keyword.
  • Deep lists: a category around a city runs to the end of Luma's list; in our test London Tech gave 222 events and New York Tech 248, with dates into June 2027. One community calendar gave 238 events (12 upcoming and 226 past).
  • Details on request, same price: the full description as text, every ticket type with its name and price, Luma's categories for the event and the refund policy. In our details run all 75 event records were read.
  • Respects hidden addresses: when a host shows the address only to registered guests, the row keeps the city, region and area and leaves the street and coordinates out (address_visible: false).
  • No browser, no login: plain requests to the same data luma.com's own pages load, over Apify's datacenter proxy, which the run includes. Guest lists are never read; only the count Luma shows.

How to use it

Basic: a city's Luma page

{
"cities": ["London"],
"maxEventsPerSource": 100
}

The events Luma lists on its London page, soonest first. A city page is Luma's own pick for the city and usually covers the next week or two (San Francisco's held 82 events on the day we tested); for more, add categories.

Several cities and categories at once

{
"cities": ["San Francisco", "New York", "London", "Berlin"],
"categories": ["tech", "ai"],
"maxEventsPerSource": 300
}

Every city runs with every category: here that is 8 sources, each with its own cap of 300, read around the city's coordinates and running months ahead. Every row says where it came from (source_type, source_input, search_city, search_category). An event found by two sources is delivered and charged once, under the first.

Community and partner prospecting: who runs AI events in your city

{
"cities": ["Bengaluru", "Singapore", "Dubai"],
"categories": ["ai", "tech"],
"searchTerms": ["founders"],
"maxEventsPerSource": 200
}

Group the rows by calendar_name: each calendar is a community or company that runs events, with its calendar_url, calendar_website and the social links it lists. guest_count (where shown) and how many events each calendar has in the list tell you who has the audience. Luma returns up to 50 events per keyword search.

A community's full history

{
"startUrls": ["https://luma.com/happytown", "https://lu.ma/calendar/cal-r7n2QUhNMWl9MoH"],
"calendarPeriod": "both",
"includeDetails": true,
"maxEventsPerSource": 500
}

Upcoming events first, then past ones, up to 500 per calendar, with the description and every ticket type. Use it to see how often a community meets, what it charges and how many guests come before you pitch a sponsorship or a venue.

Weekly feed of new events

{
"cities": ["NYC", "Austin"],
"categories": ["crypto", "ai"],
"onlyNewEvents": true,
"maxEventsPerSource": 300
}

Schedule it weekly (Console: Schedules, Add schedule). With onlyNewEvents each run returns, and charges for, only events no earlier run of yours delivered.

Full details for a list of events

{
"startUrls": ["https://lu.ma/wbqgr661", "https://luma.com/evt-qNw2xtm01YVzz3n"]
}

Event links always come with the details. In our test these two links point at the same event: one row was delivered and the other link was skipped as a duplicate, not charged.

Input parameters

ParameterTypeDefaultWhat it does
citiesarray of stringsnone (prefilled with San Francisco and London)Luma cities by name, short form, slug or city link. When cities and links are both left out, the run reads the San Francisco page as an example.
categoriesarray of stringsemptyLuma categories: tech, ai, crypto, climate, arts, fitness, wellness, food, books, games, running, family. Each is read around each city. Needs at least one city.
searchTermsarray of stringsemptyKeywords, searched in each city or each category around it (up to 50 events per keyword search).
startUrlsarray of stringsemptyCalendar, event, city and category links on lu.ma or luma.com.
calendarPeriodstringupcomingFor calendar links: upcoming, past or both (upcoming first, then past, under one cap).
maxEventsPerSourceinteger100Events per city, city and category, keyword search or calendar, 20 to 5,000.
includeDetailsbooleanfalseAdds the description, ticket types, categories and refund policy to list rows, at the same price per event.
onlyNewEventsbooleanfalseSkip, and do not charge for, events an earlier run of yours delivered.

What data do you get?

One row per event ("record_type": "event"). A field with no value is left out of that row rather than sent empty.

  • The event: event_id (evt-...), event_url, title, image_url, visibility, featured_city (the Luma city page that features it).
  • When: start and end in local time with the UTC offset, start_utc, end_utc, start_date, timezone.
  • Where: location_type, is_online, address_visible, venue_name, venue_address, venue_city, venue_region, venue_country, venue_country_code, venue_area, latitude, longitude. Street, address and coordinates appear only when the host shows them publicly.
  • Hosts and guests: hosts (names as shown on the event page), host_count, guest_count (when the event shows it).
  • Tickets and registration: is_free, price_min, price_max, currency, is_sold_out, spots_remaining, requires_approval, registration_status, waitlist_active.
  • The calendar (organizer): calendar_id, calendar_name, calendar_url, calendar_verified, calendar_website, calendar_linkedin, calendar_x, calendar_instagram. Links are the ones the calendar lists on Luma; for calendars Luma marks as personal they are left out, and calendar_linkedin only ever holds a company, school or group page, never a person's profile.
  • With includeDetails (and always for event links): description, ticket_types (name, type, price, currency, requires_approval, sold_out), categories, refund_policy, details_loaded.
  • Where the row came from: source_type (city, category, calendar or event), source_input, search_city, search_category, search_keyword, calendar_period, position, page, input, scraped_at.

Stable fields for automations

These fields were present in every row of our proof runs, and their names will not change:

FieldWhat it holds
record_typeAlways event on event rows
event_idLuma's event id, stable across runs; use it to dedupe
event_urlLink to the event page
titleEvent name
startStart in local time with offset
start_utcStart in UTC
timezoneIANA time zone of the event
is_onlineTrue for online events
host_countNumber of hosts
is_freeTrue when the event is free
registration_statusopen, waitlist, sold out and so on
calendar_nameCalendar (organizer) name
calendar_urlCalendar page
source_typecity, category, calendar or event
scraped_atWhen the row was read

Output examples

Real rows from our proof runs on 6 Oct 2026, with the description shortened and the image link left out.

An event with a public address, from a city and category search:

{
"record_type": "event",
"event_id": "evt-3tFZ8qOxgXTm9VE",
"event_url": "https://luma.com/gy4leckd",
"title": "Build a Production AI Agent with Snowflake CoCo",
"start": "2026-10-06T17:00:00-07:00",
"end": "2026-10-06T19:30:00-07:00",
"start_utc": "2026-10-07T00:00:00.000Z",
"timezone": "America/Los_Angeles",
"location_type": "offline",
"is_online": false,
"address_visible": true,
"venue_address": "135 Constitution Dr, Menlo Park, CA 94025, USA",
"venue_city": "Menlo Park",
"venue_region": "California",
"venue_country_code": "US",
"latitude": 37.4850527,
"longitude": -122.1762167,
"hosts": ["Silicon Valley AI Hub"],
"host_count": 1,
"guest_count": 81,
"is_free": true,
"requires_approval": true,
"registration_status": "open",
"calendar_id": "cal-n7ugivth1dxhYqE",
"calendar_name": "Silicon Valley AI Hub",
"calendar_url": "https://luma.com/SVAIHub",
"calendar_website": "https://siliconvalleyaihub.com/",
"calendar_linkedin": "https://www.linkedin.com/groups/15116044",
"source_type": "category",
"source_input": "San Francisco / AI",
"search_city": "San Francisco",
"search_category": "AI",
"position": 40,
"page": 1
}

A hidden address (shown only to registered guests), so only the city and area:

{
"event_id": "evt-eLeePX8oX6pLxX6",
"event_url": "https://luma.com/changemymind-awny2026",
"title": "Change My Mind by CartographAI",
"start": "2026-10-06T09:00:00-04:00",
"address_visible": false,
"venue_city": "New York",
"venue_area": "Midtown Manhattan",
"hosts": ["Unplugged Collective"],
"is_free": true,
"calendar_name": "Unplugged Collective",
"calendar_url": "https://luma.com/unpluggedcollective",
"calendar_website": "https://www.unpluggedcollective.com",
"calendar_linkedin": "https://www.linkedin.com/company/unplugged-collective",
"source_input": "New York / Tech"
}

A paid event:

{
"event_id": "evt-YiB6jA6tw3f2sNv",
"title": "IPVISE AI Film Screening Night 2026",
"start": "2026-10-17T18:30:00+01:00",
"venue_name": "King's College London Waterloo Campus",
"venue_address": "King's College London Waterloo Campus, Stamford St, London SE1 9NH, UK",
"hosts": ["IPVISE AI"],
"guest_count": 34,
"is_free": false,
"price_min": 15,
"price_max": 15,
"currency": "GBP",
"registration_status": "open",
"source_input": "London / AI"
}

A city page row with details (includeDetails):

{
"event_id": "evt-Orz6XNcl8delRad",
"event_url": "https://luma.com/8syl4va7",
"title": "AI Breakfast Club",
"start": "2026-10-06T08:30:00+01:00",
"venue_name": "Barclays Innovation Hub Powered by Eagle Labs",
"venue_address": "Barclays Innovation Hub Powered by Eagle Labs, 41 Luke St, London EC2A 4DP, UK",
"hosts": ["Twin Path Ventures"],
"is_free": true,
"spots_remaining": 9,
"registration_status": "sold-out",
"calendar_name": "Twin Path Ventures",
"calendar_website": "https://www.twinpath.vc/",
"calendar_linkedin": "https://www.linkedin.com/company/twin-path-ventures",
"featured_city": "London",
"source_type": "city",
"description": "Kickstart your morning, and your ideas, at the AI Breakfast Club.\nOctober's AI Breakfast Club is focusing AI for Science: ...",
"ticket_types": [
{ "name": "Ecosystem", "type": "free", "price": 0, "requires_approval": true, "sold_out": true },
{ "name": "Startup", "type": "free", "price": 0, "requires_approval": true },
{ "name": "Investor", "type": "free", "price": 0, "requires_approval": true, "sold_out": true }
],
"categories": ["AI"],
"details_loaded": true
}

Pricing

Pay per event: you pay for each event delivered to your dataset, plus a flat $0.005 per run, whatever memory you choose. Prices by Apify plan:

EventFree planBronze (Starter)Silver (Scale)Gold and above (Business)
Event delivered (event-scraped), per 1,000$0.99$0.89$0.79$0.69
Run start (run-start), once per run$0.005$0.005$0.005$0.005

Hosts, calendar links and details come at the same price per event; there is no separate host or details fee. Details make the run slower (one extra request per event), not dearer.

What is never charged:

  • Cities Luma has no page for, calendars with no events, links that do not exist.
  • Requests Luma refused, even after retries.
  • The same event found by two sources or linked twice: the second copy is skipped.
  • Events an earlier run already delivered, when Only events not delivered before is on.
  • The information row at the end of the dataset (it has "_type": "info").

Proxy traffic goes through Apify's datacenter proxy, which is included in the price; there is no separate proxy fee.

FAQ

What does this actor read? Public Luma events, logged out, the way any visitor sees them on lu.ma and luma.com: city pages, category pages, calendars and event pages. It asks Luma for the same data its own pages load. It does not use a Luma account, an API key or your cookies.

How many events can I get? Up to 5,000 per source. A city page is Luma's own pick for the city (82 events for San Francisco on the day we tested). A category around a city runs months ahead: London Tech gave 222 events and New York Tech 248 in our test. Calendars go back through their whole history with past. A keyword search returns up to 50 events.

Which cities can I use? The 87 cities Luma has pages for, listed in the input form: from San Francisco, New York, London and Berlin to Bengaluru, Lagos, Singapore and Sydney. A city Luma adds later works as a link (https://luma.com/<city>), which the actor looks up with Luma's own resolver.

Why do some events have no street address? Hosts can keep the address for registered guests only. The actor then gives the city, region and area and sets address_visible to false; it never guesses the street or the coordinates. In our proof run 59% of events had a public address.

Does it collect guest lists or contact details? No. It returns the guest count where Luma shows it, never the guest list, and host names only, as shown on the event page. Calendar links (website, LinkedIn, X, Instagram) are the ones a calendar publishes on its Luma page; for calendars Luma marks as personal they are left out, and a LinkedIn link to a person's profile is never delivered.

How fresh is the data? Live. Each run asks Luma at that moment, so guest counts, spots left and registration status are as shown when the row was read (scraped_at).

Do I need a Luma account, cookies or a proxy of my own? No. Nothing to log in to and nothing to set up. The actor uses Apify's datacenter proxy, which the run includes; in our proof run all 16 requests were answered on the first try.

What happens with a wrong link or a deleted event? It gets status not_found in the run summary (the OUTPUT record) and costs nothing; the rest of the run goes on as normal.

Can I run it on a schedule and get only new events? Yes. Turn on onlyNewEvents and add a schedule in Console (Schedules, Add schedule, daily or weekly). Each run delivers and charges only events no earlier run in your account delivered.

What formats can I export? JSON, CSV, Excel, XML, RSS and HTML from the dataset tab, or through the API. In CSV and Excel, lists such as hosts and ticket_types are spread over numbered columns (hosts/0, ticket_types/0/price).

I need a business email for the organizer. Luma does not publish one. Many calendars list a website (calendar_website): our Website Contact Finder reads the business email and phone a site publishes, and LinkedIn Company Details adds company facts for a company page in calendar_linkedin.

Can I use it from Claude, ChatGPT or Cursor (MCP)? Yes, through Apify's MCP server.

  • Connector URL: https://mcp.apify.com/?tools=themineworks/luma-events-scraper
  • Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
  • ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
  • Cursor or VS Code: add it as an HTTP MCP server with that URL.
  • Claude Code: claude mcp add -t http luma-events-scraper "https://mcp.apify.com/?tools=themineworks/luma-events-scraper"

Is it legal to scrape Luma? The actor reads only public pages and returns what any visitor can see, and it leaves guest lists out. You are responsible for how you use the data, including Luma's terms and data protection law such as GDPR and CCPA.

Integrations

  • Google Sheets: add the Google Sheets integration to the actor or a schedule, and new events land in a sheet after each run.
  • Make, Zapier and n8n: use the Apify app to start a run and read the dataset, for example to post new AI events in your city to Slack.
  • Webhooks: call your own endpoint when a run finishes.
  • API: start runs and read results from any language; the Python and JavaScript clients are a few lines each.
  • MCP clients: Claude, ChatGPT, Cursor, VS Code and Claude Code, as in the FAQ above.

More from The Mine Works

Food and local services

Social media and video

Leads and business directories

Marketing, SEO and reviews

LinkedIn

Real estate

Science, health and government data

Jobs and hiring

Company and business data

E-commerce and marketplaces

Developer and AI tools

More tools

Support

Found a city, link or field that does not come through? Open an issue on the Issues tab and include the input you used; we answer there. For a new site or source, email dmineworks@gmail.com.

Luma Events Scraper turns Luma cities, categories, calendars and links into a clean table of events with their hosts, communities, venues and ticket prices, with a charge only for the events you get.