{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Events Scraper - Search, City, Page & Event Details",
    "description": "Scrape public Facebook events by keyword, city, Page or event URL for $2.40 per 1,000: name, dates, venue, address, plus counts on city feeds. Event URLs and keyword search add coordinates, tickets, hosts and description; city and Page lists get them for $0.0018 more. Monitor mode. No login.",
    "version": "0.1",
    "x-build-id": "yqlhozmWeWxSbpfu9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/topapi~facebook-events-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-topapi-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/topapi~facebook-events-scraper/runs": {
      "post": {
        "operationId": "runs-sync-topapi-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/topapi~facebook-events-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-topapi-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": {
          "startUrls": {
            "title": "🔗 Facebook URLs",
            "type": "array",
            "description": "One per line: an event (facebook.com/events/1740113193315403/), a Page (facebook.com/TheGarden/events), a city (facebook.com/events/explore/london/106078429431815/) or a search URL.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "🔎 Search keywords",
            "type": "array",
            "description": "Facebook's own event search, one keyword per line, e.g. \"jazz\", \"comedy night\", \"tech meetup\". Pair it with a search location below for events in one city.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchLocation": {
            "title": "📍 Search location",
            "type": "string",
            "description": "Where the keyword search looks: a city explore URL (facebook.com/events/explore/london/106078429431815/) or its place id (106078429431815). Empty = Facebook picks by the search IP (US).",
            "default": ""
          },
          "cityUrls": {
            "title": "🏙️ Cities",
            "type": "array",
            "description": "Every public event Facebook lists for a city: a facebook.com/events/explore/<city>/<place id>/ URL or the place id, e.g. 108424279189115 (New York), 106078429431815 (London).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "pageUrls": {
            "title": "📄 Pages (organizers, venues)",
            "type": "array",
            "description": "The events a Page hosts: a Page URL, username or numeric id, e.g. \"https://www.facebook.com/TheGarden\", \"LiveNation\", \"100064834536765\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "timeRange": {
            "title": "📅 When",
            "enum": [
              "anytime",
              "today",
              "tomorrow",
              "this_week",
              "this_weekend",
              "next_week",
              "next_30_days"
            ],
            "type": "string",
            "description": "Today to Next week are Facebook's own presets; Next 30 days is checked on each event. A ?time= in a city URL is used only when this is Any date. Dates below override both.",
            "default": "anytime"
          },
          "dateFrom": {
            "title": "📅 Starting from",
            "type": "string",
            "description": "Events on or after this date: 2026-11-01, \"today\" or relative (\"7 days\"). Empty = from now."
          },
          "dateTo": {
            "title": "📅 Starting before",
            "type": "string",
            "description": "Events up to this date, the whole day included: 2026-11-30 or relative (\"30 days\"). Empty = no end."
          },
          "includePastEvents": {
            "title": "⏮️ Include past events",
            "type": "boolean",
            "description": "Also return events that have ended. For Pages this reads their Past events tab too, which can list thousands; Facebook rate-limits long lists. Off = upcoming and ongoing events only.",
            "default": false
          },
          "keywordFilter": {
            "title": "🔤 Keyword filter",
            "type": "string",
            "description": "Keep only events whose name, description, venue or organizer contains this word, case-insensitive, e.g. \"festival\" or \"jazz, blues\" (comma = any of them). Empty = no filter.",
            "default": ""
          },
          "exactMatch": {
            "title": "🎯 Name contains the search keyword",
            "type": "boolean",
            "description": "For keyword searches: keep only events whose name contains the whole keyword phrase (Facebook's search also returns related events).",
            "default": false
          },
          "categories": {
            "title": "🏷️ Categories",
            "type": "array",
            "description": "Keep only events Facebook files under one of these categories, e.g. Music, Comedy, Film, Drinks, Food, Sports, Theater, Fitness, Art, Networking. Empty = all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "onlineOnly": {
            "title": "💻 Online events only",
            "type": "boolean",
            "description": "Keep only online events (Facebook Live, a meeting link).",
            "default": false
          },
          "paidOnly": {
            "title": "🎟️ Ticketed events only",
            "type": "boolean",
            "description": "Keep only events with a ticket link or a price on Facebook.",
            "default": false
          },
          "excludeCanceled": {
            "title": "🚫 Skip canceled events",
            "type": "boolean",
            "description": "Leave out events Facebook marks as canceled.",
            "default": false
          },
          "includeEventDetails": {
            "title": "📋 Include event details (city and Page lists)",
            "type": "boolean",
            "description": "Opens each event's page: description, ticket link and provider, hosts, coordinates, address, end time, time zone, categories, exact responded count, recurring dates. $0.0018 per event that gets them.",
            "default": false
          },
          "includeOrganizerContacts": {
            "title": "📇 Include organizer contacts",
            "type": "boolean",
            "description": "Adds the host Page's public contact block: email, phone, website, address, category, followers. $0.0047 per event that gets an email, phone or website; events without one are free.",
            "default": false
          },
          "followHosts": {
            "title": "🔁 Also read the hosts' other events",
            "type": "boolean",
            "description": "After the run's sources, reads the upcoming events of the Pages that host the delivered events (hosts are known for event URLs, keyword search and rows with event details).",
            "default": false
          },
          "maxHostPages": {
            "title": "🔢 Max host Pages to follow",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "How many host Pages 'Also read the hosts' other events' opens at most.",
            "default": 10
          },
          "monitorMode": {
            "title": "🔁 Only new events since the last run",
            "type": "boolean",
            "description": "Skips events earlier runs delivered, whichever input lists them (the store below is shared by all inputs and keeps the latest 50,000 per input). Events your dates or filters left out are rechecked.",
            "default": false
          },
          "monitorStoreName": {
            "title": "🗄️ Monitor memory name",
            "pattern": "^[a-zA-Z0-9-]{1,63}$",
            "type": "string",
            "description": "Name of the store that keeps the monitor memory, shared by all inputs of runs using it; give each separate feed its own. Use a new name (the first run creates it), not a store made elsewhere.",
            "default": "facebook-events-monitor"
          },
          "maxEvents": {
            "title": "💯 Max events",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Cap for the whole run after filters (your main cost control; you pay per delivered event). Facebook rate-limits long Page lists, so a big cap can need a longer run timeout. 0 = no cap.",
            "default": 50
          },
          "maxEventsPerSource": {
            "title": "🔢 Max events per input",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Cap per URL, keyword, city or Page, so one big source does not use the whole run. 0 = only the total cap applies (up to 5,000 per input).",
            "default": 0
          },
          "compact": {
            "title": "🤖 Compact output",
            "type": "boolean",
            "description": "Core fields only (id, url, name, dates, place, address, coordinates, online/canceled, counts, organizer, ticket URL, image, details level, input): sized for AI agents and MCP clients.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "🌍 Proxy",
            "type": "object",
            "description": "Default: event pages, city feeds and Page events go direct and fall back to Apify's datacenter proxy; keyword search uses Apify's residential proxy. Your own proxies are used for everything.",
            "default": {
              "useApifyProxy": true
            }
          },
          "maxConcurrency": {
            "title": "⚡ Inputs in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many inputs are read at once. 4 is a safe default; raise it for long lists of Pages or cities.",
            "default": 4
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}