Skip to main content
Luma logo

Overview

Add Luma to any ModuleX agent or workflow. Event management platform for creating, managing, and tracking events and guests via the Luma REST API (public-api.luma.com/v1).
Categories: Scheduling & Events · Events · Productivity & Collaboration · Marketing · Auth: API Key · Actions: 8

Authentication

API Key Authentication

Authenticate using your Luma API key
1

Step 1

Go to https://lu.ma and sign in to your account
2

Step 2

Navigate to your calendar settings or developer section
3

Step 3

Generate or copy your API key
4

Step 4

Paste the API key below

Required Credentials

FieldDescriptionRequiredFormat
Luma API KeyYour Luma API keyYesxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Available Actions

Parameters

name
string
required
The event name
start_at
string
required
The event start time as an ISO 8601 datetime, for example 2026-05-15T18:00:00Z
timezone
string
required
The IANA timezone for the event, for example America/New_York
end_at
string
The event end time as an ISO 8601 datetime
description_md
string
Markdown description for the event
visibility
string
Event visibility: public, members-only, or private
slug
string
Custom event URL slug
meeting_url
string
Online meeting URL for a virtual event
cover_url
string
Cover image URL uploaded to the Luma CDN
max_capacity
integer
Maximum number of registrations before the event is sold out
can_register_for_multiple_tickets
boolean
Whether guests can register for multiple tickets
show_guest_list
boolean
Whether approved guests can see who else is attending
reminders_disabled
boolean
Whether to disable default event reminders
name_requirement
string
How to collect guest names: full-name or first-last
phone_number_requirement
string
Phone number collection: optional or required
tint_color
string
A hex color like #bb2dc7 for the event theme
coordinate_json
string
JSON object with latitude and longitude for the event location
geo_address_json
string
JSON object with address details (type, place_id, description)
registration_questions_json
string
JSON array of registration question objects with label and required fields
feedback_email_json
string
JSON object with subject and message for the post-event feedback email

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "event": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Event"
    }
  },
  "required": [
    "success"
  ],
  "title": "CreateEventOutput",
  "type": "object"
}

Parameters

event_id
string
required
The Luma event ID (usually starts with evt-)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "event": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Event"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetEventOutput",
  "type": "object"
}

Parameters

after
string
Return events starting after this ISO 8601 datetime
before
string
Return events starting before this ISO 8601 datetime
pagination_cursor
string
The next_cursor value from a previous list response
pagination_limit
integer
Number of items to request per page (Default: 50)
status
string
Calendar submission status: approved or pending
sort_column
string
Column to sort by (currently only start_at is supported)
sort_direction
string
Sort order: asc, desc, asc nulls last, or desc nulls last

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "events": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Events",
      "type": "array"
    },
    "has_more": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Has More"
    },
    "next_cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Next Cursor"
    }
  },
  "required": [
    "success"
  ],
  "title": "ListEventsOutput",
  "type": "object"
}

Parameters

event_id
string
required
The Luma event ID (usually starts with evt-)
guest_id
string
required
Guest ID (gst-…), ticket key, guest key (g-…), or email address

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "guest": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Guest"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetGuestOutput",
  "type": "object"
}

Parameters

event_id
string
required
The Luma event ID (usually starts with evt-)
approval_status
string
Filter by status: approved, session, pending_approval, invited, declined, or waitlist
pagination_cursor
string
The next_cursor value from a previous list response
pagination_limit
integer
Number of items to request per page (Default: 50)
sort_column
string
Guest field to sort by: name, email, created_at, registered_at, or checked_in_at
sort_direction
string
Sort order: asc, desc, asc nulls last, or desc nulls last

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "guests": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Guests",
      "type": "array"
    },
    "has_more": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Has More"
    },
    "next_cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Next Cursor"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetGuestsOutput",
  "type": "object"
}

Parameters

event_id
string
required
The Luma event ID (usually starts with evt-)
guests_json
string
required
JSON array of guests, each with at least an email field
ticket_json
string
JSON object assigning one ticket type to each guest (mutually exclusive with tickets_json)
tickets_json
string
JSON array assigning multiple tickets to each guest (mutually exclusive with ticket_json)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "guests": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Guests",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "AddGuestsOutput",
  "type": "object"
}

Parameters

event_id
string
required
The Luma event ID (usually starts with evt-)
include_hidden
boolean
Whether to include hidden ticket types (Default: false)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "ticket_types": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Ticket Types",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "ListTicketTypesOutput",
  "type": "object"
}

Parameters

event_id
string
required
The Luma event ID (usually starts with evt-)
guests_json
string
required
JSON array of guests to invite, each with at least an email field
message
string
Optional invite message (max 200 characters)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    }
  },
  "required": [
    "success"
  ],
  "title": "SendInvitesOutput",
  "type": "object"
}

Limits & Quotas

  • No documented public rate limits; Luma enforces server-side pagination maximums.
  • Error model: non-2xx responses and timeouts are caught and returned as success=False + error rather than raising.

Cal.com

Google Analytics

Google Calendar