> ## Documentation Index
> Fetch the complete documentation index at: https://lava.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Luma

> Professional event-hosting platform API for managing events, guests, and calendar RSVPs on Luma.

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](https://docs.luma.com/reference/getting-started-with-your-api) for full documentation.

<Warning>This provider requires your own credentials — connect your API key or OAuth account before use.</Warning>

<Info>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](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/\{resource}/\{action}. 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](https://docs.luma.com/reference/getting-started-with-your-api) for full reference. The endpoints below are curated examples.</Info>

## 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

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://public-api.luma.com/v1/user/get-self', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    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"
    ```
  </Tab>
</Tabs>

### 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

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://public-api.luma.com/v1/calendar/list-events?pagination_limit=25', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    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"
    ```
  </Tab>
</Tabs>

### Retrieve a single event by api\_id.

**GET** `https://public-api.luma.com/v1/event/get?api_id=evt-xxxxxxxxxxxx` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://public-api.luma.com/v1/event/get?api_id=evt-xxxxxxxxxxxx', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    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"
    ```
  </Tab>
</Tabs>

### 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

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    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"
    },
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    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"}'
    ```
  </Tab>
</Tabs>

### Update an existing event by api\_id. Send only the fields to change.

**POST** `https://public-api.luma.com/v1/event/update` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    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"
    },
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    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"}'
    ```
  </Tab>
</Tabs>

### 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

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://public-api.luma.com/v1/event/get-guests?event_api_id=evt-xxxxxxxxxxxx&pagination_limit=50', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    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"
    ```
  </Tab>
</Tabs>

### 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

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    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"
      }
    ]
    },
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    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"}]}'
    ```
  </Tab>
</Tabs>

### 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

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    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"
    },
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    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"}'
    ```
  </Tab>
</Tabs>

## Next Steps

<CardGroup cols={2}>
  <Card title="All Providers" icon="grid" href="/gateway/supported-providers">
    Browse all supported AI providers
  </Card>

  <Card title="Forward Proxy" icon="route" href="/gateway/forward-proxy">
    Learn how to construct proxy URLs and authenticate requests
  </Card>
</CardGroup>
