{
  "openapi": "3.0.1",
  "info": {
    "title": "Events Scraper – Eventbrite, Meetup & Luma (All-in-One)",
    "description": "Search events on Eventbrite, Meetup and Luma in one run by city, keyword and date. One normalized dataset: local time & time zone, venue, address, coordinates, price, organizer, attendee count. Cross-site duplicates merged.",
    "version": "1.0",
    "x-build-id": "2u2uvgqBY2wfCJThh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kirozhang~eventbrite-meetup-luma-events-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kirozhang-eventbrite-meetup-luma-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/kirozhang~eventbrite-meetup-luma-events-scraper/runs": {
      "post": {
        "operationId": "runs-sync-kirozhang-eventbrite-meetup-luma-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/kirozhang~eventbrite-meetup-luma-events-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-kirozhang-eventbrite-meetup-luma-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",
        "required": [
          "locations"
        ],
        "properties": {
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Cities to search, e.g. \"San Francisco\", \"Austin, TX\", \"London\", \"Berlin, Germany\", \"Toronto, Canada\". Add \"Online\" for virtual events (Eventbrite + Meetup). Each location is searched on every selected site.",
            "default": [
              "San Francisco"
            ],
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords (optional)",
            "type": "array",
            "description": "e.g. \"AI\", \"startup\", \"yoga\", \"networking\", \"python\". Each keyword is searched separately on every site. Leave empty to get all upcoming events in the area.",
            "items": {
              "type": "string"
            }
          },
          "sources": {
            "title": "Sites",
            "type": "array",
            "description": "Event sites to search. Luma has no online-events search, so it is skipped for \"Online\".",
            "items": {
              "type": "string",
              "enum": [
                "eventbrite",
                "meetup",
                "luma"
              ],
              "enumTitles": [
                "Eventbrite",
                "Meetup",
                "Luma (lu.ma)"
              ]
            },
            "default": [
              "eventbrite",
              "meetup",
              "luma"
            ]
          },
          "dateRange": {
            "title": "When",
            "enum": [
              "upcoming",
              "today",
              "tomorrow",
              "this-weekend",
              "next-7-days",
              "next-14-days",
              "next-30-days",
              "next-90-days",
              "custom"
            ],
            "type": "string",
            "description": "Dates are evaluated in the local time of each location. Multi-day events that are running during the period are included.",
            "default": "next-30-days"
          },
          "startDate": {
            "title": "From date (custom)",
            "type": "string",
            "description": "Used only when \"When\" = Custom dates. Format YYYY-MM-DD. Empty = today."
          },
          "endDate": {
            "title": "To date (custom)",
            "type": "string",
            "description": "Used only when \"When\" = Custom dates. Format YYYY-MM-DD. Empty = no end."
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "In-person events farther than this from the city center are dropped (distance is saved in \"distanceKm\"). Country-wide locations use at least 300 km.",
            "default": 40
          },
          "includeOnline": {
            "title": "Include online events",
            "type": "boolean",
            "description": "Also keep online events when searching a city. (Use the location \"Online\" to get only online events.)",
            "default": false
          },
          "keywordMatch": {
            "title": "Keyword matching",
            "enum": [
              "smart",
              "strict",
              "site"
            ],
            "type": "string",
            "description": "Smart = each site's own search, but Eventbrite results that do not mention the keyword at all are dropped (Eventbrite pads thin searches with unrelated popular events). Strict needs every word of the keyword in the title, description, tags or organizer (Luma exposes only the title and organizer, so Strict is tough on Luma).",
            "default": "smart"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "date",
              "relevance"
            ],
            "type": "string",
            "description": "Date also makes Eventbrite return the soonest events first; relevance keeps each site's own ranking.",
            "default": "date"
          },
          "maxEventsPerSource": {
            "title": "Max events per site, location & keyword",
            "minimum": 1,
            "maximum": 3000,
            "type": "integer",
            "description": "Upper limit per site for each location + keyword combination. Eventbrite shows at most ~1,000 results per search.",
            "default": 100
          },
          "maxEvents": {
            "title": "Max events in total",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Upper limit for the whole run (after duplicates are merged).",
            "default": 1000
          },
          "includeDescription": {
            "title": "Include description",
            "type": "boolean",
            "description": "Full description where the site provides it in search results (Meetup: full text; Eventbrite: summary). No extra cost.",
            "default": true
          },
          "dedupeAcrossSources": {
            "title": "Merge duplicates across sites",
            "type": "boolean",
            "description": "The same event (same title and start date) listed on several sites is saved once; the other listings are in \"alsoListedOn\".",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Not needed. If a site starts rate-limiting, the scraper switches that site to a residential proxy automatically at no extra cost to you.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}