{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Videos Scraper: Commenters, Reactors & Sharers",
    "description": "Facebook Videos Scraper extracts public Facebook video data fast. Get titles, URLs, views, creators, descriptions, and engagement metrics. Ideal for research, trend analysis, monitoring competitors, and automating workflows that require structured Facebook video insights.",
    "version": "0.1",
    "x-build-id": "CuAKEMnjRou01DMbx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~facebook-videos-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-facebook-videos-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-videos-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-facebook-videos-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-videos-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-facebook-videos-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": {
          "videoUrls": {
            "title": "🎬 Facebook Reel URLs or IDs",
            "type": "array",
            "description": "One per line. Accepts https://www.facebook.com/reel/<id> or a bare id like 2009829369661635. Page-video URLs (/<page>/videos/<id>/) and /watch/?v= are accepted but Facebook serves them without the requested video — they come back flagged isAvailable=false and are never charged.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "🔢 Max videos",
            "minimum": 0,
            "type": "integer",
            "description": "Caps how many VIDEOS are processed (parents only). Participants are additional and capped separately. 0 = no cap. Default 0.",
            "default": 0
          },
          "includeParticipants": {
            "title": "👥 Collect participant identities",
            "type": "boolean",
            "description": "Fetch the people who commented, reacted or reshared each video into the child dataset — names and profile links, not comment text. Turn off for metadata-only runs. Default true.",
            "default": true
          },
          "participantTypes": {
            "title": "🗂️ Which participants",
            "type": "array",
            "description": "Pick the participant kinds to collect. Each becomes rows with type=commenter / reactor / resharer, carrying the person's name and profile link. Note: rows also carry isFromCreator, which is matched on creator NAME (participant ids are pfbid strings while creator ids are numeric, so they cannot be compared directly) — a different user with the same display name would false-positive. Default: all three.",
            "items": {
              "type": "string",
              "enum": [
                "commenters",
                "reactors",
                "resharers"
              ],
              "enumTitles": [
                "💬 Commenters — who left a comment (identity only, not the text)",
                "👍 Reactors — people who reacted",
                "🔁 Resharers — people who reshared"
              ]
            },
            "default": [
              "commenters",
              "reactors",
              "resharers"
            ]
          },
          "maxParticipantsPerVideo": {
            "title": "🙋 Max participants per video (per kind)",
            "minimum": 0,
            "type": "integer",
            "description": "Caps participant rows per kind, per video. Facebook's own ceiling is about 19, so a higher number cannot raise the yield. 0 = take whatever Facebook returns. Default 0.",
            "default": 0
          },
          "minComments": {
            "title": "💬 Minimum comments",
            "minimum": 0,
            "type": "integer",
            "description": "Skip videos with fewer comments than this. Example: 10 keeps only videos with 10+ comments. 0 = no filter. Default 0.",
            "default": 0
          },
          "minReactions": {
            "title": "👍 Minimum reactions",
            "minimum": 0,
            "type": "integer",
            "description": "Skip videos with fewer reactions than this. Example: 500 keeps only videos with 500+ reactions. 0 = no filter. Default 0.",
            "default": 0
          },
          "skipUnavailable": {
            "title": "🚫 Omit unavailable videos entirely",
            "type": "boolean",
            "description": "Off (default) writes a flagged, UNCHARGED row for every video Facebook served without data, so you can see exactly what happened to each input. On drops them from the dataset completely.",
            "default": false
          },
          "urls": {
            "title": "🔗 urls (legacy key)",
            "type": "array",
            "description": "Backward-compatible alias for the original actor's input key. When present it takes precedence over the field above, so existing saved inputs and API calls keep working unchanged.",
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "🔒 Proxy configuration",
            "type": "object",
            "description": "Optional. Apify Proxy (residential or datacenter) or custom proxy URLs. Facebook reels resolve without a proxy from Apify containers; if a request looks blocked the actor escalates to residential automatically, and only before the first row for that video is written."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}