{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Post Scraper",
    "description": "Input profile or page URLs or hashtag or direct Facebook post or reel URLs and Outputs captions, post types, uploader info, likes, comments, shares, views, hashtags, comments with authors, images, video variants, audio tracks & download URLs from posts of page or hashtag.",
    "version": "0.0",
    "x-build-id": "DhHhsa5nE51FwVzgr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/codenest~facebook-post-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-codenest-facebook-post-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/codenest~facebook-post-scraper/runs": {
      "post": {
        "operationId": "runs-sync-codenest-facebook-post-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/codenest~facebook-post-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-codenest-facebook-post-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": {
          "urls": {
            "title": "Direct Facebook Post URLs (Mode 1)",
            "type": "array",
            "description": "Optional: List of direct Facebook post URLs (photos, multi-image albums, videos, or reels). Examples: https://www.facebook.com/reel/123 or https://www.facebook.com/watch/?v=123",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "title": "Post URL",
                  "type": "string",
                  "description": "Direct URL of a public Facebook post, reel, photo, or video."
                }
              },
              "required": [
                "url"
              ]
            }
          },
          "pageUrls": {
            "title": "Page URLs (Mode 2)",
            "type": "array",
            "description": "Optional: Enter one or more Facebook page URLs to scrape reels from. Example: https://www.facebook.com/ExamplePage/",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "hashtags": {
            "title": "Hashtags (Mode 2)",
            "type": "array",
            "description": "Optional: Enter Facebook hashtags to scrape reels from (e.g. ['comedy', 'sports', 'news']).",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "maxPosts": {
            "title": "Max Reels to Scrape (Per Page/Hashtag)",
            "minimum": 5,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of reels to scrape per page/hashtag. The scraper scrolls until this target is met. Default is 50. Free users are limited to 5.",
            "default": 50
          },
          "include_comments": {
            "title": "Include Comments (Direct Post Mode)",
            "type": "boolean",
            "description": "Toggle ON to extract recent comments for each direct post (charges additional pay-per-event fee).",
            "default": false
          },
          "max_comments": {
            "title": "Maximum Recent Comments (Direct Post Mode)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum number of recent comments to extract per post (applicable when Include Comments is ON).",
            "default": 25
          },
          "flattenOutput": {
            "title": "Flatten Output for Excel/CSV",
            "type": "boolean",
            "description": "If checked, pushes each reel as an individual dataset row instead of grouping by page.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max Concurrency (Media Fetching)",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of post video/media URLs to fetch in parallel. Default is 10.",
            "default": 10
          },
          "headless": {
            "title": "Headless Browser",
            "type": "boolean",
            "description": "Run Playwright browser in headless mode. Default is true.",
            "default": true
          },
          "proxy": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Optional: Apify Proxy configuration. Recommended to prevent Facebook IP rate limits.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          },
          "cookie_header": {
            "title": "Facebook Session Cookies (Optional)",
            "type": "string",
            "description": "Optional: Facebook session cookies string or raw cookie header. Enables scraping behind login walls.",
            "default": ""
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}