# Unofficial Luma SDK > Unofficial TypeScript SDK for the Luma public API ## Docs - [Authentication](https://alhwyn.mintlify.app/authentication.md): Generate a Luma API key from the dashboard and configure the @alhwyn/luma TypeScript SDK with the x-luma-api-key header for authenticated requests. - [Get calendar](https://alhwyn.mintlify.app/calendar/get.md): Fetch the Luma calendar tied to your API key with luma.calendar.get(), returning the calendar ID, name, URL, timezone, and theme settings. - [Update calendar](https://alhwyn.mintlify.app/calendar/update.md): Patch Luma calendar settings like name, description, and timezone using luma.calendar.update(calendarId, params) in the TypeScript SDK. - [Client](https://alhwyn.mintlify.app/client.md): Initialize the Luma TypeScript SDK client with your API key and explore shared types, resource properties, and method conventions used across endpoints. - [Error handling](https://alhwyn.mintlify.app/error-handling.md): Catch typed LumaError exceptions from the @alhwyn/luma TypeScript SDK, including HTTP status codes and response body details for failed API requests. - [Create an event](https://alhwyn.mintlify.app/events/create.md): Create a new Luma event on your calendar with luma.events.create(), passing name, dates, location, visibility, and other event parameters. - [Get an event](https://alhwyn.mintlify.app/events/get.md): Fetch a single Luma event by its ID with luma.events.get(eventId), returning the full Event object including hosts, location, dates, and settings. - [Add guests](https://alhwyn.mintlify.app/events/guests/add.md): Add one or more guests to a Luma event by email or user ID with luma.events.guests.add(), with optional approval and invite controls. - [Get a guest](https://alhwyn.mintlify.app/events/guests/get.md): Retrieve a single Luma event guest by ID with luma.events.guests.get(eventId, guestId), returning RSVP status, registration info, and check-in data. - [List guests](https://alhwyn.mintlify.app/events/guests/list.md): List Luma event guests with luma.events.guests.list(), returning a paginated response of guest entries with RSVP, approval, and check-in status. - [Send invites](https://alhwyn.mintlify.app/events/guests/send-invites.md): Send email and SMS invites to guests for a Luma event with luma.events.guests.sendInvites(), with an optional personalized message up to 200 characters. - [Update guest status](https://alhwyn.mintlify.app/events/guests/update-status.md): Update a Luma event guest's approval or check-in status with luma.events.guests.updateStatus(eventId, guestId, body) in the TypeScript SDK. - [List events](https://alhwyn.mintlify.app/events/list.md): List events on your Luma calendar with luma.events.list(), returning a paginated response of event entries with optional filters and pagination. - [Create a ticket type](https://alhwyn.mintlify.app/events/ticket-types/create.md): Create a new ticket type for a Luma event with luma.events.ticketTypes.create(eventId, body), setting name, price, capacity, and sale window. - [Delete a ticket type](https://alhwyn.mintlify.app/events/ticket-types/delete.md): Delete a ticket type from a Luma event with luma.events.ticketTypes.delete(eventId, ticketTypeId) using the TypeScript SDK's typed method. - [Get a ticket type](https://alhwyn.mintlify.app/events/ticket-types/get.md): Fetch a single Luma event ticket type by ID with luma.events.ticketTypes.get(eventId, ticketTypeId), returning name, price, capacity, and details. - [List ticket types](https://alhwyn.mintlify.app/events/ticket-types/list.md): List ticket types for a Luma event with luma.events.ticketTypes.list(), returning name, price, availability, and optional hidden tiers. - [Update a ticket type](https://alhwyn.mintlify.app/events/ticket-types/update.md): Update a Luma ticket type with luma.events.ticketTypes.update() to change name, price, capacity, or sale window on an existing tier. - [Update an event](https://alhwyn.mintlify.app/events/update.md): Edit a Luma event with luma.events.update(), patching fields like name, start time, location, or visibility on an existing event by ID. - [Install](https://alhwyn.mintlify.app/install.md): Install the @alhwyn/luma TypeScript SDK from GitHub Packages using npm or Bun to start calling the unofficial Luma public API client. - [Introduction](https://alhwyn.mintlify.app/introduction.md): Introduction to the unofficial @alhwyn/luma TypeScript SDK, a typed client covering users, calendars, events, guests, ticket types, and webhooks. - [Test your setup](https://alhwyn.mintlify.app/test-your-setup.md): Run a smoke test against the live Luma API to confirm your API key, network access, and @alhwyn/luma TypeScript SDK install work end-to-end. - [Get authenticated user](https://alhwyn.mintlify.app/users/get.md): Fetch the authenticated Luma user profile with luma.users.get(), returning the id, name, email, and avatar linked to your API key. - [Create inbound client](https://alhwyn.mintlify.app/webhooks/client.md): Build a WebhookInboundClient from an authenticated Luma instance using luma.webhooks.client() to verify signed inbound event payloads. - [Create webhook endpoint](https://alhwyn.mintlify.app/webhooks/create.md): Register a new outbound webhook endpoint on Luma with luma.webhooks.create(), passing a URL and the event types you want delivered. - [Delete webhook endpoint](https://alhwyn.mintlify.app/webhooks/delete.md): Remove a registered Luma webhook endpoint by ID using luma.webhooks.delete(), stopping any further outbound event deliveries to that URL. - [Get webhook endpoint](https://alhwyn.mintlify.app/webhooks/get.md): Retrieve a single Luma webhook endpoint by its ID with luma.webhooks.get(), returning the URL, subscribed event types, and active status. - [List webhook endpoints](https://alhwyn.mintlify.app/webhooks/list.md): Paginate through registered Luma webhook endpoints with luma.webhooks.list(), filtering by limit to inspect URLs and event subscriptions. - [Update webhook endpoint](https://alhwyn.mintlify.app/webhooks/update.md): Modify an existing Luma webhook endpoint using luma.webhooks.update(), changing the delivery URL or its subscribed event types by ID. - [Verify incoming event](https://alhwyn.mintlify.app/webhooks/verify.md): Validate a signed Luma webhook with webhook.verify(), checking the HMAC signature header and returning a typed, unwrapped event payload. - [WebhookInboundClient constructor](https://alhwyn.mintlify.app/webhooks/verify-constructor.md): Construct a standalone WebhookInboundClient with new WebhookInboundClient() using only a secret, no API key, for inbound signature checks.