{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Groups Scraper",
    "description": "Extract data from public Facebook groups including posts, comments, reactions, and member insights. This Apify scraper helps you track discussions, analyze engagement, monitor trends, and gather valuable data for research, marketing, and community intelligence",
    "version": "0.1",
    "x-build-id": "X49reuUITDvQU3lru"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapeengine~facebook-groups-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapeengine-facebook-groups-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/scrapeengine~facebook-groups-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapeengine-facebook-groups-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/scrapeengine~facebook-groups-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapeengine-facebook-groups-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 Group URLs",
            "type": "array",
            "description": "📌 **Add Your Target Groups** 📌\n\n✨ Paste one or more public Facebook group URLs here.\n\n⚠️ **Important:** Only public groups are supported. Private groups require authentication.\n\n💡 **Tip:** You can scrape multiple groups in one run!",
            "items": {
              "type": "string"
            }
          },
          "resultsLimit": {
            "title": "📊 Number of Posts to Scrape",
            "minimum": 1,
            "type": "integer",
            "description": "🎯 **Control Your Data Volume** 🎯\n\nSet the maximum number of posts to scrape from each group.\n\n💡 **Smart Tip:** Leave empty to scrape ALL available posts (perfect for comprehensive analysis, but may take longer).\n\n⚡ **Recommended:** Start with 20-50 posts to test, then scale up!",
            "default": 20
          },
          "viewOption": {
            "title": "🔄 Post Sorting Strategy",
            "enum": [
              "CHRONOLOGICAL",
              "RECENT_ACTIVITY",
              "TOP_POSTS",
              "CHRONOLOGICAL_LISTINGS"
            ],
            "type": "string",
            "description": "🎭 **Choose Your Sorting Style** 🎭\n\nSelect how posts should be organized and displayed:\n\n📅 **Chronological** - Time-travel through posts (oldest → newest)\n\n🔥 **Recent Activity** - Catch the hottest, most active discussions\n\n⭐ **Top Posts** - Discover the most popular and engaging content\n\n🛒 **Chronological Listings** - Perfect for Buy/Sell groups\n\n⚠️ **Note:** Post limit applies to 'New posts' sorting only.",
            "default": "CHRONOLOGICAL"
          },
          "searchGroupKeyword": {
            "title": "🔍 Search Keyword Filter",
            "type": "string",
            "description": "🎯 **Find Specific Content** 🎯\n\nSearch posts by keyword or letter to filter results.\n\n⚠️ **Limitation:** Without login, search capabilities are limited.\n\n💡 **Pro Strategy:** \n• Use 1-2 letters + year filter for optimal results\n• Combine with year filter below for precision\n\n📝 **Note:** Full words may not return results in most cases.",
            "default": ""
          },
          "searchGroupYear": {
            "title": "📅 Year Filter",
            "type": "string",
            "description": "🗓️ **Time-Travel to Specific Years** 🗓️\n\nFilter posts from a specific year (e.g., 2024, 2023, 2022).\n\n📌 **Important:** Must be used together with the Search Keyword field above for best results.\n\n💡 **Example:** Enter \"2024\" to get posts from that year only.",
            "default": ""
          },
          "onlyPostsNewerThan": {
            "title": "📅 Posts Newer Than",
            "pattern": "^$|^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$|^(\\d+)\\s*(day|week|month|year)s?$",
            "type": "string",
            "description": "⏰ **Set Your Time Boundary** ⏰\n\nStop scraping when posts are older than this date.\n\n📝 **Format Options:**\n• **Absolute:** YYYY-MM-DD (e.g., 2024-01-15)\n• **Relative:** Natural language (e.g., \"2 weeks\", \"7 days\", \"1 month\")\n\n💡 **Examples:**\n• \"2024-01-01\" - Posts from January 2024 onwards\n• \"30 days\" - Posts from the last month\n• \"1 year\" - Posts from the last year"
          },
          "fallbackDocId": {
            "title": "🔧 Fallback GraphQL Doc ID",
            "type": "string",
            "description": "🛠️ **Use when automatic discovery fails** (e.g. after a Facebook frontend update).\n\nIf the actor reports 'Missing doc_id', you can set a known working GraphQL doc_id here. Obtain it from Facebook's group page JS/network tab (look for the doc_id in GraphQL requests to api/graphql/) or from support/community. Leave empty for automatic discovery.",
            "default": ""
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy & Security Settings",
            "type": "object",
            "description": "🛡️ **Enterprise-Grade Security** 🛡️\n\nConfigure proxy settings for secure and reliable scraping.\n\n✨ **Features:**\n• ✅ Automatic residential proxy rotation\n• 🔄 Smart auto-retry mechanism\n• 🚀 Ensures complete data collection\n• 🔒 Protects your scraping activities\n\n💡 **Recommended:** Enable for large-scale scraping operations!"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}