{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Reels Keyword Scraper",
    "description": "Facebook Reels Keyword Scraper SD - Facebook Reels Keyword Scraper is a social media data tool that finds public reels by keyword and returns exact plays, every reaction type (like, love, care, haha, wow, sad, angry), comments, shares and MP4 links - Facebook reels search extractor.",
    "version": "0.0",
    "x-build-id": "JRsrbUjQYLWpfJBV7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scraper_automation~facebook-reels-keyword-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scraper_automation-facebook-reels-keyword-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/scraper_automation~facebook-reels-keyword-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scraper_automation-facebook-reels-keyword-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/scraper_automation~facebook-reels-keyword-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scraper_automation-facebook-reels-keyword-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",
        "required": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "One keyword or phrase per line (weight loss, yoga for beginners, street food). The scraper finds public Facebook reels about each one.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max reels per keyword",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Reels delivered for each keyword. Fewer come back when the search has no more public reels for that keyword.",
            "default": 10
          },
          "exactPhrase": {
            "title": "Exact phrase",
            "type": "boolean",
            "description": "On: the whole phrase must appear (\"weight loss\"). Off: reels that match the words in any order.",
            "default": true
          },
          "countryCode": {
            "title": "Country",
            "type": "string",
            "description": "Two-letter country of the search (us, gb, de, br ...). Reels that match your keyword in that market are found first.",
            "default": "us"
          },
          "languageCode": {
            "title": "Language",
            "type": "string",
            "description": "Language of the search (en, es, pt, fr ...).",
            "default": "en"
          },
          "maxConcurrency": {
            "title": "Parallel workers",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many reels are read at the same time while the search keeps finding new ones. More workers finish large runs faster; 6 is a good balance.",
            "default": 6
          },
          "onlyReelsNewerThan": {
            "title": "Only reels newer than ($10 per 1,000 reels)",
            "type": "string",
            "description": "Keep reels published on or after this date: 2026-09-01, a full ISO time, or a period such as \"7 days\", \"2 weeks\", \"3 months\". Extra cost: $10 per 1,000 reels while a date filter is used. Empty = no filter, no extra cost."
          },
          "onlyReelsOlderThan": {
            "title": "Only reels older than ($10 per 1,000 reels)",
            "type": "string",
            "description": "Keep reels published on or before this date (same formats). Use both for a date window. Same extra cost: $10 per 1,000 reels delivered."
          },
          "includeReelDetails": {
            "title": "Exact counts + every reaction type",
            "type": "boolean",
            "description": "Exact play, view, comment and reaction counts, the count of every reaction type (Like, Love, Care, Haha, Wow, Sad, Angry), shares and the engagement rate.",
            "default": true
          },
          "includeProfileDetails": {
            "title": "Page / profile details",
            "type": "boolean",
            "description": "Adds the owner's followers, following, talking-about count, likes, category, intro, websites and cover photo to every reel (read once per page).",
            "default": false
          },
          "includeTranscript": {
            "title": "Transcript",
            "type": "boolean",
            "description": "Adds the reel's caption track with timestamps when Facebook publishes one, otherwise Facebook's own speech text when available.",
            "default": false
          },
          "transcriptLanguage": {
            "title": "Preferred transcript language",
            "type": "string",
            "description": "Language code to prefer when a reel has caption tracks in several languages (en, es, pt, fr ...).",
            "default": "en"
          },
          "scrapeComments": {
            "title": "Include comments ($1.49 per 1,000 on paid plans)",
            "type": "boolean",
            "description": "Adds the public comments of every reel as \"comments\" (author, text, likes, reactions by type, time, attachments). Extra cost per 1,000 comments is on the pricing tab; every reply counts as a comment. Nothing extra is charged when this is off.",
            "default": false
          },
          "commentsMode": {
            "title": "Comment order",
            "enum": [
              "Most Relevant",
              "Newest",
              "Oldest",
              "All"
            ],
            "type": "string",
            "description": "Order of the comments Facebook returns.",
            "default": "Most Relevant"
          },
          "maxComments": {
            "title": "Max comments per reel",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "With \"Include comments\": comments are paged until this number or the end of the thread.",
            "default": 50
          },
          "scrapeReplies": {
            "title": "Include replies",
            "type": "boolean",
            "description": "With \"Include comments\": also read the replies under each comment.",
            "default": false
          },
          "maxRepliesPerComment": {
            "title": "Max replies per comment",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "With \"Include replies\": replies are paged until this number or the end of the thread.",
            "default": 50
          },
          "storeMedia": {
            "title": "Save video, audio and thumbnail (permanent links)",
            "type": "boolean",
            "description": "Facebook's media links expire after a few hours. Turn on to save every reel's HD video (MP4), its audio track (M4A) and its thumbnail in Apify storage and get links that keep working (videoFileUrl, audioFileUrl, thumbnailFileUrl). Runs take longer; give the run more memory for long reels.",
            "default": false
          },
          "keyValueStoreName": {
            "title": "Storage name (optional)",
            "type": "string",
            "description": "Save the files into a named key-value store (letters, digits and hyphens, 3-63 characters, e.g. weight-loss-reels) so they are kept after the run and several runs collect in one place. Empty = the run's own store."
          },
          "maxFileSizeMb": {
            "title": "Max file size (MB)",
            "minimum": 1,
            "maximum": 4000,
            "type": "integer",
            "description": "Larger files are skipped (the row says so in storageError).",
            "default": 500
          },
          "includeTechnicalData": {
            "title": "Technical data",
            "type": "boolean",
            "description": "Adds a \"technicalData\" object (ids, tracking values, quality manifest and every other raw value) for developers.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Facebook limits logged-out visitors per IP address. Residential proxies (the default) give the most reliable results; the scraper switches to a fresh IP when one is blocked.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}