{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Events Scraper - Events by Keyword, City or Page",
    "description": "Facebook events scraper for public events by keyword, city, or Page, Group and event links. Each row has the name, start and end time with timezone, venue address and coordinates, organiser, ticket link, cover image and the going and interested counts. No login needed. $0.90 per 1,000 events.",
    "version": "0.1",
    "x-build-id": "eZiSciFGed1oHaOyj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dami_studio~facebook-events-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dami_studio-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/dami_studio~facebook-events-scraper/runs": {
      "post": {
        "operationId": "runs-sync-dami_studio-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/dami_studio~facebook-events-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-dami_studio-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": {
          "searchTerms": {
            "title": "Search terms",
            "minItems": 0,
            "maxItems": 20,
            "type": "array",
            "description": "What to search Facebook events for - 'concert', 'startup meetup', 'food festival'. Up to 20 terms per run, each searched in turn. Facebook's public events search returns up to 8 events per term, so use several terms (and the city box below) to go wider.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "City or location",
            "type": "string",
            "description": "Optional. A city name such as 'Berlin' or 'New York', or - for an exact area - a Facebook events URL for that city (https://www.facebook.com/events/explore/{city}/{id}/). A city name is looked up against Facebook's own location list; if Facebook has no matching location it is folded into the search text instead and a free note row tells you so."
          },
          "startUrls": {
            "title": "Facebook URLs",
            "minItems": 0,
            "maxItems": 50,
            "type": "array",
            "description": "Optional. Any mix of: a public event URL (https://www.facebook.com/events/123456789012345/), a Page URL or handle whose hosted events you want, a Group URL, a Facebook events search URL you built in the browser, or an events explore URL for a city. Up to 50 per run.",
            "items": {
              "type": "string"
            }
          },
          "maxEvents": {
            "title": "Maximum events",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Total number of events to return across everything above. Keep it low while you are testing - you pay per event."
          },
          "startingFrom": {
            "title": "Only events starting after",
            "type": "string",
            "description": "Optional and free. Drop events that start before this. Accepts 2026-09-01, a full ISO timestamp, an epoch, or a relative window such as '7 days'. Filtered events are never charged."
          },
          "startingBefore": {
            "title": "Only events starting before",
            "type": "string",
            "description": "Optional and free. Drop events that start after this. Same formats as above."
          },
          "category": {
            "title": "Category",
            "enum": [
              "music",
              "sports",
              "comedy",
              "theatre",
              "art",
              "film",
              "dance",
              "food",
              "drinks",
              "parties",
              "networking",
              "fitness",
              "wellness",
              "health",
              "games",
              "shopping",
              "crafts",
              "gardening",
              "home",
              "religion",
              "causes",
              "classics"
            ],
            "type": "string",
            "description": "Optional and free. Restrict the search to one of Facebook's own event categories."
          },
          "onlineOnly": {
            "title": "Online events only",
            "type": "boolean",
            "description": "Optional and free. Return only events Facebook marks as online."
          },
          "paidOnly": {
            "title": "Ticketed events only",
            "type": "boolean",
            "description": "Optional and free. Search terms only. Keeps only events where Facebook shows a ticket link. The rest are left out and not charged, so you can get fewer events than you asked for. A paid event that sells only at the door, or mentions tickets only in its description, is left out too."
          },
          "includePastEvents": {
            "title": "Include past events",
            "type": "boolean",
            "description": "Optional and free. Off by default, so you get upcoming events. Turn it on to also read a Page's or Group's past events."
          },
          "proxyUrls": {
            "title": "Your own proxy servers (optional)",
            "minItems": 0,
            "maxItems": 50,
            "type": "array",
            "description": "Leave this empty for a normal run. Fill it in only if you want the traffic to leave through proxy servers you already pay for, one URL per line, in the form http://user:pass@host:port.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}