Luma Events API

The Events API from Luma — 21 operation(s) for events.

OpenAPI Specification

luma-events-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Luma Calendars Events API
  version: 1.0.0
  description: 'API for interacting with Luma''s event platform.


    ## Rate Limits


    The Luma API uses a per-minute rate limit shared across `GET` and `POST` requests:


    - **Calendar API keys** and OAuth tokens: **200 requests/minute** per calendar.

    - **Organization API keys**: **500 requests/minute** per organization.


    When you exceed the limit the API returns `429 Too Many Requests`. Back off before retrying.'
  contact:
    name: Luma Support
    url: https://help.luma.com
  license:
    name: Proprietary
servers:
- url: https://public-api.luma.com
  description: Production server
security:
- apiKeyAuth: []
tags:
- name: Events
paths:
  /v1/events/get:
    get:
      tags:
      - Events
      summary: Get Event
      parameters:
      - name: event_id
        in: query
        required: true
        schema:
          type: string
          description: Event ID, this usually starts with evt-
        description: Event ID, this usually starts with evt-
      description: Return admin information about an event that you have manage access for.
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  platform:
                    type: string
                    const: luma
                  id:
                    type: string
                  user_id:
                    type: string
                  calendar_id:
                    type: string
                  start_at:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    description: ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z
                  duration_interval:
                    type: string
                  end_at:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    description: ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z
                  created_at:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                    description: ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z
                  timezone:
                    type: string
                    description: IANA Timezone, e.g. America/New_York. https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
                  name:
                    type: string
                  description:
                    type: string
                  description_md:
                    type: string
                  geo_address_json:
                    anyOf:
                    - type: object
                      properties:
                        address:
                          type: string
                        city:
                          anyOf:
                          - type: string
                          - type: 'null'
                        region:
                          anyOf:
                          - type: string
                          - type: 'null'
                        country:
                          anyOf:
                          - type: string
                          - type: 'null'
                        city_state:
                          anyOf:
                          - type: string
                          - type: 'null'
                        full_address:
                          anyOf:
                          - type: string
                          - type: 'null'
                        google_maps_place_id:
                          anyOf:
                          - type: string
                          - type: 'null'
                        apple_maps_place_id:
                          anyOf:
                          - type: string
                          - type: 'null'
                        description:
                          anyOf:
                          - type: string
                          - type: 'null'
                      required:
                      - address
                      - city
                      - region
                      - country
                      - city_state
                      - full_address
                      - google_maps_place_id
                      - apple_maps_place_id
                      - description
                    - type: 'null'
                  coordinate:
                    anyOf:
                    - type: object
                      properties:
                        longitude:
                          type: number
                        latitude:
                          type: number
                      required:
                      - longitude
                      - latitude
                    - type: 'null'
                    description: Latitude and longitude of the event location. Null for online events or when the address can't be geocoded.
                  meeting_url:
                    anyOf:
                    - type: string
                    - type: 'null'
                  location_type:
                    type: string
                    enum:
                    - discord
                    - meet
                    - twitch
                    - twitter
                    - youtube
                    - zoom
                    - offline
                    - missing
                    - unknown
                    description: '`offline` for in-person events. Online events have the meeting platform (`zoom`, `meet`, etc.), or `unknown` if we don''t recognize the meeting link. `missing` if the event has no location set.'
                  location_visibility:
                    type: string
                    enum:
                    - public
                    - guests-only
                    description: Whether the event's address is shown to everyone or only to approved guests. This API always returns the full address.
                  cover_url:
                    type: string
                  registration_questions:
                    type: array
                    items:
                      anyOf:
                      - type: object
                        properties:
                          id:
                            type: string
                          label:
                            type: string
                          required:
                            type: boolean
                          question_type:
                            type: string
                            const: agree-check
                        required:
                        - id
                        - label
                        - required
                        - question_type
                      - type: object
                        properties:
                          id:
                            type: string
                          label:
                            type: string
                          required:
                            type: boolean
                          question_type:
                            type: string
                            const: company
                          collect_job_title:
                            anyOf:
                            - type: boolean
                            - type: 'null'
                          job_title_label:
                            anyOf:
                            - type: string
                            - type: 'null'
                        required:
                        - id
                        - label
                        - required
                        - question_type
                      - type: object
                        properties:
                          id:
                            type: string
                          label:
                            type: string
                          required:
                            type: boolean
                          question_type:
                            type: string
                            const: dropdown
                          options:
                            maxItems: 250
                            type: array
                            items:
                              type: string
                        required:
                        - id
                        - label
                        - required
                        - question_type
                        - options
                      - type: object
                        properties:
                          id:
                            type: string
                          label:
                            type: string
                          required:
                            type: boolean
                          question_type:
                            type: string
                            const: github
                        required:
                        - id
                        - label
                        - required
                        - question_type
                      - type: object
                        properties:
                          id:
                            type: string
                          label:
                            type: string
                          required:
                            type: boolean
                          question_type:
                            type: string
                            const: instagram
                        required:
                        - id
                        - label
                        - required
                        - question_type
                      - type: object
                        properties:
                          id:
                            type: string
                          label:
                            type: string
                          required:
                            type: boolean
                          question_type:
                            type: string
                            const: linkedin
                        required:
                        - id
                        - label
                        - required
                        - question_type
                      - type: object
                        properties:
                          id:
                            type: string
                          label:
                            type: string
                          required:
                            type: boolean
                          question_type:
                            type: string
                            const: long-text
                        required:
                        - id
                        - label
                        - required
                        - question_type
                      - type: object
                        properties:
                          id:
                            type: string
                          label:
                            type: string
                          required:
                            type: boolean
                          question_type:
                            type: string
                            const: multi-select
                          options:
                            maxItems: 250
                            type: array
                            items:
                              type: string
                        required:
                        - id
                        - label
                        - required
                        - question_type
                        - options
                      - type: object
                        properties:
                          id:
                            type: string
                          label:
                            type: string
                          required:
                            type: boolean
                          question_type:
                            type: string
                            const: phone-number
                        required:
                        - id
                        - label
                        - required
                        - question_type
                      - type: object
                        properties:
                          id:
                            type: string
                          label:
                            type: string
                          required:
                            type: boolean
                          question_type:
                            type: string
                            const: telegram
                        required:
                        - id
                        - label
                        - required
                        - question_type
                      - type: object
                        properties:
                          id:
                            type: string
                          label:
                            type: string
                          required:
                            type: boolean
                          question_type:
                            type: string
                            const: text
                        required:
                        - id
                        - label
                        - required
                        - question_type
                      - type: object
                        properties:
                          id:
                            type: string
                          label:
                            type: string
                          required:
                            type: boolean
                          question_type:
                            type: string
                            const: twitter
                        required:
                        - id
                        - label
                        - required
                        - question_type
                      - type: object
                        properties:
                          id:
                            type: string
                          label:
                            type: string
                          required:
                            type: boolean
                          question_type:
                            type: string
                            const: url
                        required:
                        - id
                        - label
                        - required
                        - question_type
                      - type: object
                        properties:
                          id:
                            type: string
                          label:
                            type: string
                          required:
                            type: boolean
                          question_type:
                            type: string
                            const: youtube
                        required:
                        - id
                        - label
                        - required
                        - question_type
                      - type: object
                        properties:
                          id:
                            type: string
                          label:
                            type: string
                          required:
                            type: boolean
                          question_type:
                            type: string
                            const: terms
                          terms:
                            oneOf:
                            - type: object
                              properties:
                                content_type:
                                  type: string
                                  const: text
                                content_md:
                                  type: string
                                  description: Markdown content for the terms. Luma converts this to rich text internally.
                                collect_signature:
                                  type: boolean
                                require_review:
                                  description: When true, guests must open the hosted terms before accepting.
                                  type: boolean
                              required:
                              - content_type
                              - content_md
                              - collect_signature
                            - type: object
                              properties:
                                content_type:
                                  type: string
                                  const: link
                                url:
                                  type: string
                                  format: uri
                                collect_signature:
                                  type: boolean
                              required:
                              - content_type
                              - url
                              - collect_signature
                        required:
                        - id
                        - label
                        - required
                        - question_type
                        - terms
                  url:
                    type: string
                  visibility:
                    type: string
                    enum:
                    - public
                    - members-only
                    - private
                  waitlist_status:
                    type: string
                    enum:
                    - disabled
                    - enabled
                    description: '`enabled` if the event has a waitlist. New registrations join the waitlist once the event reaches capacity.'
                  feedback_email:
                    type: object
                    properties:
                      enabled:
                        type: boolean
                        description: Whether to send the feedback email.
                      delay:
                        description: How long after the event ends to send the feedback email. Defaults to PT0M (immediately). Maximum is P7D (7 days).
                        type: string
                    required:
                    - enabled
                    description: Settings for the post-event feedback email sent to guests.
                  hosts:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        email:
                          type: string
                        name:
                          anyOf:
                          - type: string
                          - type: 'null'
                        first_name:
                          anyOf:
                          - type: string
                          - type: 'null'
                        last_name:
                          anyOf:
                          - type: string
                          - type: 'null'
                        avatar_url:
                          type: string
                      required:
                      - id
                      - email
                      - name
                      - first_name
                      - last_name
                      - avatar_url
                required:
                - platform
                - id
                - user_id
                - calendar_id
                - start_at
                - duration_interval
                - end_at
                - created_at
                - timezone
                - name
                - description
                - description_md
                - geo_address_json
                - coordinate
                - meeting_url
                - location_type
                - location_visibility
                - cover_url
                - url
                - visibility
                - waitlist_status
                - feedback_email
                - hosts
  /v1/events/guests/get:
    get:
      tags:
      - Events
      summary: Get Guest
      parameters:
      - name: event_id
        in: query
        required: true
        schema:
          type: string
          description: Event ID, this usually starts with evt-
        description: Event ID, this usually starts with evt-
      - name: id
        in: query
        required: true
        schema:
          type: string
          description: Guest identifier — the guest ID (gst-), a ticket key, a guest key (g-), or the user's email.
        description: Guest identifier — the guest ID (gst-), a ticket key, a guest key (g-), or the user's email.
      description: 'Get detailed information for an event guest by looking them up by their ID. This supports looking them up by different parameters.


        This response includes `event_ticket_orders`, which includes `coupon_info` when a coupon was applied.'
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  id:
                    type: string
                  user_id:
                    type: string
                  user_email:
                    type: string
                  user_name:
                    anyOf:
                    - type: string
                    - type: 'null'
                  user_first_name:
                    anyOf:
                    - type: string
                    - type: 'null'
                  user_last_name:
                    anyOf:
                    - type: string
                    - type: 'null'
                  approval_status:
                    type: string
                    enum:
                    - approved
                    - session
                    - pending_approval
                    - invited
                    - declined
                    - waitlist
                  check_in_qr_code:
                    type: string
                  eth_address:
                    anyOf:
                    - type: string
                      pattern: ^0x[0-9a-fA-F]{40}$
                    - type: 'null'
                  invited_at:
                    anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      description: ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z
                    - type: 'null'
                    description: When the guest was invited to the event. Null if they registered on their own.
                  joined_at:
                    anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      description: ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z
                    - type: 'null'
                    description: When the guest first clicked the virtual join link (luma.com/join/...). Only set for online events. Null if the guest has not joined.
                  phone_number:
                    anyOf:
                    - type: string
                    - type: 'null'
                  registered_at:
                    anyOf:
                    - type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      description: ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z
                    - type: 'null'
                    description: When the guest registered for the event.
                  registration_answers:
                    anyOf:
                    - type: array
                      items:
                        anyOf:
                        - type: object
                          properties:
                            label:
                              type: string
                            question_id:
                              type: string
                            value:
                              type: boolean
                            answer:
                              type: boolean
                            question_type:
                              type: string
                              const: agree-check
                          required:
                          - label
                          - question_id
                          - question_type
                        - type: object
                          properties:
                            label:
                              type: string
                            question_id:
                              type: string
                            value:
                              type: object
                              properties:
                                company:
                                  anyOf:
                                  - type: string
                                  - type: 'null'
                                job_title:
                                  anyOf:
                                  - type: string
                                  - type: 'null'
                            answer:
                              anyOf:
                              - type: string
                              - type: 'null'
                            answer_company:
                              anyOf:
                              - type: string
                              - type: 'null'
                            answer_job_title:
                              anyOf:
                              - type: string
                              - type: 'null'
                            question_type:
                              type: string
                              const: company
                          required:
                          - label
                          - question_id
                          - value
                          - question_type
                        - type: object
                          properties:
                            label:
                              type: string
                            question_id:
                              type: string
                            value:
                              anyOf:
                              - type: string
                              - type: 'null'
                            answer:
                              anyOf:
                              - type: string
                              - type: 'null'
                            question_type:
                              type: string
                              const: dropdown
                          required:
                          - label
                          - question_id
                          - value
                          - question_type
                        - type: object
                          properties:
                            label:
                              type: string
                            question_id:
                              type: string
                            value:
                              anyOf:
                              - type: array
                                items:
                                  type: string
                              - type: 'null'
                            answer:
                              anyOf:
                              - type: array
                                items:
                                  type: string
                              - type: 'null'
                            question_type:
                              type: string
                              const: multi-select
                          required:
                          - label
                          - question_id
                          - value
                          - question_type
                        - type: object
                          properties:
                            label:
                              type: string
                            question_id:
                              type: string
                            value:
                              anyOf:
                              - type: string
                              - type: 'null'
                            answer:
                              anyOf:
                              - type: string
                              - type: 'null'
                            question_type:
                              type: string
                              const: phone-number
                          required:
                          - label
                          - question_id
                          - value
                          - question_type
                        - type: object
                          properties:
                            label:
                              type: string
                            question_id:
                              type: string
                            value:
                              anyOf:
                              - anyOf:
                                - type: string
                                - type: boolean
                                  const: true
                              - type: 'null'
                            answer:
                              anyOf:
                              - anyOf:
                                - type: string
                                - type: boolean
                                  const: true
                              - type: 'null'
                            question_type:
                              type: string
                              const: terms
                          required:
                          - label
                          - question_id
                          - question_type
                        - type: object
                          properties:
                            label:
                              type: string
                            question_id:
                              type: string
                            value:
                              anyOf:
                              - type: string
                              - type: 'null'
                            answer:
                

# --- truncated at 32 KB (169 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/luma/refs/heads/main/openapi/luma-events-api-openapi.yml