Skip to main content
Professional event-hosting platform API for managing events, guests, and calendar RSVPs on Luma. Use when an agent needs to create events, update RSVPs, or manage guest lists on behalf of a connected Luma user. Unlike Eventbrite (ticket-marketplace-first) and Meetup (group-recurrence-first), Luma is built for professional one-off events and series hosted by a single organizer. 8 example endpoints available through Lava’s AI Gateway. See the Luma API docs for full documentation.
This provider requires your own credentials — connect your API key or OAuth account before use.
This is a catch-all provider — any valid URL under https://public-api.luma.com is supported. Luma public API. Base: https://public-api.luma.com, all paths under /v1/. Auth: x-luma-api-key header (generate at luma.com/calendar/manage/api-keys — requires a Luma Plus subscription). Rate limit: 200 req/min for calendar-scoped keys. Each API key is scoped to a single calendar — an organizer managing multiple calendars must connect one at a time in v1. Uses GET and POST only — mutations are POST /v1//. Pagination parameters: pagination_cursor and pagination_limit on list endpoints; follow the next_cursor field in responses. Common roots under /v1/: user, calendar, event, webhook. See https://docs.luma.com/reference/getting-started-with-your-api for full reference. The endpoints below are curated examples.

Endpoints

Get the authenticated Luma user. Use as an auth check after connecting a Luma API key.

GET https://public-api.luma.com/v1/user/get-self — Free
const data = await lava.gateway('https://public-api.luma.com/v1/user/get-self', { method: 'GET' });

List events on the connected calendar with cursor pagination. Accepts pagination_cursor and pagination_limit query params.

GET https://public-api.luma.com/v1/calendar/list-events?pagination_limit=25 — Free
const data = await lava.gateway('https://public-api.luma.com/v1/calendar/list-events?pagination_limit=25', { method: 'GET' });

Retrieve a single event by api_id.

GET https://public-api.luma.com/v1/event/get?api_id=evt-xxxxxxxxxxxx — Free
const data = await lava.gateway('https://public-api.luma.com/v1/event/get?api_id=evt-xxxxxxxxxxxx', { method: 'GET' });

Create a new event on the connected calendar. Requires name, start_at, and timezone; geo_address_json and visibility are optional.

POST https://public-api.luma.com/v1/event/create — Free
const data = await lava.gateway('https://public-api.luma.com/v1/event/create', {
  body: {
"name": "Quarterly Customer Roundtable",
"start_at": "2026-05-15T18:00:00.000Z",
"end_at": "2026-05-15T20:00:00.000Z",
"timezone": "America/New_York",
"visibility": "public"
},
});

Update an existing event by api_id. Send only the fields to change.

POST https://public-api.luma.com/v1/event/update — Free
const data = await lava.gateway('https://public-api.luma.com/v1/event/update', {
  body: {
"event_api_id": "evt-xxxxxxxxxxxx",
"name": "Quarterly Customer Roundtable (Updated)",
"end_at": "2026-05-15T21:00:00.000Z"
},
});

List guests for an event with cursor pagination. Use pagination_cursor and pagination_limit for paging.

GET https://public-api.luma.com/v1/event/get-guests?event_api_id=evt-xxxxxxxxxxxx&pagination_limit=50 — Free
const data = await lava.gateway('https://public-api.luma.com/v1/event/get-guests?event_api_id=evt-xxxxxxxxxxxx&pagination_limit=50', { method: 'GET' });

Invite or add guests to an event. Accepts an array of guests with email and optional name.

POST https://public-api.luma.com/v1/event/add-guests — Free
const data = await lava.gateway('https://public-api.luma.com/v1/event/add-guests', {
  body: {
"event_api_id": "evt-xxxxxxxxxxxx",
"guests": [
  {
    "email": "jane@example.com",
    "name": "Jane Smith"
  },
  {
    "email": "alex@example.com",
    "name": "Alex Rivera"
  }
]
},
});

Update a guest’s approval or check-in status for an event (approved, rejected, checked_in, etc.).

POST https://public-api.luma.com/v1/event/update-guest-status — Free
const data = await lava.gateway('https://public-api.luma.com/v1/event/update-guest-status', {
  body: {
"event_api_id": "evt-xxxxxxxxxxxx",
"guest_api_id": "gst-xxxxxxxxxxxx",
"status": "approved"
},
});

Next Steps

All Providers

Browse all supported AI providers

Forward Proxy

Learn how to construct proxy URLs and authenticate requests