{
  "openapi": "3.0.1",
  "info": {
    "title": "Eventbrite Events Scraper & Discovery",
    "description": "Scrape public Eventbrite events by city, category and date: name, time, venue, address, free or paid, price range, URL and organizer. Not affiliated with Eventbrite.",
    "version": "1.0",
    "x-build-id": "evBzaQFk1pNawcZ4W"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mmdincer~eventbrite-events-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mmdincer-eventbrite-events-finder",
        "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/mmdincer~eventbrite-events-finder/runs": {
      "post": {
        "operationId": "runs-sync-mmdincer-eventbrite-events-finder",
        "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/mmdincer~eventbrite-events-finder/run-sync": {
      "post": {
        "operationId": "run-sync-mmdincer-eventbrite-events-finder",
        "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": [
          "cities"
        ],
        "properties": {
          "cities": {
            "title": "Cities",
            "minItems": 1,
            "maxItems": 10,
            "type": "array",
            "description": "Places to search, one per line. A city name such as <code>berlin</code>, <code>new-york</code>, <code>istanbul</code> or <code>london</code> is enough: Eventbrite redirects it to the right place page. You can also paste an Eventbrite discovery URL such as <code>https://www.eventbrite.com/d/germany--berlin/all-events/</code>, or use a place slug such as <code>united-states--new-york</code> or <code>ny--new-york</code>. Up to 25 searches per run (cities × categories).",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Optional. Narrow the search to one or more Eventbrite categories, for example <code>music</code> or <code>business</code>. Each extra category multiplies the searches, and each search is limited by <b>Max events</b>. Leave empty to search every category, which is the broadest and cheapest way to start. Available: <code>music</code>, <code>nightlife</code>, <code>business</code>, <code>food-and-drink</code>, <code>performing-and-visual-arts</code>, <code>film-and-media</code>, <code>science-and-tech</code>, <code>health</code>, <code>sports-and-fitness</code>, <code>travel-and-outdoor</code>, <code>charity-and-causes</code>, <code>spirituality</code>, <code>family-and-education</code>, <code>home-and-lifestyle</code>, <code>fashion</code>, <code>government</code>, <code>community</code>, <code>arts</code>, <code>hobbies</code>, <code>holiday</code>, <code>school-activities</code>, <code>auto-boat-and-air</code>, <code>other</code>.",
            "items": {
              "type": "string"
            }
          },
          "price": {
            "title": "Price",
            "enum": [
              "any",
              "free",
              "paid"
            ],
            "type": "string",
            "description": "<b>Any</b> returns free and paid events. <b>Free</b> and <b>Paid</b> use Eventbrite's own price filter, so you only pay for the events you asked for.",
            "default": "any"
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "date",
              "eventbrite"
            ],
            "type": "string",
            "description": "<b>Date</b> sorts the events that were read from soonest to latest, which is what most lists want. <b>Eventbrite order</b> keeps Eventbrite's own relevance order. Eventbrite has no working date-sort parameter, so sorting happens after the download: with <b>Max events</b> below the full result count it sorts the events that were read, not the whole city.",
            "default": "date"
          },
          "startDate": {
            "title": "Starting from (date)",
            "type": "string",
            "description": "Optional. Only events that have not ended before this date, as <code>YYYY-MM-DD</code>. Leave empty to start from today, which is what Eventbrite shows by default."
          },
          "endDate": {
            "title": "Up to (date)",
            "type": "string",
            "description": "Optional. Only events that start on or before this date, as <code>YYYY-MM-DD</code>. Both dates together give you a fixed window, for example a conference week."
          },
          "searchQuery": {
            "title": "Keyword",
            "type": "string",
            "description": "Optional. A word or phrase Eventbrite should match in the event name and description, for example <code>jazz</code> or <code>startup</code>. Leave empty to list everything in the city and category. Use <b>Exclude keywords</b> to drop events that match the keyword only loosely."
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop events whose name, summary, category or venue contains any of these words, for example <code>online</code> or <code>webinar</code>. Not case sensitive. Applied after the download, so excluded events are not charged.",
            "items": {
              "type": "string"
            }
          },
          "maxEvents": {
            "title": "Max events",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Stop after this many events per search. This is the main cost control: you are charged per event written, so a small number keeps a test run cheap. The default is a good size for a newsletter or a dashboard.",
            "default": 200
          },
          "maxPagesPerSearch": {
            "title": "Max pages per search",
            "minimum": 1,
            "maximum": 49,
            "type": "integer",
            "description": "Eventbrite returns 20 events per page. Each page is one request, so this caps the requests per search independently of <b>Max events</b>. The default of 3 pages is polite and fast.",
            "default": 3
          },
          "includePriceDetails": {
            "title": "Add price range and ticket status",
            "type": "boolean",
            "description": "Opens each event page once to read the ticket price range, the currency, the free or paid flag and whether tickets are still available. List pages do not carry prices, so this is the only way to get them. Costs one extra request per event; turn it off for a fast, free list.",
            "default": true
          },
          "includeOrganizer": {
            "title": "Include organizer name",
            "type": "boolean",
            "description": "Adds the organizer's public display name and profile URL to every row. Off by default: many Eventbrite organizers are private individuals, and the default keeps personal names out of the dataset. The Actor never returns emails, phone numbers or attendee data.",
            "default": false
          },
          "onlyNew": {
            "title": "Skip events already delivered",
            "type": "boolean",
            "description": "When on, events this Actor already wrote on an earlier run of the same city, category and price are left out of the dataset and are not charged as event records. The discovery pages are still read, so search pages are still charged. Off by default, so a run without it returns the same list as before. The memory is per Actor, not per buyer account shared with other users.",
            "default": false
          },
          "requestsPerSecond": {
            "title": "Requests per second",
            "minimum": 0.2,
            "maximum": 3,
            "type": "number",
            "description": "How fast the Actor reads Eventbrite. The default of 1 is deliberately gentle: a measured run at 2.5 requests per second started getting HTTP 429 after about 37 pages, so one per second is the safe setting for long runs. Lower it further if you still see 429. The Actor backs off, stops the run and never changes its identity to get past a refusal.",
            "default": 1
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Eventbrite's public discovery pages work from the Apify platform without a proxy. Turn on Apify Proxy only if requests start being refused. Proxy traffic is billed by Apify separately.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}