{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Videos Scraper With Reactions & Comment Counts",
    "description": "Facebook Videos Scraper extracts public video data including titles, descriptions, creators, views, reactions, comment counts, shares, timestamps, and video URLs. Build structured datasets for content research, engagement analysis, trend tracking, and competitor monitoring.",
    "version": "0.1",
    "x-build-id": "d1ZI7qb8eC7ZZ19xz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapio~facebook-videos-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapio-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/scrapio~facebook-videos-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapio-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/scrapio~facebook-videos-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapio-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",
            "type": "array",
            "description": "One Reel URL per line, e.g. https://www.facebook.com/reel/2429400350831482 — the only URL shape that carries real video data logged-out. A /<page>/videos/<id>/ or /watch/?v= link is accepted, but Facebook answers those with a recommendation feed holding nothing about the requested video: such rows come back status=\"Unavailable\" and are not charged.",
            "items": {
              "type": "string"
            }
          },
          "minReactions": {
            "title": "👍 Minimum Reactions",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Skip (and do not charge for) any reel whose anchored reaction total is below this number. Example: minReactions=1000 on a 10-URL run keeps only reels with 1000+ reactions. 0 = keep everything. Default is 0.",
            "default": 0
          },
          "minComments": {
            "title": "💬 Minimum Comments",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Skip (and do not charge for) any reel whose anchored comment count is below this number. Example: minComments=50 keeps only reels with an active thread. 0 = keep everything. Default is 0.",
            "default": 0
          },
          "includeAnchorEvidence": {
            "title": "🔬 Include Anchor Evidence Columns",
            "type": "boolean",
            "description": "Adds the audit trail for every engagement number: anchorStoryId, anchorFeedbackId, engagementBlocksOnPage, and naiveFirstMatchReactions — the value a first-match scraper would have reported from the same HTML. Turn off for a leaner dataset. Default is true.",
            "default": true
          },
          "includeUnavailableRows": {
            "title": "🚫 Keep Unavailable URLs As Rows",
            "type": "boolean",
            "description": "When a URL yields no playable video, still write an uncharged row with status=\"Unavailable\" and a reason, so you can see exactly which inputs failed. Set to false to drop them entirely. Either way they are never billed. Default is true.",
            "default": true
          },
          "maxConcurrency": {
            "title": "⚡ Parallel Requests",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many reel pages to fetch at once. Example: 30 URLs at maxConcurrency=5 finishes in roughly a fifth of the time. Values outside 1–10 are clamped and the coercion is logged. Default is 3.",
            "default": 3
          },
          "urls": {
            "title": "🔁 Legacy URL Field",
            "type": "array",
            "description": "Backward-compatible alias for 🎥 Facebook Reel URLs. If this is filled it takes precedence, so an input JSON written for the original actor runs unchanged. Leave empty otherwise.",
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "🔒 Proxy Configuration",
            "type": "object",
            "description": "Optional. Apify Proxy (residential or datacenter) or your own proxy URLs. Reel pages resolve without a proxy on most runs; the actor switches to residential automatically if a fetch looks blocked. Proxy retries happen before any row is written, so a retry can never duplicate a row."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}