# Luma Guest List Scraper (`oheeriye/luma-guest-scraper`) Actor

Extract Luma event attendee lists and social profiles (LinkedIn, X, Instagram, TikTok). The only Luma scraper with attendee enrichment. Supports authenticated access for private guest lists via interactive login.

- **URL**: https://apify.com/oheeriye/luma-guest-scraper.md
- **Developed by:** [Heer Shingala](https://apify.com/oheeriye) (community)
- **Categories:** Lead generation, Automation, Social media
- **Stats:** 5 total users, 4 monthly users, 11.1% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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 Guest List Scraper

### What does Luma Guest List Scraper do?

Luma Guest List Scraper exports the complete attendee list from any Luma event — including names, bios, and social media profiles — as a clean CSV, JSON, or Excel dataset.

**Works for any event where the host has the guest list enabled** — regardless of whether the event is public or private. If the host has turned off the guest list, the actor will return an access denied error.

Key capabilities:

- Scrape complete guest lists with full contact and profile information
- Enrich attendee profiles with social links (LinkedIn, X/Twitter, Instagram, TikTok, YouTube, GitHub, personal websites)
- Authenticate via interactive browser login or session cookies
- Scrape multiple events in a single run
- Paginate automatically — no guest limit

---

### Why scrape Luma guest lists?

Luma hosts thousands of tech meetups, startup events, and professional gatherings. The attendee data is valuable for:

**Lead Generation**
- Build targeted prospect lists from event attendees
- Find decision-makers attending relevant industry events
- Extract verified social profiles for outreach campaigns

**Networking**
- Find professionals attending events in your niche
- Build pre-event contact lists
- Discover potential speakers, collaborators, or partners

**Market Research**
- Analyze who's attending events in your industry
- Track growth of event communities
- Identify emerging topics and trends

---

### What data can you extract?

| Field | Description |
|-------|-------------|
| `name` | Guest's full name |
| `bio` | Short bio from their Luma profile |
| `linkedin` | LinkedIn profile URL |
| `twitter` | X/Twitter profile URL |
| `instagram` | Instagram profile URL |
| `tiktok` | TikTok profile URL |
| `youtube` | YouTube channel URL |
| `github` | GitHub profile URL |
| `website` | Personal website |
| `lumaProfile` | Link to their Luma profile |

#### Example output record

```json
{
    "name": "Jane Developer",
    "bio": "Full-stack engineer building developer tools",
    "linkedin": "https://www.linkedin.com/in/janedev",
    "twitter": "https://x.com/janedev",
    "instagram": "",
    "tiktok": "",
    "youtube": "",
    "github": "https://github.com/janedev",
    "website": "https://janedev.io",
    "lumaProfile": "https://lu.ma/user/usr-abc123"
}
````

***

### How to use

#### Basic usage

```json
{
    "eventUrls": ["https://lu.ma/example-tech-meetup"],
    "interactiveLogin": true
}
```

#### Scrape multiple events at once

```json
{
    "eventUrls": [
        "https://lu.ma/example-tech-meetup",
        "https://lu.ma/startup-pitch-night",
        "https://luma.com/9x-live?e=evt-1kKoJZNnFPB75x0"
    ],
    "interactiveLogin": true
}
```

#### Using session cookies instead of browser login

```json
{
    "eventUrls": ["https://lu.ma/example-tech-meetup"],
    "sessionCookies": "your-cookie-string-here"
}
```

***

### Authentication

Most Luma events require authentication to view the full guest list.

#### Option 1: Interactive Login (Recommended)

The easiest way. Works directly in the Apify console.

```json
{
    "eventUrls": ["https://lu.ma/your-event"],
    "interactiveLogin": true
}
```

How it works:

1. Click **Run** — a browser opens in the **Live View** tab of the Apify console
2. Log in to Luma using Google or email
3. The actor detects your login automatically
4. Scraping begins immediately — no further action needed

#### Option 2: Session Cookies

Useful for scheduled or unattended runs.

1. Open [lu.ma](https://lu.ma) in your browser and log in
2. Press **F12** → go to the **Console** tab
3. Type `copy(document.cookie)` and press Enter
4. Paste the result into the **Session Cookies** field

#### What's visible without authentication?

With authentication you get the complete attendee list — as long as the host has the guest list enabled. If the host has turned it off, no one can access it regardless of login status.

***

### Cost

This actor is **free to use**. You only pay Apify's standard platform compute costs — nothing extra per event or per attendee.

| Scenario | Guests | Estimated cost |
|----------|--------|----------------|
| Small event | ~50 | ~$0.01 |
| Medium event | ~500 | ~$0.03 |
| Large event | ~2,000 | ~$0.08 |

Most runs complete in under 2 minutes.

***

### FAQ

**Does it work for private events?**
Yes. Public vs private doesn't matter — only whether the host has the guest list enabled.

**What if I get an "Access denied" error?**
The host has turned off the guest list for that event. This is a Luma setting only the host can change — there's no workaround.

**How many events can I scrape at once?**
As many as you want — add multiple URLs to the Event URLs field and they'll all be scraped in one run.

**Is there a limit on guests per event?**
By default, the actor fetches every guest. If you want to test it first before scraping a large event, set `attendeeLimit` to something like 20 — this keeps costs minimal while you verify the output looks right.

**Both lu.ma and luma.com URLs work?**
Yes. Luma uses both domains interchangeably — the actor handles both.

**Are my session cookies stored anywhere?**
No. Cookies are passed directly to Luma's API during the run and discarded when it ends. They are never written to disk or stored by this actor. If you're running locally, a `luma-cookies.json` file is saved to skip login on future runs — delete it when you're done.

**How long do session cookies last?**
Cookies expire when your Luma session expires — usually after a few weeks of inactivity or when you log out. If a run fails with an auth error, just re-paste fresh cookies from your browser.

**Can I run this on a schedule?**
Yes. Use session cookies (not interactive login) and set up a schedule in the Apify console under **Schedules**.

**Why are some social profiles missing?**
Not all Luma users link their social accounts. We extract whatever is publicly available on their Luma profile.

**Is it legal to scrape Luma events?**
This actor is designed for legitimate use — lead generation, networking, market research. You are responsible for ensuring your use complies with Luma's terms of service and applicable laws.

***

### Integrations

Export directly from the Apify console as **CSV, JSON, Excel, or XML**.

**API access**

```bash
curl "https://api.apify.com/v2/datasets/{datasetId}/items?token={apiToken}"
```

**Webhooks** — trigger actions when a run completes

```json
{
    "webhooks": [{
        "eventTypes": ["ACTOR.RUN.SUCCEEDED"],
        "requestUrl": "https://your-server.com/webhook"
    }]
}
```

**Popular integrations**

- **Google Sheets** — export CSV and import for team collaboration
- **Zapier / Make** — automate workflows when new data is scraped
- **n8n** — pipe guest data into any automation pipeline
- **CRM systems** — import leads via CSV or API

***

### Support

- **Issues & feature requests:** Open an issue on this actor's page
- **Apify documentation:** [docs.apify.com](https://docs.apify.com)
- **Community:** [Apify Discord](https://discord.gg/jyEM2PRvMU)

# Actor input Schema

## `eventUrls` (type: `array`):

One or more Luma event URLs. Paste them directly from your browser. Both lu.ma and luma.com links work.

## `sessionCookies` (type: `string`):

Paste your Luma session cookies here to authenticate without opening a browser. Works on Apify cloud. Get them from your browser's DevTools: open lu.ma, press F12 → Console → type: copy(document.cookie) → paste the result here.

## `interactiveLogin` (type: `boolean`):

Open a browser window for you to log in manually. On Apify cloud, the browser appears in the Live View tab. Use sessionCookies instead if you want fully unattended runs.

## `attendeeLimit` (type: `integer`):

Maximum number of guests to fetch per event. Set to a small number (e.g. 20) to do a quick test run before scraping a large event. Default is 0 (no limit — fetches everyone).

## `loginTimeoutSecs` (type: `integer`):

How long to wait for you to complete the login before timing out. Only applies when Interactive Login is enabled.

## Actor input object example

```json
{
  "eventUrls": [
    "https://lu.ma/alb2jkeq",
    "https://luma.com/9x-live?e=evt-1kKoJZNnFPB75x0"
  ],
  "interactiveLogin": false,
  "attendeeLimit": 0,
  "loginTimeoutSecs": 120
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("oheeriye/luma-guest-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("oheeriye/luma-guest-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 '{}' |
apify call oheeriye/luma-guest-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Luma Guest List Scraper",
        "description": "Extract Luma event attendee lists and social profiles (LinkedIn, X, Instagram, TikTok). The only Luma scraper with attendee enrichment. Supports authenticated access for private guest lists via interactive login.",
        "version": "1.0",
        "x-build-id": "hS8ifApAvwCeyUtCc"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/oheeriye~luma-guest-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-oheeriye-luma-guest-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/oheeriye~luma-guest-scraper/runs": {
            "post": {
                "operationId": "runs-sync-oheeriye-luma-guest-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/oheeriye~luma-guest-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-oheeriye-luma-guest-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": [
                    "eventUrls"
                ],
                "properties": {
                    "eventUrls": {
                        "title": "Event URLs",
                        "type": "array",
                        "description": "One or more Luma event URLs. Paste them directly from your browser. Both lu.ma and luma.com links work.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "sessionCookies": {
                        "title": "Session Cookies",
                        "type": "string",
                        "description": "Paste your Luma session cookies here to authenticate without opening a browser. Works on Apify cloud. Get them from your browser's DevTools: open lu.ma, press F12 → Console → type: copy(document.cookie) → paste the result here."
                    },
                    "interactiveLogin": {
                        "title": "Interactive Login",
                        "type": "boolean",
                        "description": "Open a browser window for you to log in manually. On Apify cloud, the browser appears in the Live View tab. Use sessionCookies instead if you want fully unattended runs.",
                        "default": false
                    },
                    "attendeeLimit": {
                        "title": "Attendee Limit",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of guests to fetch per event. Set to a small number (e.g. 20) to do a quick test run before scraping a large event. Default is 0 (no limit — fetches everyone).",
                        "default": 0
                    },
                    "loginTimeoutSecs": {
                        "title": "Login Timeout (seconds)",
                        "minimum": 30,
                        "maximum": 300,
                        "type": "integer",
                        "description": "How long to wait for you to complete the login before timing out. Only applies when Interactive Login is enabled.",
                        "default": 120
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
