{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Event Search Scraper - Host, Ticket, Related Event",
    "description": "Facebook Event Search Scraper extracts public event details by keyword, including event names, dates, locations, hosts, ticket links, descriptions, and related events. Build structured event datasets for research, promotion, competitor analysis, and local event discovery.",
    "version": "0.1",
    "x-build-id": "05RA02nofRyaEpw5V"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~facebook-event-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-facebook-event-search-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/api-empire~facebook-event-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-facebook-event-search-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/api-empire~facebook-event-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-facebook-event-search-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": {
          "eventQueries": {
            "title": "🎟️ Event topics to search",
            "type": "array",
            "description": "One topic per line, e.g. \"conference\", \"tech summit\", \"comedy in London\". Each topic is searched separately.\n\nAdding a city to the topic narrows results to that city in most cases, because this is text relevance rather than a map filter.\n\nExample: [\"conference\"] with a limit of 20 collects up to 20 conference events and opens each one.",
            "items": {
              "type": "string"
            }
          },
          "searchResultLimit": {
            "title": "🔢 Events per topic",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "How many event results to collect for each topic before moving to the next one.\n\nExample: 20 topics x 20 events = up to 400 event rows. Default is 20."
          },
          "fetchEventDetails": {
            "title": "📄 Open each event page for full details",
            "type": "boolean",
            "description": "On: every collected event is opened so the host, ticket link, end time, timezone, coordinates and cancellation status can be read.\n\nOff: only the fields present in the search results are returned, and every detail column is null with enrichmentStatus set to \"not_requested\". Default is on.",
            "default": true
          },
          "maxEventsToEnrich": {
            "title": "🧮 Maximum events to open per run",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Caps how many events are opened in one run. Events beyond the cap are still returned with their search-result fields and are labelled enrichmentStatus = \"skipped_cap\", so you can always see exactly which rows were not opened.\n\nExample: 20 keeps a run quick; 100 collects far more but takes roughly five times as long. Default is 20."
          },
          "detailFields": {
            "title": "🧩 Which details to collect",
            "uniqueItems": true,
            "type": "array",
            "description": "Pick the detail groups you actually need. Groups you leave out are reported as null instead of being collected.\n\nExample: choose only Host and Ticket link to build an organiser directory. Default is all six.",
            "items": {
              "type": "string",
              "enum": [
                "description",
                "host",
                "schedule",
                "location",
                "ticket",
                "cancellation"
              ],
              "enumTitles": [
                "📝 Description text",
                "👤 Host name, ID and profile link",
                "🕒 End time, duration and timezone",
                "📍 Coordinates, venue and city",
                "🎫 Ticket / registration link",
                "🚫 Cancellation status"
              ]
            }
          },
          "includeRelatedEvents": {
            "title": "🔗 Collect the events Facebook suggests",
            "type": "boolean",
            "description": "On: each opened event also reports how many related events Facebook lists for it and their combined interested count.\n\nThese suggestions are Facebook's own, per event — not a similarity score calculated here. Default is on.",
            "default": true
          },
          "emitRelatedEventRows": {
            "title": "🧾 Save each related event as its own row",
            "type": "boolean",
            "description": "On: every suggested event becomes a separate row with type = \"relatedEvent\", isChild = true and parentEventId pointing at the event it was suggested for. These rows are also mirrored to a run-scoped \"related-events\" dataset.\n\nOff: only the per-event summary columns are kept. Default is on.",
            "default": true
          },
          "maxRelatedPerEvent": {
            "title": "🔝 Maximum related events per event",
            "minimum": 0,
            "maximum": 25,
            "type": "integer",
            "description": "Caps how many suggested events are kept for each event. Facebook publishes three per event in practice, so raising this above 3 changes nothing. Default is 3."
          },
          "startUrls": {
            "title": "🗂️ Search terms (original key)",
            "type": "array",
            "description": "Accepted as an alternative to \"Event topics to search\". Values are treated as search terms, exactly as in the original actor. Used only when the topics field above is empty.",
            "items": {
              "type": "string"
            }
          },
          "maxEvents": {
            "title": "🗂️ Events per term (original key)",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Accepted as an alternative to \"Events per topic\". Used only when that field is left empty."
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy configuration",
            "type": "object",
            "description": "Choose how the run connects. Your selection is honoured for every request; nothing is switched on or swapped behind the scenes."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}