# Luma Events Scraper: Every Event in Your City (lu.ma) (`precious_bathmat/luma-events-finder`) Actor

Find Luma (lu.ma) events in 87 cities: 1,000+ upcoming events per big city, or search any topic or calendar. Date, venue, price, free or paid, guests, sold out, organiser. Plus a city events report. No login, no API key.

- **URL**: https://apify.com/precious_bathmat/luma-events-finder.md
- **Developed by:** [Mariam Ahmed](https://apify.com/precious_bathmat) (community)
- **Categories:** Lead generation, Marketing
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 events

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Luma Events Scraper: Every Event in Your City (lu.ma)

Find **Luma (lu.ma) events** in any of Luma's 87 cities, with no login and no API key, and get an **events report for every city**:

- **Every event in a city, not just the featured ones**: Luma's city page shows 50 to 80 events; this Actor sweeps 40 topics and finds **900+ upcoming events in New York and 780+ in London** in a month
- **Every event**: name, date and local time, day of week, duration, venue, address and map coordinates (when public), city and country, free or ticket price range, guests, spots left, sold out or waitlist, approval needed, organiser and its website and socials, link
- **Search any way**: cities, topics ("hackathon", "AI", "run club") in a city or worldwide, or paste **lu.ma calendar links** (all upcoming events of a community) and **event links**
- **Optional details**: description, Luma categories and every ticket type with its price
- **Report per city**: free vs paid share and ticket prices, busiest days and start hours, sold out, top organisers, biggest events, neighbourhoods

### What does this Luma scraper do?

```
Luma · New York · next 30 days · 935 events
 66% free · paid median $29.99 ($15 – $55)
 Busiest: Thursday, 6 pm · 155 sold out or waitlisted · 43% need approval
 397 organisers · biggest: Founders Running Club (1,104 guests)
```

1. Enter **cities** ("New York", "London", "Berlin", "Bengaluru"), or **topics**, or **lu.ma links**.
2. Pick **days ahead**, **free only**, **online events**, **event details**.
3. You get **one row per event** and **one report per city, search or calendar**.

```mermaid
flowchart LR
    A[Cities] --> C[Luma discovery<br/>+ 40-topic sweep]
    B[Topics, calendar<br/>and event links] --> C
    C --> D[Events<br/>date, venue, price,<br/>guests, organiser]
    D --> E[City report<br/>free vs paid, days,<br/>organisers, biggest]
```

### Who is it for?

- **Event marketers and sponsors**: every tech, startup, AI and community event in a city, and who organises them
- **Sales and partnerships teams**: organisers (communities and companies) with websites and socials, ranked by how many events they run
- **Founders, investors and job seekers**: the hackathons, demo days, founder dinners and meetups worth going to
- **Venues and event businesses**: which nights and hours are busiest, what tickets cost, which events sell out
- **Newsletters and city guides**: a weekly feed of what's on, with free and paid events

### What data do you get?

**Events** (dataset, one row per event)

| Field | What it tells you |
|---|---|
| `id`, `name`, `url`, `coverUrl` | The event |
| `startAt`, `endAt`, `timezone`, `localDate`, `localTime`, `dayOfWeek`, `durationHours` | When, in the event's own time zone |
| `venue`, `address`, `neighborhood`, `latitude`, `longitude`, `addressShown` | Where, when the event shows its address publicly |
| `city`, `region`, `country`, `countryCode`, `isOnline` | City and country, or online |
| `isFree`, `priceFrom`, `priceTo`, `currency` | Free, or the ticket price range |
| `guestCount`, `spotsRemaining`, `soldOut`, `nearCapacity`, `waitlist`, `requiresApproval`, `registration` | Demand and how to get in |
| `organiser`, `organiserUrl`, `organiserWebsite`, `organiserVerified`, `organiserSocial`, `hostCount` | The community or company calendar running it |
| `topics` | Which topic searches found it |
| `description`, `categories`, `ticketTypes` | With **Event details** on |

**Report** (`REPORTS`, one per city, search or calendar)

| Field | What it tells you |
|---|---|
| `eventsFound`, `firstEvent`, `lastEvent` | How many events, over which dates |
| `freePercent`, `paidEvents`, `medianTicketPrice`, `ticketPrice25`, `ticketPrice75`, `priceCurrency` | Free vs paid, and what tickets cost |
| `byDayOfWeek`, `byStartHour`, `byDate` | When events happen |
| `soldOutOrWaitlist`, `requiresApprovalPercent`, `onlinePercent` | Demand and format |
| `topOrganisers`, `organisersWithEvents` | Who runs the most events, with their guests |
| `biggestEvents`, `eventsShowingGuests`, `totalGuests` | The largest events by guest count |
| `topNeighborhoods` | Where in the city |

### Example: 3 October 2026

New York and London, next 30 days, full topic sweep: **1,718 events and 2 reports in 73 seconds**.

| | New York | London |
|---|---|---|
| Events found | 935 | 783 |
| Free | 66% | 69% |
| Paid ticket, median (middle half) | $29.99 ($15 – $55) | £15 (£10 – £31.25) |
| Busiest day / hour | Thursday, 6 pm | Wednesday, 6 pm |
| Sold out or waitlist | 155 | 133 |
| Need approval | 43% | 45% |
| Organisers | 397 | 316 |
| Biggest event | Founders Running Club (1,104 guests) | Phoenix Film Networking (950 guests) |

- Luma's own New York page lists **51 events**; the topic sweep found **935**.
- A worldwide search for **"hackathon"** with event details returned 45 hackathons with descriptions and ticket types; a **calendar link** (lu.ma/genai-sf) returned its 48 upcoming events.

### Pricing

**$0.001 per event**, **$0.001 per event details** (only when Event details is on) and **$0.02 per report**.

- One big city, next 30 days (about 900 events) with a report: **about $0.92**
- The run above (1,718 events, 2 reports): **$1.76**
- 100 events with details and a report: **$0.22**

Turn off reports to pay for events only.

### Good to know

- **Coverage**: Luma lists 50 to 80 featured events per city and up to 50 per topic search. With no search terms, the Actor runs 40 topic searches per city and merges them; events Luma does not list for the city are not found. Topic searches stay inside the city (New York results include Brooklyn and Queens).
- **Cities**: the 87 cities with a Luma page (New York, San Francisco, London, Berlin, Paris, Singapore, Bengaluru, Lagos, Nairobi, São Paulo, Sydney, Tokyo and more). Common names work: "NYC", "SF", "Bangalore", "DC".
- **Guests**: many events hide their guest list; `guestCount` is what Luma shows.
- **Privacy**: host names, guests and personal calendars are not collected. Organisers are community and company calendars. Street addresses and coordinates are given only when the event shows them publicly. Emails and phone numbers in descriptions are hidden.
- **Links** must be full URLs (https://lu.ma/...).
- Data comes from **Luma's public discovery pages**. **Not affiliated with Luma.**

### Input

| Field | Meaning |
|---|---|
| **Cities** | Luma cities |
| **Search terms** | Topics; with cities, only these topics in each city; without, worldwide |
| **Find every event in the city** | The 40-topic sweep (on by default) |
| **Luma links** | Calendar or event links |
| **Days ahead** | 1 to 365 (default 30); 0 = every upcoming event |
| **Free events only**, **Include online events** | Filters |
| **Event details** | Description, categories and ticket types |
| **Events per city or search** | 1 to 5,000 (default 1,000) |
| **Reports** | On by default |

### Integrations

Export to JSON, CSV, Excel or Google Sheets, or connect through the Apify API, webhooks, Make, Zapier and n8n. **Schedule it weekly** for a fresh list of what's on in your cities.

# Actor input Schema

## `cities` (type: `array`):

Luma cities, e.g. "New York", "San Francisco", "London", "Berlin", "Bengaluru", "Singapore". 87 cities have a Luma page; RUN_SUMMARY lists them if a name is not found.

## `searchTerms` (type: `array`):

Optional topics, e.g. "hackathon", "AI", "run club". With cities: only these topics in each city. Without cities: worldwide search.

## `sweepTopics` (type: `boolean`):

With no search terms, sweep 40 topics (AI, tech, startup, music, art, fitness, food...) to find 1,000+ events per big city instead of Luma's 50-80 featured ones.

## `urls` (type: `array`):

Optional lu.ma event or calendar links, e.g. https://lu.ma/genai-sf (a calendar: all its upcoming events) or an event link (full details).

## `daysAhead` (type: `integer`):

Only events starting within this many days. 0 = every upcoming event Luma lists.

## `freeOnly` (type: `boolean`):

Only free events.

## `includeOnline` (type: `boolean`):

Keep online events in city results.

## `includeDetails` (type: `boolean`):

Also read each event's description, categories and ticket types (one more request per event, charged as event details).

## `maxEventsPerSearch` (type: `integer`):

Most events to save per city, search or calendar.

## `includeReports` (type: `boolean`):

One report per city, search or calendar: free vs paid and ticket prices, busiest days and hours, top topics, top organisers, biggest events, sold out, online share.

## Actor input object example

```json
{
  "cities": [
    "New York"
  ],
  "sweepTopics": true,
  "daysAhead": 30,
  "freeOnly": false,
  "includeOnline": true,
  "includeDetails": false,
  "maxEventsPerSearch": 1000,
  "includeReports": true
}
```

# Actor output Schema

## `events` (type: `string`):

One row per event: name, date and local time, venue and city, free or price, guests, sold out or waitlist, organiser, topics, link.

## `reports` (type: `string`):

Per city or search: free vs paid, ticket prices, busiest days and hours, topics, organisers, biggest events.

## `reportsCsv` (type: `string`):

One flat row per city or search.

## `summary` (type: `string`):

Requests, problems and the limits of the data.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "cities": [
        "New York"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("precious_bathmat/luma-events-finder").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "cities": ["New York"] }

# Run the Actor and wait for it to finish
run = client.actor("precious_bathmat/luma-events-finder").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "cities": [
    "New York"
  ]
}' |
apify call precious_bathmat/luma-events-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,precious_bathmat/luma-events-finder"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/kYqYxcqGBjRiHlZPJ/builds/DcuoKvKLtztidnQYI/openapi.json
