{
  "openapi": "3.0.1",
  "info": {
    "title": "Eventbrite, Lu.ma & Meetup [$0.99] Events + Organizer Leads",
    "description": "Scrape events from Eventbrite, Lu.ma and Meetup in one run — event details, organizers, dates, venues, geo, ticket pricing and lead generation. Filter by city, category, date and price. Harvests organizer website, socials and best-effort email. One row per event, JSON/CSV.",
    "version": "0.0",
    "x-build-id": "2e2qmln9WpcFO2PBF"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~eventbrite-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-eventbrite-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/memo23~eventbrite-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-eventbrite-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/memo23~eventbrite-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-eventbrite-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": {
          "startUrls": {
            "title": "Eventbrite, Lu.ma & Meetup URLs",
            "type": "array",
            "description": "Full Eventbrite, Lu.ma, and/or Meetup URLs to crawl. Mix any of them in the same array.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Eventbrite location slug used to build a search when no Start URLs are given — e.g. `ny--new-york`, `united-states`, `london`, or `online`. Tip: run a search on eventbrite.com and copy the segment after `/d/`."
          },
          "category": {
            "title": "Category",
            "enum": [
              "all-events",
              "music--events",
              "business--events",
              "food-and-drink--events",
              "community--events",
              "arts--events",
              "film-and-media--events",
              "sports-and-fitness--events",
              "health--events",
              "science-and-tech--events",
              "travel-and-outdoor--events",
              "charity-and-causes--events",
              "family-and-education--events",
              "fashion--events",
              "hobbies--events",
              "home-and-lifestyle--events",
              "spirituality--events"
            ],
            "type": "string",
            "description": "Eventbrite category to search within (used only when no Start URLs are given).",
            "default": "all-events"
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Optional free-text keyword for the built search (becomes `?q=`). Used only when no Start URLs are given."
          },
          "onlineOnly": {
            "title": "Online events only",
            "type": "boolean",
            "description": "Restrict the built search to online events (sets the location segment to `online`). Used only when no Start URLs are given.",
            "default": false
          },
          "lumaCity": {
            "title": "Lu.ma city",
            "type": "string",
            "description": "Lu.ma city slug to discover events in — e.g. `sf`, `nyc`, `london`, `berlin`, `tokyo`. Builds `https://luma.com/<city>` (or `https://luma.com/<city>/<category>` when a Lu.ma category is also set). Find the slug in a Luma city URL: luma.com/sf → `sf`."
          },
          "lumaCategory": {
            "title": "Lu.ma category",
            "enum": [
              "",
              "tech",
              "ai",
              "crypto",
              "games",
              "books",
              "family",
              "food",
              "running",
              "arts",
              "climate",
              "fitness",
              "wellness"
            ],
            "type": "string",
            "description": "Narrow the Lu.ma city discovery to one category. Ignored unless a Lu.ma city is set. Does nothing on its own (luma.com/discover/<category> redirects to the generic discover page).",
            "default": ""
          },
          "lumaOrganizer": {
            "title": "Lu.ma organizer (calendar slug)",
            "type": "string",
            "description": "Pull one organizer's upcoming events. The calendar slug from the URL — e.g. `supabase_community_events` from luma.com/supabase_community_events. Builds `https://luma.com/<slug>`. Independent of the city/category fields."
          },
          "dateFilter": {
            "title": "Date window",
            "enum": [
              "",
              "today",
              "tomorrow",
              "this-week",
              "this-weekend",
              "next-week",
              "this-month",
              "next-month"
            ],
            "type": "string",
            "description": "Limit the built Eventbrite search to a date window. Leave as 'Any date' for no date filter.",
            "default": ""
          },
          "priceFilter": {
            "title": "Price",
            "enum": [
              "",
              "free",
              "paid"
            ],
            "type": "string",
            "description": "Limit the built Eventbrite search to free or paid events. Leave as 'Any price' for no price filter.",
            "default": ""
          },
          "enrichOrganizer": {
            "title": "Enrich organizer/host (website, socials, description, followers)",
            "type": "boolean",
            "description": "Eventbrite & Lu.ma: add `organizerWebsite`, `organizerDomain`, `organizerSocials` (Eventbrite also `organizerFollowers`). Eventbrite fetches the organizer page; Lu.ma reads the host calendar inline.",
            "default": true
          },
          "harvestOrganizerEmails": {
            "title": "Harvest organizer contact email (best-effort, Eventbrite & Lu.ma)",
            "type": "boolean",
            "description": "When an organizer/host website is found, fetch it (homepage + /contact + /about) and extract a contact email into `organizerEmail`. Requires organizer enrichment. The email is `null` when the site doesn't expose one — normal, not an error. Does not apply to Meetup.",
            "default": true
          },
          "monitoringMode": {
            "title": "Monitoring mode (only return events not seen on previous runs)",
            "type": "boolean",
            "description": "When enabled, events whose ID has already been delivered to you are silently skipped (no detail page is fetched, no charge applies for them). The first run after enabling monitoring returns every match — that builds your baseline. Every subsequent run returns only new events.",
            "default": false
          },
          "resetMonitoringState": {
            "title": "Reset monitoring state (one-shot)",
            "type": "boolean",
            "description": "One-shot toggle: clear the saved 'events already seen' record at the start of this run. Use this when you change search URL or want to rebuild the baseline. Has no effect when monitoring mode is off.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum events to scrape",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on the number of events collected across all start URLs. Use this to control billing.",
            "default": 1000
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of event pages processed in parallel.",
            "default": 10
          },
          "minConcurrency": {
            "title": "Min concurrency",
            "minimum": 1,
            "type": "integer",
            "description": "Minimum number of event pages processed in parallel.",
            "default": 1
          },
          "maxRequestRetries": {
            "title": "Max request retries",
            "minimum": 0,
            "type": "integer",
            "description": "Number of retries before a failed request is given up.",
            "default": 5
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify proxy settings. None of the three sources (Eventbrite, Lu.ma, Meetup) has aggressive anti-bot, so a small residential pool (or even datacenter) works fine.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}