# Luma Events Scraper: lu.ma Cities, Calendars, Hosts (`themineworks/luma-events-scraper`) Actor

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.

- **URL**: https://apify.com/themineworks/luma-events-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Lead generation, Marketing, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.69 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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: lu.ma Cities, Calendars, Hosts

[![794 Luma events in 18 seconds](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/luma-events-scraper-hero.png)](https://console.apify.com/actors/iPu29EhB7W8pRK4Dg/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), 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](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/iPu29EhB7W8pRK4Dg/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Part of The Mine Works Food and local services family:** [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Zomato Scraper](https://apify.com/themineworks/zomato-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

### 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:

```json
{
  "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

```text
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

```json
{
  "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

```json
{
  "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

```json
{
  "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

```json
{
  "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

```json
{
  "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

```json
{
  "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

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `cities` | array of strings | none (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. |
| `categories` | array of strings | empty | Luma categories: `tech`, `ai`, `crypto`, `climate`, `arts`, `fitness`, `wellness`, `food`, `books`, `games`, `running`, `family`. Each is read around each city. Needs at least one city. |
| `searchTerms` | array of strings | empty | Keywords, searched in each city or each category around it (up to 50 events per keyword search). |
| `startUrls` | array of strings | empty | Calendar, event, city and category links on lu.ma or luma.com. |
| `calendarPeriod` | string | `upcoming` | For calendar links: `upcoming`, `past` or `both` (upcoming first, then past, under one cap). |
| `maxEventsPerSource` | integer | 100 | Events per city, city and category, keyword search or calendar, 20 to 5,000. |
| `includeDetails` | boolean | `false` | Adds the description, ticket types, categories and refund policy to list rows, at the same price per event. |
| `onlyNewEvents` | boolean | `false` | Skip, 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:

| Field | What it holds |
|---|---|
| `record_type` | Always `event` on event rows |
| `event_id` | Luma's event id, stable across runs; use it to dedupe |
| `event_url` | Link to the event page |
| `title` | Event name |
| `start` | Start in local time with offset |
| `start_utc` | Start in UTC |
| `timezone` | IANA time zone of the event |
| `is_online` | True for online events |
| `host_count` | Number of hosts |
| `is_free` | True when the event is free |
| `registration_status` | open, waitlist, sold out and so on |
| `calendar_name` | Calendar (organizer) name |
| `calendar_url` | Calendar page |
| `source_type` | city, category, calendar or event |
| `scraped_at` | When 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:

```json
{
  "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:

```json
{
  "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:

```json
{
  "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`):

```json
{
  "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:

| Event | Free plan | Bronze (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](https://apify.com/themineworks/website-contact-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) reads the business email and phone a site publishes, and [LinkedIn Company Details](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) 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**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [2GIS Places Scraper](https://apify.com/themineworks/2gis-places-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Science, health and government data**

- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [OpenAlex Scraper](https://apify.com/themineworks/openalex-scholarly-works?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [SEC EDGAR Filings Scraper](https://apify.com/themineworks/sec-edgar-filings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Etsy Listings Scraper](https://apify.com/themineworks/etsy-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**More tools**

- [G2 Reviews Scraper](https://apify.com/themineworks/g2-reviews-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naver Blog Scraper](https://apify.com/themineworks/naver-blog-posts-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [WeChat Article Scraper 微信公众号文章](https://apify.com/themineworks/wechat-article-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Taobao Products Scraper 淘宝 天猫](https://apify.com/themineworks/taobao-products-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

### 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.*

# Actor input Schema

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

One Luma city per line, by name (San Francisco, London, Bengaluru), slug (sf, nyc) or link (https://luma.com/sf). Luma has city pages for 87 cities: Toronto, Waterloo, Pittsburgh, Detroit, Philadelphia, Washington, DC, New York, Montréal, Cincinnati, Boston, Chicago, Raleigh, Atlanta, Minneapolis, Miami, Dallas, Houston, Austin, Denver, Salt Lake City, Edmonton, Calgary, Phoenix, Las Vegas, Mexico City, Seattle, Vancouver, Portland, San Diego, Los Angeles, Sacramento, San Francisco, Medellín, Bogotá, Dublin, Lisbon, London, Oslo, Amsterdam, Paris, Madrid, Brussels, Hamburg, Copenhagen, Frankfurt, Stockholm, Barcelona, Geneva, Lausanne, Zurich, Berlin, Helsinki, Munich, Milan, Prague, Vienna, Warsaw, Rome, Budapest, Honolulu, São Paulo, Rio de Janeiro, Istanbul, Buenos Aires, Lagos, Tel Aviv-Yafo, Tokyo, Seoul, Osaka, Dubai, New Delhi, Nairobi, Taipei, Mumbai, Hong Kong, Cape Town, Manila, Bengaluru, Bangkok, Auckland, Ho Chi Minh City, Kuala Lumpur, Brisbane, Singapore, Sydney, Jakarta, Melbourne. A city alone returns its Luma city page; with categories or keywords it is searched for them. When Cities and Luma links are both left out, the run reads Luma's San Francisco page as an example.

## `categories` (type: `array`):

Optional. Luma's own categories. Each category is read around each city (Luma lists category events by place). Leave empty for the city pages themselves.

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

Optional. One keyword per line (founders, hackathon, design). Each keyword is searched in each city, or in each category around each city. Luma returns up to 50 events per keyword search.

## `startUrls` (type: `array`):

Optional. Calendar pages (https://luma.com/happytown or https://lu.ma/calendar/cal-...), event pages (https://lu.ma/wbqgr661), city pages (https://luma.com/london) and category pages (https://luma.com/ai, read around the cities above). Both lu.ma and luma.com links work.

## `calendarPeriod` (type: `string`):

For calendar links: which of the calendar's events to return.

## `maxEventsPerSource` (type: `integer`):

How many events to collect from each city, city and category, keyword search or calendar, 20 to 5,000. Luma lists 50 events a page; the run stops here or at the end of Luma's list.

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

Reads each event's own record and adds the full description, every ticket type with its price, Luma categories and refund policy. Same price per event; one extra request per event. Event links always come with details.

## `onlyNewEvents` (type: `boolean`):

For schedules: skip, and do not charge for, events an earlier run of yours already delivered.

## Actor input object example

```json
{
  "cities": [
    "San Francisco",
    "London"
  ],
  "categories": [],
  "searchTerms": [],
  "startUrls": [],
  "calendarPeriod": "upcoming",
  "maxEventsPerSource": 100,
  "includeDetails": false,
  "onlyNewEvents": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

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

No description

# 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": [
        "San Francisco",
        "London"
    ],
    "startUrls": [],
    "maxEventsPerSource": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/luma-events-scraper").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": [
        "San Francisco",
        "London",
    ],
    "startUrls": [],
    "maxEventsPerSource": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/luma-events-scraper").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": [
    "San Francisco",
    "London"
  ],
  "startUrls": [],
  "maxEventsPerSource": 100
}' |
apify call themineworks/luma-events-scraper --silent --output-dataset

```

## MCP server setup

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

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/iPu29EhB7W8pRK4Dg/builds/rGbYgkOV3ynGtE3oA/openapi.json
