{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Events Scraper - Search by Keyword, City & Page",
    "description": "Scrape public Facebook events without login: search by keyword and city, all events of a page, or event links. Name, UTC start and end, venue with GPS, organizer page, description, tickets link, category, response count, image. US$ 8.50 per 1,000 events.",
    "version": "0.1",
    "x-build-id": "oIdIM0zRTSEKe8X9o"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapewise~facebook-events-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapewise-facebook-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/scrapewise~facebook-events-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapewise-facebook-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/scrapewise~facebook-events-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapewise-facebook-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": {
          "searchQueries": {
            "title": "Keywords",
            "type": "array",
            "description": "Words as you would type them in the Facebook events search, one per line, for example halloween party, tech conference, jazz or food festival. Each keyword is searched in each city, and every row says which keyword and city found it. Leave empty to get whatever is on in the cities. Each event is charged once as 'Event delivered'.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Cities",
            "type": "array",
            "description": "City names in English, one per line, for example New York, London, \"Paris, France\" or Sydney. The Actor finds the Facebook city and applies Facebook's own location filter, which also returns events in nearby towns (see 'Only events inside the city'). A numeric Facebook city id works too. Leave empty to search everywhere.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Facebook links: events, pages or searches",
            "type": "array",
            "description": "Facebook links, one per line: event links (facebook.com/events/123...) return that event; page links or page names (facebook.com/RoyalAlbertHall) return the events the page hosts; events search links (facebook.com/events/search/?q=...) keep the filters you chose on Facebook.",
            "items": {
              "type": "string"
            }
          },
          "dateFilter": {
            "title": "When",
            "enum": [
              "any",
              "today",
              "tomorrow",
              "this_week",
              "this_weekend",
              "next_week",
              "next_30_days",
              "custom"
            ],
            "type": "string",
            "description": "Time window for keyword and city searches: Any upcoming date (default), Today, Tomorrow, This week, This weekend, Next week, Next 30 days, or Between the dates below. Not applied to pages and event links."
          },
          "startDate": {
            "title": "From date",
            "type": "string",
            "description": "Start of a custom window, as YYYY-MM-DD, for example 2026-12-01. Setting a date is enough; there is no need to also pick \"Between the dates below\" in 'When'."
          },
          "endDate": {
            "title": "To date",
            "type": "string",
            "description": "End of a custom window, as YYYY-MM-DD, for example 2026-12-31. Defaults to 30 days after the start date."
          },
          "category": {
            "title": "Category",
            "enum": [
              "any",
              "art",
              "causes",
              "comedy",
              "crafts",
              "dance",
              "drinks",
              "film",
              "fitness",
              "food",
              "games",
              "gardening",
              "health",
              "home",
              "literature",
              "music",
              "networking",
              "other",
              "party",
              "religion",
              "shopping",
              "sports",
              "theater",
              "wellness"
            ],
            "type": "string",
            "description": "Facebook's own event category, for example music, comedy, food, fitness, networking or party. Default 'Any'. It works together with a keyword; a very generic keyword plus a category can return nothing."
          },
          "exactCityOnly": {
            "title": "Only events inside the city",
            "type": "boolean",
            "description": "Off (default): Facebook's location filter means \"in or near the city\". On: keep only events whose city is exactly the one you asked for. Events dropped by this filter are not charged."
          },
          "includePastEvents": {
            "title": "Include past events",
            "type": "boolean",
            "description": "Off (default): only upcoming and ongoing events. On: page links also return the page's past events, newest first, useful to study a venue's history."
          },
          "maxItems": {
            "title": "Max events per search or page",
            "minimum": 1,
            "type": "integer",
            "description": "Upper limit of events for each keyword and city pair, each page and each search link, for example 30. Without login Facebook shows roughly 50 to 150 events per search; split a big job into several keywords, dates or categories. You pay per event delivered, so this caps the cost of each search."
          },
          "onlyNew": {
            "title": "Only new events since the last run",
            "type": "boolean",
            "description": "For scheduled runs. Remembers which events of each search, page or search link were already delivered (in a named key-value store in your account, 'facebook-events-scraper-only-new') and skips them on the next runs, before opening the event page: they are not delivered, not charged and do not count toward the limit. The first run also marks the events past your limit as seen. A run with nothing new ends successfully and charges nothing. The same input is searched again only after 30 minutes; an earlier run ends at once and charges nothing. Event links are always delivered.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave as is. Searches go through residential IPs and event pages through datacenter IPs automatically, and the proxy cost is already inside the event price. Change it only to use your own proxies."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}