Lu APIlu.ma ↗
Access upcoming events from lu.ma across 79+ cities. Get event titles, dates, venues, organizers, timezones, cover images, and registration URLs via two endpoints.
What is the Lu API?
The lu.ma API provides access to upcoming events listed on lu.ma across 79+ cities worldwide through two endpoints: get_events and list_cities. Each event object returns up to seven fields including title, date, venue, organizer, timezone, cover image, and a direct registration URL. Use list_cities to enumerate valid city slugs and get_events to pull paginated event listings for any supported city.
curl -X GET 'https://api.parse.bot/scraper/5977a819-cd3b-4786-b111-4cf922e2e657/get_events?city=nyc&limit=5' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace lu-ma-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.luma_events_discovery_api import Luma, City, Event
luma = Luma()
# List all available cities
for city in luma.cities.list():
print(city.name, city.slug, city.continent, city.event_count, city.timezone)
# Construct a city and get its events
nyc = luma.city("nyc")
for event in nyc.events():
print(event.title, event.date, event.venue, event.organizer, event.registration_url)
Get upcoming events for a specific city. Returns events with title, date, venue, organizer, timezone, cover image, and registration URL. Paginates internally up to the requested limit. Use list_cities to discover valid city slugs.
| Param | Type | Description |
|---|---|---|
| city | string | City slug as returned by list_cities endpoint. |
| limit | integer | Maximum number of events to return. |
{
"type": "object",
"fields": {
"city": "string",
"events": "array of event objects",
"total_returned": "integer"
},
"sample": {
"data": {
"city": "nyc",
"events": [
{
"date": "2026-06-10T21:30:00.000Z",
"title": "Design Job Market",
"venue": "121 E 27th St, New York",
"end_date": "2026-06-11T00:30:00.000Z",
"timezone": "America/New_York",
"organizer": "Prjctr Global",
"cover_image": "https://images.lumacdn.com/uploads/gk/a9f9b5cd.png",
"event_api_id": "evt-qZCg2oqZ9VuWBy0",
"registration_url": "https://lu.ma/nolesv9t"
}
],
"total_returned": 5
},
"status": "success"
}
}About the Lu API
Endpoints
The API exposes two endpoints. list_cities returns the full catalog of supported cities — each entry includes a name, slug, continent, event_count, and timezone. No input parameters are required; the response includes a total count alongside the cities array. This is your starting point for discovering which city slugs are valid inputs for the second endpoint.
get_events accepts an optional city slug (as returned by list_cities) and an optional limit integer to cap the number of results. The response includes a city string, a total_returned integer, and an events array. Each event object contains the event title, date, venue details, organizer name, timezone, cover image URL, and a registration URL pointing back to lu.ma.
Coverage and Pagination
City coverage spans 79+ locations across multiple continents. The continent field on each city object lets you group cities geographically without manual lookup. When fetching events, the endpoint paginates internally up to the number you specify via limit — you receive a flat array rather than managing page cursors yourself.
Data Freshness
The events returned are upcoming events at the time of the request, matching what is currently listed publicly on lu.ma's discover page. Private or invite-only events that are not publicly discoverable on lu.ma are not included in responses.
The Lu API is a managed, monitored endpoint for lu.ma — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when lu.ma changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official lu.ma API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a city-specific event calendar aggregating lu.ma events by venue and date
- Track organizer activity across cities using the organizer field returned per event
- Generate a weekly digest of upcoming events filtered by timezone from list_cities
- Populate a community app's event feed with cover images and registration URLs
- Compare event density across cities using the event_count field from list_cities
- Alert users to new events in their city by diffing get_events results over time
- Map events geographically by combining city timezone and continent data
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.