Luma Events Scraper
Pricing
from $2.70 / 1,000 results
Luma Events Scraper
Extract event details, an organizer's full event calendar, or the platform-wide discover/trending feed from lu.ma / luma.com -- no account or API key needed.
Pricing
from $2.70 / 1,000 results
Rating
0.0
(0)
Developer
Faisal Ahdan naufal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Extract event details, an organizer's full event calendar, or the platform-wide discover/trending feed from lu.ma / luma.com — no account or API key needed.
Why use this actor
- One actor covers Luma's whole public surface: a single event's full detail, an organizer's complete upcoming/past event list, or the general discover/trending feed
- No account, login, or API key required — this actor talks to the same
internal API (
api.lu.ma) that powers the luma.com website itself for every logged-out visitor - Accepts a full URL, a bare path, or just the short slug — paste whatever you copied from the address bar
- Automatic retries on temporary network hiccups
- Robust pagination — automatically follows Luma's cursor links up to the limit you set, instead of returning just one page
- Honest about limits: guest lists and Luma's own search are gated behind a login wall upstream and are out of scope, stated plainly rather than faked (see Known limits)
How it works
Pick a mode:
event— full detail for one or more specific event URLs.calendar— an organizer's own profile plus their full event list (upcoming or past).discover— the platform-wide discover/trending feed, optionally filtered by latitude/longitude (no URL needed).
Input
Event detail:
{"mode": "event","urls": ["https://lu.ma/sggq2oi9", "lu.ma/some-other-event"]}
Organizer calendar:
{"mode": "calendar","url": "https://lu.ma/drupal-indonesia","period": "future","maxItems": 100}
Discover feed:
{ "mode": "discover", "maxItems": 50 }
{ "mode": "discover", "latitude": "40.7128", "longitude": "-74.0060", "maxItems": 50 }
| Field | Type | Description |
|---|---|---|
mode | string | "event" (default), "calendar", or "discover". |
url | string | event/calendar mode — a single lu.ma URL, path, or bare slug. |
urls | array | event/calendar mode — multiple URLs/slugs in one run. |
period | string | calendar mode — "future" (default) or "past". |
latitude / longitude | string | discover mode — filter the feed around this coordinate. Leave blank to use the request's own IP-based location (Apify proxy country then steers results). |
maxItems | integer | calendar/discover mode — max events to return. Pagination is followed automatically up to this cap. Default 100, max 10,000. |
maxConcurrency | integer | event/calendar mode — how many URLs to fetch in parallel. Default 4. |
proxyConfiguration | object | Apify Proxy settings. Residential is on by default (not required for this endpoint — no WAF was found, see CRAWLING_METHOD.md — kept for production robustness and to steer discover mode's geo-personalized results). |
Output
event mode — one record per event, full upstream shape (truncated
here for readability):
{"_input": "https://lu.ma/sggq2oi9","_source": "S1-api","_scrapedAt": "2026-08-29T18:52:22Z","api_id": "evt-KrtX1E0X7IdEFch","event": {"name": "bRUNch - Run & Brunch Vol. 1","start_at": "2026-08-28T23:00:00.000Z","end_at": "2026-08-29T05:00:00.000Z","timezone": "Asia/Jakarta","location_type": "offline","geo_address_info": { "city": "Kota Jakarta Pusat", "country": "Indonesia" }},"calendar": { "name": "LeadSphere" },"hosts": [{ "name": "...", "username": "..." }],"ticket_info": { "is_free": true, "spots_remaining": 71, "require_approval": true },"guest_count": 0}
calendar mode — one CALENDAR_PROFILE record, then one
CALENDAR_EVENT record per event:
{"_input": "drupal-indonesia","_source": "S1-api","recordType": "CALENDAR_PROFILE","calendar": { "name": "Drupal Indonesia", "slug": "drupal-indonesia", "location": { "city": "Jakarta" } },"featured_items": [ "..." ]}
{"_input": "drupal-indonesia","_source": "S1-api","recordType": "CALENDAR_EVENT","api_id": "calev-ADxrEdCdFjJVuZb","event": { "name": "Drupal Drag and Drop Page Builder", "start_at": "..." }}
discover mode — one record per trending event, same per-event
shape as a CALENDAR_EVENT record above.
A record with _error instead of the fields above means that input
could not be processed (for example, "_error": "not_found" for a URL
that doesn't resolve to any event or calendar, or
"_error": "kind_mismatch"event mode).
Known limits
- Guest lists and Luma's own search are not available. Both
event/get-guest-listandsearch/get-resultsrequire a logged-in session upstream (401 "You are not signed in.") even for fully public events — this is Luma's own access-control choice, not a bug, and is out of scope per this project's no-login policy. - The discover feed's ranking is Luma's own algorithm. This actor exposes the geo-filter parameters Luma's own frontend uses, but the ranking/selection logic behind which events surface is not documented publicly.