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' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fpublic-api.luma.com%2Fv1%2Fuser%2Fget-self" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
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' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fpublic-api.luma.com%2Fv1%2Fcalendar%2Flist-events%3Fpagination_limit%3D25" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
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' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fpublic-api.luma.com%2Fv1%2Fevent%2Fget%3Fapi_id%3Devt-xxxxxxxxxxxx" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
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"
},
});
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fpublic-api.luma.com%2Fv1%2Fevent%2Fcreate" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"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"
},
});
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fpublic-api.luma.com%2Fv1%2Fevent%2Fupdate" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"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' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fpublic-api.luma.com%2Fv1%2Fevent%2Fget-guests%3Fevent_api_id%3Devt-xxxxxxxxxxxx%26pagination_limit%3D50" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
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"
}
]
},
});
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fpublic-api.luma.com%2Fv1%2Fevent%2Fadd-guests" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"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"
},
});
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fpublic-api.luma.com%2Fv1%2Fevent%2Fupdate-guest-status" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"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