{
  "openapi": "3.0.1",
  "info": {
    "title": "Luma & Meetup Events Scraper: Hosts, Guests & New-Event Monitor",
    "description": "Scrape public events from Luma and Meetup in one run, by city, keyword, topic, radius or organizer link. One unified row per event: date, venue, ticket price, guest counts, hosts with LinkedIn, X and Instagram links, plus group stats. Monitor mode returns only new events on each scheduled run.",
    "version": "0.1",
    "x-build-id": "GLklHydS3htUoLLM0"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~luma-meetup-events-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-luma-meetup-events-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/getascraper~luma-meetup-events-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-luma-meetup-events-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/getascraper~luma-meetup-events-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-luma-meetup-events-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "platforms": {
            "title": "Platforms",
            "type": "array",
            "description": "Which event sites to search. Leave both selected to get Luma and Meetup events in one run with the same output fields, tagged with a platform column.",
            "items": {
              "type": "string",
              "enum": [
                "luma",
                "meetup"
              ],
              "enumTitles": [
                "Luma (luma.com)",
                "Meetup (meetup.com)"
              ]
            },
            "default": [
              "luma",
              "meetup"
            ]
          },
          "locations": {
            "title": "Cities or places",
            "type": "array",
            "description": "Cities to search, such as San Francisco, London or Austin. Luma city feeds are used when the city has one, otherwise the area around the place is searched. Add a country for small towns, for example Leeds, UK.",
            "default": [
              "San Francisco"
            ],
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Keywords",
            "type": "array",
            "description": "Words to look for in event titles and descriptions, one per row, for example AI, founders or yoga. Leave empty to browse everything in the place (Meetup is then browsed with a set of common interest words, because it does not list events without a keyword).",
            "default": [
              "AI"
            ],
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Direct links",
            "type": "array",
            "description": "Optional links to read directly: a Luma event, a Luma calendar (organizer) page, a Luma city page, a Meetup event, a Meetup group page or a Meetup search link. Calendar and group links list that organizer's events, which is the quickest way to follow one host.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "lumaTopics": {
            "title": "Luma topics",
            "type": "array",
            "description": "Only Luma events in these topics, searched in each place above. Leave empty for all topics.",
            "items": {
              "type": "string",
              "enum": [
                "ai",
                "tech",
                "crypto",
                "food",
                "arts",
                "climate",
                "fitness",
                "wellness",
                "books",
                "games",
                "running",
                "family"
              ],
              "enumTitles": [
                "AI",
                "Tech",
                "Crypto",
                "Food & Drink",
                "Arts & Culture",
                "Climate",
                "Fitness",
                "Wellness",
                "Books",
                "Games",
                "Running",
                "Family"
              ]
            },
            "default": []
          },
          "meetupTopics": {
            "title": "Meetup topics",
            "type": "array",
            "description": "Only Meetup events whose group sits in these categories. Leave empty for all categories.",
            "items": {
              "type": "string",
              "enum": [
                "Art & Culture",
                "Career & Business",
                "Community & Environment",
                "Dancing",
                "Games",
                "Health & Wellbeing",
                "Hobbies & Passions",
                "Identity & Language",
                "Movements & Politics",
                "Music",
                "Parents & Family",
                "Pets & Animals",
                "Religion & Spirituality",
                "Science & Education",
                "Social Activities",
                "Sports & Fitness",
                "Support & Coaching",
                "Technology",
                "Travel & Outdoor",
                "Writing"
              ],
              "enumTitles": [
                "Art & Culture",
                "Career & Business",
                "Community & Environment",
                "Dancing",
                "Games",
                "Health & Wellbeing",
                "Hobbies & Passions",
                "Identity & Language",
                "Movements & Politics",
                "Music",
                "Parents & Family",
                "Pets & Animals",
                "Religion & Spirituality",
                "Science & Education",
                "Social Activities",
                "Sports & Fitness",
                "Support & Coaching",
                "Technology",
                "Travel & Outdoor",
                "Writing"
              ]
            },
            "default": []
          },
          "latitude": {
            "title": "Custom area latitude",
            "minimum": -90,
            "maximum": 90,
            "type": "number",
            "description": "Search around exact coordinates instead of, or in addition to, the named places. Enter latitude and longitude together. Useful for suburbs and towns that have no city feed."
          },
          "longitude": {
            "title": "Custom area longitude",
            "minimum": -180,
            "maximum": 180,
            "type": "number",
            "description": "Longitude of the custom area. Must be filled together with the latitude."
          },
          "radiusKm": {
            "title": "Search radius",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Distance around each place, in kilometers, for Meetup searches and custom areas.",
            "default": 30
          },
          "dateFrom": {
            "title": "Starts on or after",
            "type": "string",
            "description": "Keep only events that start on or after this date. Leave empty to start from today. Dates are compared in UTC."
          },
          "dateTo": {
            "title": "Starts on or before",
            "type": "string",
            "description": "Keep only events that start on or before this date. Searching stops early once the listing passes this date, so a short window is fast."
          },
          "eventFormat": {
            "title": "Event format",
            "enum": [
              "any",
              "in-person",
              "online"
            ],
            "type": "string",
            "description": "Restrict to events held in person or online only.",
            "default": "any"
          },
          "priceFilter": {
            "title": "Ticket price",
            "enum": [
              "any",
              "free",
              "paid"
            ],
            "type": "string",
            "description": "Restrict to free events or to paid events. Events whose price is not published are kept out of the paid filter.",
            "default": "any"
          },
          "minAttendees": {
            "title": "Minimum attendees",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only events with at least this many registered guests. Events that hide their guest count are dropped when this is above zero. Good for finding well-attended events.",
            "default": 0
          },
          "hideSoldOut": {
            "title": "Skip sold-out events",
            "type": "boolean",
            "description": "Leave out events that are sold out. Events with a waitlist count as sold out.",
            "default": false
          },
          "resultType": {
            "title": "What to return",
            "enum": [
              "events",
              "groups"
            ],
            "type": "string",
            "description": "Events returns one row per event with its host and organizer. Communities returns one row per organizer: Meetup groups with member counts, ratings and topics, or Luma calendars with their social links, found through the matching events.",
            "default": "events"
          },
          "fetchEventDetails": {
            "title": "Read full event pages (Luma)",
            "type": "boolean",
            "description": "Adds the full description, ticket tiers with prices and capacity, topics and registration questions to Luma events. Costs one extra request per event, so runs take longer. Meetup events already include the description.",
            "default": false
          },
          "includeAttendees": {
            "title": "Include public attendee names (Meetup)",
            "type": "boolean",
            "description": "Adds the first attendees Meetup shows publicly on the event page (name and profile link). Luma guest lists need a login, so for Luma only the featured guests the page itself shows are returned. Off by default.",
            "default": false
          },
          "maxAttendeesPerEvent": {
            "title": "Attendees per event",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many public attendees to list per Meetup event when attendee names are on.",
            "default": 20
          },
          "calendarPeriod": {
            "title": "Calendar links: which events",
            "enum": [
              "upcoming",
              "past"
            ],
            "type": "string",
            "description": "For Luma calendar links: upcoming events or past events of that organizer.",
            "default": "upcoming"
          },
          "onlyNewEvents": {
            "title": "Only new events (monitor mode)",
            "type": "boolean",
            "description": "Return only events not delivered by an earlier run with the same monitor name. Schedule the run weekly to get a feed of fresh events. The first run returns everything it finds and sets the baseline.",
            "default": false
          },
          "reportChanges": {
            "title": "Also report changed events",
            "type": "boolean",
            "description": "In monitor mode, also return events already seen whose title, start time, location, price or sold-out state changed, marked changeType updated with a list of changes.",
            "default": false
          },
          "monitorScope": {
            "title": "Monitor name",
            "type": "string",
            "description": "Name of the saved list of seen events. Use a different name for each saved search or schedule so their feeds stay separate.",
            "default": "default"
          },
          "maxResults": {
            "title": "Maximum rows in total",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Stops the run once this many rows are delivered, across all searches. Free plan runs are limited to 25.",
            "default": 20
          },
          "maxResultsPerSearch": {
            "title": "Maximum rows per search",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Cap for each place, keyword, topic or link, so one big city cannot use the whole budget. With several searches the total cap above still applies.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Runs connect directly by default and switch to the Apify proxy by themselves if a site refuses the connection. Set a proxy here only if you want to force one.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}