{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Followers and Following Scraper With Profile Details",
    "description": "Facebook Followers and Following Scraper extracts public profile details, including names, usernames, profile URLs, bios, follower counts, and locations. Automate audience research, influencer discovery, competitor analysis, lead generation, and social media analytics.",
    "version": "0.1",
    "x-build-id": "5THQ6xShXcxfvriW7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapio~facebook-followers-following-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapio-facebook-followers-following-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-followers-following-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapio-facebook-followers-following-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-followers-following-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapio-facebook-followers-following-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": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "🔗 Facebook profile URLs or usernames",
            "type": "array",
            "description": "One target per row. Accepts a full URL (https://www.facebook.com/zuck) or a username (zuck). A non-URL string is still treated as a name keyword, matching the base actor. Prefer the dedicated name keyword field below. Example: ['https://www.facebook.com/zuck'].",
            "items": {
              "type": "string"
            }
          },
          "collection": {
            "title": "Collection",
            "type": "object",
            "description": "Which relationship list to pull and how many people per profile. Nested keys stay identical to the base actor (followType, resultsLimit).",
            "properties": {
              "followType": {
                "title": "👥 Relation type",
                "type": "string",
                "description": "both = followers and following (limit is shared). followers = people who follow this profile. following = accounts this profile follows. Default is both.",
                "enum": [
                  "both",
                  "followers",
                  "following"
                ],
                "enumTitles": [
                  "Both followers and following",
                  "Only followers",
                  "Only following"
                ],
                "default": "both",
                "editor": "select"
              },
              "resultsLimit": {
                "title": "🔢 Results limit",
                "type": "integer",
                "description": "Maximum people saved per target profile. When Both is selected the total is split across the two lists. Default is 10.",
                "minimum": 1,
                "maximum": 100000,
                "default": 10
              }
            }
          },
          "profileDetails": {
            "title": "Profile details",
            "type": "object",
            "description": "Filters and optional About enrichment. Omit this object entirely to match base-actor behaviour (all people, no About lookups).",
            "properties": {
              "peopleFilter": {
                "title": "👥 Which people to keep",
                "type": "string",
                "description": "all = every list row (default, same as the base actor). pagesOnly = Facebook Pages. peopleOnly = non-Page profiles. hasWorkplace = subtitle parsed as a workplace. Default is all.",
                "enum": [
                  "all",
                  "pagesOnly",
                  "peopleOnly",
                  "hasWorkplace"
                ],
                "enumTitles": [
                  "All people (base behaviour)",
                  "Pages only",
                  "People only (not Pages)",
                  "Has a workplace in the subtitle"
                ],
                "default": "all",
                "editor": "select"
              },
              "nameKeyword": {
                "title": "🔎 Name / subtitle keyword",
                "type": "string",
                "description": "Keep a row only when this text appears in the display name or subtitle (case-insensitive). Empty = no keyword filter. The base actor's first non-URL startUrls string still works if this is empty. Example: 'Studio'. Default is empty.",
                "default": "",
                "nullable": true
              },
              "enrichAbout": {
                "title": "📄 Fetch public About page (extra request)",
                "type": "boolean",
                "description": "When on, open each kept person's profile/About HTML for public gender and, on Pages, website / email / phone when those strings are present. Personal emails are usually hidden — those fields stay null. Default is off.",
                "default": false
              },
              "maxAboutLookups": {
                "title": "🎚️ Max About lookups this run",
                "type": "integer",
                "description": "Hard cap on extra About HTML requests for the whole run. Extra people still appear with aboutStatus=capped. Used only when Fetch public About is on. Example: 20. Default is 20.",
                "minimum": 0,
                "maximum": 5000,
                "default": 20
              }
            }
          },
          "facebookCookies": {
            "title": "🍪 Facebook cookies (session)",
            "type": "string",
            "description": "Optional login session. Paste c_user and xs (header form `c_user=…; xs=…` or one `c_user: …` line per cookie). Follower/following lists are usually login-gated. Dead sessions are dropped and the run continues logged out. Never stored on output rows. No default."
          },
          "network": {
            "title": "Proxy & network",
            "type": "object",
            "description": "Connection and proxy options for this run.",
            "properties": {
              "proxyConfiguration": {
                "title": "🛡️ Proxy configuration",
                "type": "object",
                "description": "Optional. Enable Apify proxy when Facebook blocks the default exit. If you leave this off, the Actor still tries residential then datacenter fallback unless you disable that below.",
                "editor": "proxy",
                "prefill": {
                  "useApifyProxy": false
                }
              },
              "disableDefaultProxy": {
                "title": "⛔ Disable automatic proxy fallback",
                "type": "boolean",
                "description": "Turn on only for a direct connection with no default Apify proxy. Default is off.",
                "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}