Luma
Authentication: API key. See Magic Link for the runtime auth flow.
Sample use cases
- Create an event for our June meetup and open registration.
- List all guests who registered for the launch party.
- Send invites to everyone tagged as a VIP contact.
- Add a discount coupon for early-bird ticket buyers.
Available Tools
Get the calendar this API key is scoped to: name, slug, public URL, description, images, and social handles. Luma API…
Update the calendar’s name, slug, description, avatar, or tint colour. Only the fields you pass are changed. Use get_…
List the administrators of this calendar with their names and email addresses. Takes no arguments — the API key deter…
List events on this calendar with cursor pagination. Filter server-side by date range (before/after, ISO 8601), platf…
Report whether an event is on this calendar. platform is required and selects the identifier: ‘luma’ takes event_id o…
Add an event to this calendar: an existing Luma event by event_id (platform=‘luma’), or an event hosted elsewhere by…
Approve an event submitted to this calendar, making it publicly visible on the calendar page. Use list_calendar_event…
Reject an event submitted to this calendar, optionally with a message to the submitter. Use list_calendar_events with…
List contacts on this calendar with cursor pagination. Filter server-side by free-text query, tag names (use list_con…
Import contacts onto this calendar in bulk. Each contact is an object with email and optional name. Optionally apply…
Block a contact from registering for events on this calendar. Identify them by contact_id or email — use list_contact…
Remove a contact from this calendar. Identify them by contact_id or email — use list_contacts to find contact IDs. Us…
Restore a contact previously removed or blocked on this calendar, letting them register for events again. Identify th…
List discount coupons scoped to one event, with cursor pagination. Use list_calendar_events to find event IDs. Return…
Create a discount coupon on one event. discount requires a discount_type discriminator: or . Optionally cap redemptio…
Update an event coupon’s remaining redemption count or validity window. Identify it by event ID plus coupon code — us…
List discount coupons that apply across every event on this calendar, with cursor pagination. Returns coupon codes fo…
Create a discount coupon valid across every event on this calendar. discount requires a discount_type discriminator:…
Update a calendar-wide coupon’s remaining redemption count or validity window. Identify it by coupon code — use list_…
Get one Luma event by ID: schedule, location, capacity, visibility, hosts, and guest counts. Use list_calendar_events…
Create an event on the calendar this API key belongs to. Requires name, start_at (ISO 8601), and an IANA timezone. Op…
Update an existing event. Only the fields you pass are changed. Set suppress_notifications=true to avoid emailing gue…
Step 1 of cancelling an event. Returns a single-use cancellation_token plus the guest count and whether the event has…
Step 2 of cancelling an event: permanently cancels it and notifies guests. Requires the cancellation_token from reque…
List guests on an event with cursor pagination. Filter server-side by approval_status (approved, pending_approval, in…
Get one guest on an event: approval status, registration answers, tickets held, check-in QR code, and ticket purchase…
Register one or more guests on an event directly, bypassing signup. Each guest is an object with email and optional n…
Change a guest’s approval status on an event: approve them, decline them, send them back to pending_approval, or move…
Add or remove tickets held by a guest on an event. Use list_ticket_types for ticket type IDs to add, and get_guest to…
Email event invitations to a list of people. Each guest is an object with email and optional name; an optional messag…
Add a host to an event by email. access_level ‘manager’ can edit the event, ‘check-in’ can only check guests in, ‘non…
Change an existing host’s access level or public visibility on an event. Identify the host by email. Use get_event to…
Remove a host from an event by email. The person keeps their Luma account and any guest registration; only their host…
List the membership tiers on this calendar, with pricing, access rules, and the questions asked at signup. Returns ti…
Add someone to a membership tier by email. Use list_membership_tiers to find tier IDs. Set skip_payment=true to comp…
Approve or decline a calendar membership, identified by Luma user ID. Declining removes the membership outright rathe…
Get the Luma user this API key belongs to: user ID, name, and email. Takes no arguments. Use this to confirm which ac…
Resolve a public Luma slug to the calendar, event, or user it belongs to. Pass just the slug from the URL, e.g. ‘merg…
Get a pre-signed URL for uploading a JPEG or PNG to Luma’s image host. PUT the raw image bytes to upload_url, then pa…
List the contact tags defined on this calendar, with their IDs, names, and colours. Takes no arguments. Returns tag I…
Create a contact tag on this calendar for labelling people. Colour is one of cranberry, barney, red, green, blue, pur…
Rename a contact tag or change its colour. Use list_contact_tags to find tag IDs. Renaming a tag updates it everywher…
Delete a contact tag from this calendar. The tag is removed from every contact carrying it; the contacts themselves a…
Apply a contact tag to contacts, identified by user_ids or emails. Use list_contact_tags for tag names and list_conta…
Remove a contact tag from contacts, identified by user_ids or emails. The tag itself still exists — use delete_contac…
List the event tags defined on this calendar, with their IDs, names, and colours. Takes no arguments. Returns tag IDs…
Create an event tag on this calendar for grouping events. Colour is one of cranberry, barney, red, green, blue, purpl…
Rename an event tag or change its colour. Use list_event_tags to find tag IDs. Renaming a tag updates it everywhere i…
Delete an event tag from this calendar. The tag is removed from every event carrying it; the events themselves are un…
Apply an event tag to one or more events. Use list_event_tags for tag names and list_calendar_events for event IDs. R…
Remove an event tag from one or more events. The tag itself still exists — use delete_event_tag to remove it entirely…
List the ticket types on an event, including price, capacity, and sale window. Set include_hidden=true to also return…
Get one ticket type by ID: name, free or paid, price, currency, capacity, approval requirement, and sale window. Use…
Add a ticket type to an event. Requires event_id, name, and type (‘free’ or ‘paid’); paid types also need cents and c…
Update a ticket type: price, name, capacity, sale window, visibility, or approval requirement. Only the fields you pa…
Delete a ticket type from an event. Use list_ticket_types to find ticket type IDs. Consider update_ticket_type with i…
List the webhook subscriptions on this calendar with cursor pagination. Returns webhook IDs for get_webhook, update_w…
Get one webhook subscription: destination URL, subscribed event types, active or paused status, and the signing secre…
Create a webhook subscription that POSTs to your URL when calendar activity happens. Event types include event.create…
Update a webhook subscription: replace its event types, or pause and resume delivery via status. event_types replaces…
Delete a webhook subscription permanently, stopping all callbacks to its URL. Use list_webhooks to find webhook IDs…