{
  "service": "luma",
  "displayName": "Luma",
  "categories": [
    "Productivity",
    "Social"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "luma_api_key",
      "description": "Luma API key sent with the x-luma-api-key header. Generate a key for a calendar from the Luma calendar API key settings at https://luma.com/calendar/manage/api-keys.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://lu.ma",
  "actions": [
    {
      "id": "luma.get_calendar",
      "service": "luma",
      "name": "get_calendar",
      "description": "Get the Luma calendar scoped to the current API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input parameters for reading the current Luma calendar."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "calendar": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Luma calendar."
          }
        },
        "additionalProperties": false,
        "description": "Luma calendar response."
      }
    },
    {
      "id": "luma.get_event",
      "service": "luma",
      "name": "get_event",
      "description": "Get full details for a Luma event the API key can manage.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "event_id": {
            "type": "string",
            "minLength": 1,
            "description": "Luma event ID, usually starting with evt-."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for retrieving a Luma event."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "event": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Luma event."
          }
        },
        "additionalProperties": false,
        "description": "Luma event response."
      }
    },
    {
      "id": "luma.get_event_guest",
      "service": "luma",
      "name": "get_event_guest",
      "description": "Get detailed information for a Luma event guest.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "event_id": {
            "type": "string",
            "minLength": 1,
            "description": "Luma event ID, usually starting with evt-."
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Guest identifier: guest ID, ticket key, guest key, or email address."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for retrieving a Luma event guest."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "guest": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Luma guest ID."
              },
              "user_id": {
                "type": "string",
                "description": "The guest's Luma user ID."
              },
              "user_email": {
                "type": "string",
                "description": "The guest's email address.",
                "format": "email"
              },
              "user_name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The guest's display name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "user_first_name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The guest's first name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "user_last_name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The guest's last name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "approval_status": {
                "type": "string",
                "description": "The guest approval status."
              },
              "check_in_qr_code": {
                "type": "string",
                "description": "The guest check-in QR code value."
              },
              "invited_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "When the guest was invited, or null."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "registered_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "When the guest registered, or null."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "phone_number": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The guest phone number, or null."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A Luma event guest."
          }
        },
        "additionalProperties": false,
        "description": "Luma event guest response."
      }
    },
    {
      "id": "luma.get_self",
      "service": "luma",
      "name": "get_self",
      "description": "Get the Luma user profile for the current API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input parameters for reading the authenticated Luma user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Luma user ID."
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The user's display name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "avatar_url": {
                "type": "string",
                "description": "The user's avatar URL."
              },
              "email": {
                "type": "string",
                "description": "The user's email address.",
                "format": "email"
              },
              "first_name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The user's first name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "last_name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The user's last name."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A Luma user profile."
          }
        },
        "additionalProperties": false,
        "description": "Luma authenticated user response."
      }
    },
    {
      "id": "luma.list_calendar_events",
      "service": "luma",
      "name": "list_calendar_events",
      "description": "List events for the Luma calendar scoped to the current API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "before": {
            "type": "string",
            "minLength": 1,
            "description": "ISO 8601 date-time accepted by Luma, for example 2022-10-19T03:27:13.673Z."
          },
          "after": {
            "type": "string",
            "minLength": 1,
            "description": "ISO 8601 date-time accepted by Luma, for example 2022-10-19T03:27:13.673Z."
          },
          "pagination_cursor": {
            "type": "string",
            "minLength": 1,
            "description": "Cursor token returned as next_cursor by a previous Luma page."
          },
          "pagination_limit": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of records to return. Luma enforces its own maximum."
          },
          "platforms": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "luma",
                "external"
              ],
              "description": "A Luma event platform."
            },
            "description": "Event platforms to include, such as luma or external."
          },
          "sort_column": {
            "type": "string",
            "enum": [
              "start_at"
            ],
            "description": "The Luma event sort column."
          },
          "sort_direction": {
            "type": "string",
            "enum": [
              "asc",
              "desc",
              "asc nulls last",
              "desc nulls last"
            ],
            "description": "The Luma sort direction."
          },
          "status": {
            "type": "string",
            "enum": [
              "approved",
              "pending"
            ],
            "description": "The calendar submission status to include."
          },
          "access": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "manage",
                "view"
              ],
              "description": "A Luma event access value."
            },
            "description": "Access values to include."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing Luma calendar events."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "events": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Luma event."
            },
            "description": "Events returned by Luma."
          },
          "hasMore": {
            "type": "boolean",
            "description": "Whether Luma has more events to fetch."
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "Cursor to pass into the next request, when one is available."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Paginated Luma events response."
      }
    },
    {
      "id": "luma.list_event_guests",
      "service": "luma",
      "name": "list_event_guests",
      "description": "List registered or invited guests for a Luma event.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "event_id": {
            "type": "string",
            "minLength": 1,
            "description": "Luma event ID, usually starting with evt-."
          },
          "approval_status": {
            "type": "string",
            "enum": [
              "approved",
              "session",
              "pending_approval",
              "invited",
              "declined",
              "waitlist"
            ],
            "description": "Guest approval status to include."
          },
          "pagination_cursor": {
            "type": "string",
            "minLength": 1,
            "description": "Cursor token returned as next_cursor by a previous Luma page."
          },
          "pagination_limit": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of records to return. Luma enforces its own maximum."
          },
          "sort_column": {
            "type": "string",
            "enum": [
              "name",
              "email",
              "created_at",
              "registered_at",
              "checked_in_at"
            ],
            "description": "The Luma guest sort column."
          },
          "sort_direction": {
            "type": "string",
            "enum": [
              "asc",
              "desc",
              "asc nulls last",
              "desc nulls last"
            ],
            "description": "The Luma sort direction."
          }
        },
        "additionalProperties": false,
        "required": [
          "event_id"
        ],
        "description": "Query parameters for listing Luma event guests."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "guests": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Luma guest ID."
                },
                "user_id": {
                  "type": "string",
                  "description": "The guest's Luma user ID."
                },
                "user_email": {
                  "type": "string",
                  "description": "The guest's email address.",
                  "format": "email"
                },
                "user_name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The guest's display name."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "user_first_name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The guest's first name."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "user_last_name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The guest's last name."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "approval_status": {
                  "type": "string",
                  "description": "The guest approval status."
                },
                "check_in_qr_code": {
                  "type": "string",
                  "description": "The guest check-in QR code value."
                },
                "invited_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "When the guest was invited, or null."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "registered_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "When the guest registered, or null."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "phone_number": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The guest phone number, or null."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "description": "A Luma event guest."
            },
            "description": "Guests returned by Luma."
          },
          "hasMore": {
            "type": "boolean",
            "description": "Whether Luma has more guests to fetch."
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "Cursor to pass into the next request, when one is available."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Paginated Luma event guests response."
      }
    }
  ]
}
