# Luma Event Scraper (`hypebridge/luma-com-event-scraper`) Actor

Scrapes event listings and optional full event details from Luma

- **URL**: https://apify.com/hypebridge/luma-com-event-scraper.md
- **Developed by:** [Hypebridge](https://apify.com/hypebridge) (community)
- **Categories:** E-commerce, Social media, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Luma Event Scraper

### What does Luma Event Scraper do?

**Luma Event Scraper** helps you collect public event data from [Luma](https://luma.com). Give it one or more Luma URLs, run the Actor, and it returns structured event records you can download as JSON, CSV, Excel, or use through the Apify API.

This Actor is built for people who need **Luma event listings**, **event details**, **host and organizer metadata**, and **ticketing signals** for research, lead generation, event monitoring, market analysis, or workflow automation. The input is simple: paste supported Luma URLs into the **Input** tab, choose how many events to collect, and run the Actor.

### Why use this Luma scraper?

Luma pages can represent different kinds of public discovery surfaces, not just one event page. This Actor gives you one tool for several common Luma workflows:

- Scrape a single Luma event page
- Collect events from a category page such as technology, wellness, or food
- Gather events from a city or place page
- Scrape a calendar or community page
- Collect events from a user profile
- Capture discover-page results for location-based research

Because it runs on **Apify**, you also get the platform advantages that matter in production:

- Run it manually or on a schedule
- Access data through API endpoints
- Export results in multiple formats
- Monitor run history and logs
- Plug the Actor into no-code and low-code tools like **n8n**, Make, Zapier, or your own backend
- Scale from quick one-off checks to recurring data collection

### What data can Luma Event Scraper extract?

The Actor returns normalized event records with the most useful public event fields from Luma.

| Data point                             | Description                                                                                                    |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `eventId` and `eventUrl`               | Stable event identifier and public Luma URL                                                                    |
| `name`                                 | Event title                                                                                                    |
| `startAt`, `endAt`, `timezone`         | Event timing in ISO format                                                                                     |
| `coverUrl`                             | Main event cover image                                                                                         |
| `location`                             | Venue name, address, city, region, country, and coordinates when available                                     |
| `organizer`                            | Organizer or calendar/community metadata and public social handles                                             |
| `hosts`                                | Host profiles with usernames and public social handles                                                         |
| `ticketing`                            | Free vs paid, price summary, sold-out status, remaining spots, approval requirement, guest count, ticket count |
| `eventState`                           | Visibility, event type, guest-list settings, waitlist status, virtual event info                               |
| `featuredGuests` and `featuredCity`    | Extra enrichment shown on some public Luma pages                                                               |
| `description`                          | Full event description when detail scraping is enabled                                                         |
| `ticketTypes`                          | Individual ticket tiers when available                                                                         |
| `categories` and `categoryNames`       | Event categories                                                                                               |
| `sessions`                             | Session data for multi-session events                                                                          |
| `registrationQuestions`                | Public registration-question structure when exposed                                                            |
| `locale`, `socialImage`, `socialVideo` | Additional event metadata when available                                                                       |

### How to scrape Luma event data

#### How do I use Luma Event Scraper?

1. Open the **Input** tab.
2. Paste one or more supported Luma URLs.
3. Set `maxEvents` if you want to cap the number of events per input URL.
4. Leave **Scrape Full Event Details** enabled if you want richer event records.
5. Run the Actor.
6. Download the dataset or connect to it via API.

#### Which Luma URLs are supported?

You can start with URLs like:

- Direct event page: `https://luma.com/4uyqb56w`
- Category page: `https://luma.com/tech`
- City or place page: `https://luma.com/dallas`
- Calendar or community page: `https://luma.com/yc`
- Discover page: `https://luma.com/discover`
- User profile: `https://luma.com/user/Mansfieldmoms`

### Input example

Luma Event Scraper has a simple input schema. Use the **Input** tab in Apify Console for field descriptions and examples.

```json
{
  "startUrls": [
    { "url": "https://luma.com/tech" },
    { "url": "https://luma.com/dallas" },
    { "url": "https://luma.com/user/Mansfieldmoms" }
  ],
  "maxEvents": 50,
  "scrapeEventDetails": true
}
````

### Output example

You can download the dataset extracted by **Luma Event Scraper** in various formats such as **JSON, CSV, Excel, XML, RSS, or HTML**.

```json
{
  "eventId": "evt-BlQwkRLguP9KuyU",
  "eventUrl": "https://luma.com/4uyqb56w",
  "name": "Mom Walk and Brunch",
  "startAt": "2026-04-17T15:00:00.000Z",
  "endAt": "2026-04-17T17:00:00.000Z",
  "timezone": "America/Chicago",
  "coverUrl": "https://images.lumacdn.com/event-covers/xu/f63c264e-914f-4e26-ba3d-12785d2d3d89.png",
  "location": {
    "type": "offline",
    "venueName": "Chicken N Pickle - Grand Prairie",
    "city": "Grand Prairie",
    "region": "Texas",
    "country": "United States"
  },
  "organizer": {
    "name": "Mansfield Mom Walk",
    "slug": "Mansfieldmoms",
    "instagram": "Mansfieldmomwalk"
  },
  "ticketing": {
    "isFree": true,
    "isSoldOut": false,
    "spotsRemaining": null,
    "guestCount": 107,
    "ticketCount": 107
  },
  "description": "Join us for a fun and easygoing morning with Mansfield Mom Walk!",
  "categoryNames": ["Food & Drink", "Wellness"],
  "source": "luma",
  "scrapedAt": "2026-04-14T18:00:00.000Z"
}
```

### How much does it cost to scrape Luma.com?

Luma Event Scraper is designed so you can test small runs first and scale up when you are ready. Your total run cost depends mostly on:

- how many event records you collect
- whether you keep **Scrape Full Event Details** enabled
- how often you run the Actor

In practice, **basic event collection** is cheaper, while **full event details** cost more because the Actor gathers richer metadata for each event. If you are price-sensitive, start with a small `maxEvents` value, inspect the output, and then scale up. The pricing panel on the Actor page is always the source of truth for your plan and current usage.

### Tips for better runs

- Use direct event URLs when you only need a few specific events.
- Use category, city, or community URLs when you want broader discovery.
- Keep `maxEvents` low for test runs before large scheduled jobs.
- Leave **Scrape Full Event Details** enabled when description, categories, sessions, or ticket types matter to your workflow.
- If you use the Luma discover page, remember that discover results can vary by location.

### FAQ

#### Is this an official Luma API?

No. This Actor is an independent data-extraction tool for publicly accessible Luma event data.

#### Is scraping Luma legal?

This Actor is intended for ethical use on public data only. You are responsible for making sure your use complies with applicable laws, regulations, and the target website’s terms. If your use case involves personal data or compliance-sensitive processing, consult your legal team.

#### Can I use this Actor in automation workflows?

Yes. You can run it from Apify Console, via API, on schedules, or through automation tools such as **n8n**.

#### What if I need a custom output shape or additional fields?

Open an issue or reach out through the Actor page. If the public Luma page exposes the data, the Actor can often be extended.

### Other Hypebridge Actors

If you also work with event and venue data outside Luma, you may want to check out our other Actors for platforms such as **Dice.fm**, **Shotgun**, **Prekindle**, **Eventbrite**, **Posh**, and **Eventnoire**.

### Support

If something is unclear or you want a field added, use the **Issues** tab on the Actor page or contact us through Apify Store. Feedback is useful, especially for edge-case Luma URLs or output requirements.

# Actor input Schema

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

Luma URLs to scrape. Supports direct event pages, category pages, city/place pages, calendar/community pages, discover, and user profile URLs.

## `maxEvents` (type: `integer`):

Maximum number of events to scrape per start URL. Set to 0 for unlimited pagination.

## `scrapeEventDetails` (type: `boolean`):

When enabled, fetches `/event/get` for each discovered event and returns description, ticket types, categories, sessions, registration questions, and other high-signal event metadata. Additional charges apply per detailed event pushed.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://luma.com/tech"
    },
    {
      "url": "https://luma.com/user/Mansfieldmoms"
    }
  ],
  "maxEvents": 1000,
  "scrapeEventDetails": true
}
```

# Actor output Schema

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

Full dataset output with every field returned by the actor.

## `overview` (type: `string`):

Compact table view with the core event identity and timing fields.

# 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 = {
    "startUrls": [
        {
            "url": "https://luma.com/tech"
        },
        {
            "url": "https://luma.com/user/Mansfieldmoms"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hypebridge/luma-com-event-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 = { "startUrls": [
        { "url": "https://luma.com/tech" },
        { "url": "https://luma.com/user/Mansfieldmoms" },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("hypebridge/luma-com-event-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://luma.com/tech"
    },
    {
      "url": "https://luma.com/user/Mansfieldmoms"
    }
  ]
}' |
apify call hypebridge/luma-com-event-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=hypebridge/luma-com-event-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Luma Event Scraper",
        "description": "Scrapes event listings and optional full event details from Luma",
        "version": "0.0",
        "x-build-id": "oZ74FdotldHGBUtC0"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/hypebridge~luma-com-event-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-hypebridge-luma-com-event-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/hypebridge~luma-com-event-scraper/runs": {
            "post": {
                "operationId": "runs-sync-hypebridge-luma-com-event-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/hypebridge~luma-com-event-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-hypebridge-luma-com-event-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Luma URLs to scrape. Supports direct event pages, category pages, city/place pages, calendar/community pages, discover, and user profile URLs.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxEvents": {
                        "title": "Maximum Events Per URL",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of events to scrape per start URL. Set to 0 for unlimited pagination.",
                        "default": 1000
                    },
                    "scrapeEventDetails": {
                        "title": "Scrape Full Event Details",
                        "type": "boolean",
                        "description": "When enabled, fetches `/event/get` for each discovered event and returns description, ticket types, categories, sessions, registration questions, and other high-signal event metadata. Additional charges apply per detailed event pushed.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
