{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Videos Scraper & Spoken Text Transcript",
    "description": "Scrape Facebook videos with the Facebook Videos Scraper. Extract video URLs, titles, descriptions, upload dates, views, reactions, and comments. Ideal for content analysis, trend tracking, and social media research. Fast, reliable, and scalable for single or bulk videos.",
    "version": "0.1",
    "x-build-id": "qCJQ01z1XsMEMubip"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapier~facebook-videos-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapier-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/scrapier~facebook-videos-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapier-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/scrapier~facebook-videos-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapier-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": "Public Facebook Reel links, one per line — for example https://www.facebook.com/reel/1076980157988172. Reel URLs are the surface that carries video data logged-out; /username/videos/<id>/ and /watch/?v= pages do not contain the requested video and are returned as uncharged empty rows. The legacy 'urls' input key is still accepted.",
            "items": {
              "type": "string"
            }
          },
          "textExtraction": {
            "title": "🗣️ Spoken text source",
            "enum": [
              "auto",
              "captionsOnly",
              "speechToTextOnly",
              "off"
            ],
            "type": "string",
            "description": "How to obtain the spoken words. 'auto' uses the platform caption track and falls back to speech-to-text only if you enabled it below. 'captionsOnly' never calls an external service. Rows always state which path was used.",
            "default": "auto"
          },
          "transcriptFormat": {
            "title": "📝 Transcript format",
            "enum": [
              "text",
              "srt",
              "vtt",
              "cues"
            ],
            "type": "string",
            "description": "Shape of the 'transcript' column. 'text' is one readable paragraph with no timecodes; 'srt' and 'vtt' are subtitle files you can ship straight to a player; 'cues' is a JSON array of {start, end, text} for programmatic use.",
            "default": "text"
          },
          "captionLanguage": {
            "title": "🌐 Preferred caption language",
            "type": "string",
            "description": "Locale to prefer, such as en_US or just en. Facebook often publishes an original auto-generated track plus machine-translated locales. Leave blank to take the video's first listed track. If you name a language the video does not have, the row says 'requested_language_not_available' rather than quietly returning a different language."
          },
          "enableSpeechToText": {
            "title": "🎙️ Enable speech-to-text fallback",
            "type": "boolean",
            "description": "Off by default. When on, Reels with no caption track have their audio sent to the transcription endpoint below. This calls a third-party service you pay for directly and adds runtime. Rows produced this way are stamped transcriptIsOfficialCaptionTrack=false so a machine transcript is never mistaken for a publisher caption.",
            "default": false
          },
          "speechToTextApiKey": {
            "title": "🔑 Transcription API key",
            "type": "string",
            "description": "Your own key for the transcription endpoint. Sent only to the URL below and never stored in output. Leave empty to keep the actor fully keyless."
          },
          "speechToTextApiUrl": {
            "title": "🔗 Transcription endpoint",
            "type": "string",
            "description": "Any OpenAI-compatible /audio/transcriptions endpoint. Defaults to https://api.openai.com/v1/audio/transcriptions.",
            "default": "https://api.openai.com/v1/audio/transcriptions"
          },
          "speechToTextModel": {
            "title": "🧠 Transcription model",
            "type": "string",
            "description": "Model name passed to the endpoint, for example whisper-1.",
            "default": "whisper-1"
          },
          "speechToTextMaxAudioMb": {
            "title": "📦 Audio size cap (MB)",
            "minimum": 1,
            "maximum": 24,
            "type": "integer",
            "description": "Stop downloading audio after this many megabytes before transcribing. Values are clamped to 1–24 MB to stay under typical upload limits.",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "🔒 Proxy",
            "type": "object",
            "description": "Optional. Facebook Reel pages resolved without a proxy in testing; enable a proxy if you hit blocks at volume."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}