App Logo
luma.com

Search Luma events

TL;DR

Automatically search Luma events on luma.com. An unofficial Luma API: search public events by topic or city programmatically, from code or from an AI agent, with typed JSON in and out. Luma's official API is for hosts managing their own events and has no public event search.

About

Developers looking for a Luma API to search public events by topic or city usually find there is none they can use: Luma's official API is for hosts managing their own events and has no public event search. This script fills that gap. It works like an API endpoint — one call with typed arguments, a JSON response — but runs through a real browser, yours or a hosted one, so it needs no Luma developer account, API key or app review.

Input

city optional

Curated Luma city slug to filter by (e.g. "paris", "london", "new-york"). Mutually exclusive with topic.

limit optional

Max events to return per call. Default 25.

Default: 25
topic optional

Category slug to filter by (e.g. "crypto", "arts-culture", "fitness"). Mutually exclusive with city. Some categories are only served per place and cannot be browsed globally; those fail naming the slug, and the way to browse them is `city`.

cursor optional

Pagination cursor from a previous call's next_cursor.

latitude optional

Optional latitude to sort results by proximity. It only changes the order; it does not satisfy a category that Luma serves per place.

longitude optional

Optional longitude to sort results by proximity. It only changes the order; it does not satisfy a category that Luma serves per place.

Output

events required
has_more required
next_cursor optional

Example output

Shape only: placeholder values generated from the output schema, not a real run.

{ "events": [ { "city": "…", "name": "Example", "slug": "…", "end_at": "2026-01-15T09:30:00Z", "address": "…", "is_free": true, "event_id": "abc123", "start_at": "2026-01-15T09:30:00Z", "timezone": "…", "cover_url": "https://example.com/item/123", "guest_count": 3, "calendar_name": "…", "calendar_slug": "…", "location_type": "…", "show_guest_list": true, "require_approval": true, "registration_availability": "…" } ], "has_more": true, "next_cursor": "…" }

FAQ

Search upcoming public events on Luma by category topic (e.g. "crypto", "fitness") or by curated city (e.g. "paris", "london"), one page at a time: pass next_cursor back as cursor for the next page; has_more false means there is no next page. When nothing matches, events is an empty list with has_more false. Pass topic or city, not both. Some categories Luma only serves per place: asking for one of those as a topic fails with a message naming the slug, and the way to browse it is a city; latitude/longitude only change the order and do not get around this. A slug Luma does not know fails naming the slug.
Ask an AI agent connected to Reduck to run reduck/luma.com/search_events, or run it from a terminal with the Reduck CLI: npx @reduck-ai/cli@latest run --script reduck/luma.com/search_events
You do not need one. "Search Luma events" drives the real luma.com pages in a browser, so it works whether or not luma.com offers an API for this.
Optional: city, limit, topic, cursor, latitude, longitude.
It returns events, has_more, next_cursor.
No. It only uses pages of luma.com that are reachable without signing in.
It only reads. It looks things up on luma.com and changes nothing there.
Ask an AI agent connected to Reduck to run reduck/luma.com/search_events, or run it from a terminal with the Reduck CLI: npx @reduck-ai/cli@latest run --script reduck/luma.com/search_events
It is part of Reduck's official curated catalogue.
Not an official one you can use for this: Luma's official API is for hosts managing their own events and has no public event search. This script works as an unofficial Luma API for it: typed input, JSON output, callable from an AI agent over MCP, from the CLI, or over REST.
Call this script with its arguments and read the JSON it returns. It drives Luma in a real browser session, so there is no API key to request and nothing to reverse-engineer yourself.

Start building not clicking