{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Video Transcript Generator & API: Reels to Text",
    "description": "Transcribe public Facebook videos and Reels without login: full text, timed segments, SRT and VTT subtitles, language and post stats. Uses Facebook's own captions when they exist, Whisper AI when not. Paste links or add Pages to transcribe their latest Reels.",
    "version": "0.1",
    "x-build-id": "qy3388Hxw2ZnXaNed"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/s_actors~facebook-video-transcript/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-s_actors-facebook-video-transcript",
        "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/s_actors~facebook-video-transcript/runs": {
      "post": {
        "operationId": "runs-sync-s_actors-facebook-video-transcript",
        "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/s_actors~facebook-video-transcript/run-sync": {
      "post": {
        "operationId": "run-sync-s_actors-facebook-video-transcript",
        "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 video / Reel links",
            "type": "array",
            "description": "One per line: facebook.com/reel/..., facebook.com/watch/?v=..., facebook.com/<page>/videos/..., fb.watch/... and facebook.com/share/v/... links, or a numeric video ID. Public videos only: no login needed.",
            "items": {
              "type": "string"
            }
          },
          "pages": {
            "title": "📘 Facebook Pages (transcribe their Reels)",
            "type": "array",
            "description": "One per line: a Page link (facebook.com/<name> or facebook.com/<name>/reels), its username (\"BBCNews\") or numeric ID. The Actor takes the Page's Reels, newest first.",
            "items": {
              "type": "string"
            }
          },
          "maxVideosPerPage": {
            "title": "Videos per Page",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "How many of each Page's latest Reels to transcribe. 0 = all of them (up to 5,000).",
            "default": 10
          },
          "postedAfter": {
            "title": "Only videos posted after",
            "type": "string",
            "description": "Pages only. A date (2026-10-01) or a period back from now (\"7 days\", \"24 hours\", \"2 weeks\", \"3 months\"). Empty = no date limit."
          },
          "onlyNew": {
            "title": "🔔 Only new videos (monitoring)",
            "type": "boolean",
            "description": "Pages only: skip videos that an earlier run with the same monitor name already returned. The first run takes the latest videos as usual.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Keeps separate \"already seen\" lists for different schedules (e.g. \"competitors\", \"brand\"). Same name = same list.",
            "default": "default"
          },
          "transcribeWithAI": {
            "title": "🤖 Transcribe videos without captions with AI",
            "type": "boolean",
            "description": "On: videos without Facebook captions are transcribed by Whisper AI (charged per started minute on top of the transcript). Off: only videos with Facebook captions get text; the rest come back free without a transcript.",
            "default": true
          },
          "language": {
            "title": "Spoken language (AI)",
            "type": "string",
            "description": "Two-letter code of the spoken language (en, es, pt, hi, ar, de, fr...) for AI transcription. Empty = detected automatically (recommended for mixed lists)."
          },
          "captionLanguage": {
            "title": "Captions language (Facebook translations)",
            "type": "string",
            "description": "Facebook auto-translates captions of many videos. A code like es, hi or pt_BR returns that translation instead of the original captions when Facebook has it (marked \"transcriptIsTranslation\"). Empty = the original language."
          },
          "maxVideoMinutes": {
            "title": "Max video length for AI (minutes)",
            "minimum": 1,
            "maximum": 240,
            "type": "integer",
            "description": "Longer videos without Facebook captions are skipped (free row) instead of transcribed by AI. Videos with Facebook captions are transcribed at any length.",
            "default": 30
          },
          "includeSegments": {
            "title": "Timed segments",
            "type": "boolean",
            "description": "Add the transcript as segments with start and end seconds.",
            "default": true
          },
          "includeSubtitles": {
            "title": "SRT and VTT subtitles in the dataset",
            "type": "boolean",
            "description": "Add ready subtitles (SRT and WebVTT text) to every row.",
            "default": true
          },
          "saveFiles": {
            "title": "Save .srt, .vtt and .txt files",
            "type": "boolean",
            "description": "Also save each transcript as downloadable files in the run's key-value store (links in the row).",
            "default": false
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many videos are loaded at the same time.",
            "default": 5
          },
          "debugLog": {
            "title": "Debug log",
            "type": "boolean",
            "description": "Log every request attempt (for support).",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}