Luma Memberships API

The Memberships API from Luma — 3 operation(s) for memberships.

OpenAPI Specification

luma-memberships-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Luma Calendars Memberships 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: Memberships
paths:
  /v1/memberships/tiers/list:
    get:
      tags:
      - Memberships
      summary: List Membership Tiers
      parameters:
      - name: pagination_cursor
        in: query
        required: false
        schema:
          description: Value of `next_cursor` from a previous request.
          type: string
        description: Value of `next_cursor` from a previous request.
      - name: pagination_limit
        in: query
        required: false
        schema:
          description: The number of items to return. The server will enforce a maximum number.
          type: number
        description: The number of items to return. The server will enforce a maximum number.
      description: List available membership tiers for the calendar.
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  entries:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        description:
                          anyOf:
                          - type: string
                          - type: 'null'
                        tint_color:
                          description: 'A hex color like ''#bb2dc7''. Alpha channels (#rgba, #rrggbbaa) are automatically stripped.'
                          type: string
                        access_info:
                          oneOf:
                          - type: object
                            properties:
                              type:
                                type: string
                                const: free
                              require_approval:
                                type: boolean
                            required:
                            - type
                            - require_approval
                          - type: object
                            properties:
                              type:
                                type: string
                                const: payment-once
                              amount:
                                type: number
                                exclusiveMinimum: 0
                              currency:
                                type: string
                                enum:
                                - solana_sol
                                - solana_usdc
                                - aed
                                - afn
                                - all
                                - amd
                                - ang
                                - aoa
                                - ars
                                - aud
                                - awg
                                - azn
                                - bam
                                - bbd
                                - bdt
                                - bgn
                                - bhd
                                - bif
                                - bmd
                                - bnd
                                - bob
                                - brl
                                - bsd
                                - bwp
                                - byn
                                - bzd
                                - cad
                                - cdf
                                - chf
                                - clp
                                - cny
                                - cop
                                - crc
                                - cve
                                - czk
                                - djf
                                - dkk
                                - dop
                                - dzd
                                - egp
                                - etb
                                - eur
                                - fjd
                                - fkp
                                - gbp
                                - gel
                                - ghs
                                - gip
                                - gmd
                                - gnf
                                - gtq
                                - gyd
                                - hkd
                                - hnl
                                - htg
                                - huf
                                - idr
                                - ils
                                - inr
                                - isk
                                - jmd
                                - jod
                                - jpy
                                - kes
                                - kgs
                                - khr
                                - kmf
                                - krw
                                - kwd
                                - kyd
                                - kzt
                                - lak
                                - lbp
                                - lkr
                                - lrd
                                - lsl
                                - mad
                                - mdl
                                - mga
                                - mkd
                                - mmk
                                - mnt
                                - mop
                                - mur
                                - mvr
                                - mwk
                                - mxn
                                - myr
                                - mzn
                                - nad
                                - ngn
                                - nio
                                - nok
                                - npr
                                - nzd
                                - omr
                                - pab
                                - pen
                                - pgk
                                - php
                                - pkr
                                - pln
                                - pyg
                                - qar
                                - ron
                                - rsd
                                - rub
                                - rwf
                                - sar
                                - sbd
                                - scr
                                - sek
                                - sgd
                                - shp
                                - sle
                                - sos
                                - srd
                                - std
                                - szl
                                - thb
                                - tjs
                                - tnd
                                - top
                                - try
                                - ttd
                                - twd
                                - tzs
                                - uah
                                - ugx
                                - usd
                                - uyu
                                - uzs
                                - vnd
                                - vuv
                                - wst
                                - xaf
                                - xcd
                                - xof
                                - xpf
                                - yer
                                - zar
                                - zmw
                              require_approval:
                                type: boolean
                            required:
                            - type
                            - amount
                            - currency
                            - require_approval
                          - type: object
                            properties:
                              type:
                                type: string
                                const: payment-recurring
                              currency:
                                type: string
                                enum:
                                - solana_sol
                                - solana_usdc
                                - aed
                                - afn
                                - all
                                - amd
                                - ang
                                - aoa
                                - ars
                                - aud
                                - awg
                                - azn
                                - bam
                                - bbd
                                - bdt
                                - bgn
                                - bhd
                                - bif
                                - bmd
                                - bnd
                                - bob
                                - brl
                                - bsd
                                - bwp
                                - byn
                                - bzd
                                - cad
                                - cdf
                                - chf
                                - clp
                                - cny
                                - cop
                                - crc
                                - cve
                                - czk
                                - djf
                                - dkk
                                - dop
                                - dzd
                                - egp
                                - etb
                                - eur
                                - fjd
                                - fkp
                                - gbp
                                - gel
                                - ghs
                                - gip
                                - gmd
                                - gnf
                                - gtq
                                - gyd
                                - hkd
                                - hnl
                                - htg
                                - huf
                                - idr
                                - ils
                                - inr
                                - isk
                                - jmd
                                - jod
                                - jpy
                                - kes
                                - kgs
                                - khr
                                - kmf
                                - krw
                                - kwd
                                - kyd
                                - kzt
                                - lak
                                - lbp
                                - lkr
                                - lrd
                                - lsl
                                - mad
                                - mdl
                                - mga
                                - mkd
                                - mmk
                                - mnt
                                - mop
                                - mur
                                - mvr
                                - mwk
                                - mxn
                                - myr
                                - mzn
                                - nad
                                - ngn
                                - nio
                                - nok
                                - npr
                                - nzd
                                - omr
                                - pab
                                - pen
                                - pgk
                                - php
                                - pkr
                                - pln
                                - pyg
                                - qar
                                - ron
                                - rsd
                                - rub
                                - rwf
                                - sar
                                - sbd
                                - scr
                                - sek
                                - sgd
                                - shp
                                - sle
                                - sos
                                - srd
                                - std
                                - szl
                                - thb
                                - tjs
                                - tnd
                                - top
                                - try
                                - ttd
                                - twd
                                - tzs
                                - uah
                                - ugx
                                - usd
                                - uyu
                                - uzs
                                - vnd
                                - vuv
                                - wst
                                - xaf
                                - xcd
                                - xof
                                - xpf
                                - yer
                                - zar
                                - zmw
                              stripe_account_id:
                                type: string
                              stripe_product_id:
                                type: string
                              stripe_monthly_price_id:
                                anyOf:
                                - type: string
                                - type: 'null'
                              amount_monthly:
                                anyOf:
                                - type: number
                                  exclusiveMinimum: 0
                                - type: 'null'
                              stripe_yearly_price_id:
                                anyOf:
                                - type: string
                                - type: 'null'
                              amount_yearly:
                                anyOf:
                                - type: number
                                  exclusiveMinimum: 0
                                - type: 'null'
                              require_approval:
                                type: boolean
                            required:
                            - type
                            - currency
                            - stripe_account_id
                            - stripe_product_id
                            - require_approval
                      required:
                      - id
                      - name
                      - description
                      - tint_color
                      - access_info
                  has_more:
                    type: boolean
                  next_cursor:
                    type: string
                required:
                - entries
                - has_more
  /v1/memberships/members/add:
    post:
      tags:
      - Memberships
      summary: Add Member to Tier
      description: Add a user to a membership tier. For paid tiers, set skip_payment to true if you are handling payment externally.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $schema: https://json-schema.org/draft/2020-12/schema
              type: object
              properties:
                email:
                  type: string
                  format: email
                  pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                membership_tier_id:
                  type: string
                registration_answers:
                  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:
                          anyOf:
                          - type: string
                          - type: 'null'
                        question_type:
                          anyOf:
                          - type: string
                            const: github
                          - type: string
                            const: instagram
                          - type: string
                            const: linkedin
                          - type: string
                            const: long-text
                          - type: string
                            const: telegram
                          - type: string
                            const: text
                          - type: string
                            const: twitter
                          - type: string
                            const: youtube
                      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: url
                      required:
                      - label
                      - question_id
                      - value
                      - question_type
                skip_payment:
                  description: Set to true for paid tiers when handling payment externally. Required for paid tiers.
                  type: boolean
              required:
              - email
              - membership_tier_id
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  membership_id:
                    type: string
                  status:
                    type: string
                    enum:
                    - approved
                    - pending
                    - approved-pending-payment
                    - declined
                required:
                - membership_id
                - status
  /v1/memberships/members/update-status:
    post:
      tags:
      - Memberships
      summary: Update Member Status
      description: Update a member's membership status. Approving a paid tier member captures their payment. Declining cancels any active subscription.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $schema: https://json-schema.org/draft/2020-12/schema
              type: object
              properties:
                user_id:
                  type: string
                  description: User ID (e.g., 'usr-xxx') or email address
                status:
                  type: string
                  enum:
                  - approved
                  - declined
              required:
              - user_id
              - status
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                description: Empty response
                properties: {}
                additionalProperties: false
                x-stainless-empty-object: true
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-luma-api-key
      description: API key to authenticate requests to the Luma API. Generate an API key on your Luma dashboard.