{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Group Posts & Comments Scraper",
    "description": "Scrape public Facebook group posts with comments and replies: text, author, date, reactions, shares, photos, Marketplace listing price and location, plus price, beds and phone read from listing posts.",
    "version": "1.1",
    "x-build-id": "UH60pN6AA0CS3tVM1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parsebird~facebook-group-posts-comments-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parsebird-facebook-group-posts-comments-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/parsebird~facebook-group-posts-comments-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parsebird-facebook-group-posts-comments-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/parsebird~facebook-group-posts-comments-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parsebird-facebook-group-posts-comments-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 public group links, for example https://www.facebook.com/groups/874728723021553 or https://www.facebook.com/groups/developerkaki. web.facebook.com and m.facebook.com links also work. Up to 100 groups per run.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItems": {
            "title": "Max posts per group",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many posts from each group. Set 0 to collect every post Facebook shows.",
            "default": 100
          },
          "viewOption": {
            "title": "Feed view",
            "enum": [
              "CHRONOLOGICAL",
              "RECENT_ACTIVITY",
              "TOP_POSTS",
              "CHRONOLOGICAL_LISTINGS"
            ],
            "type": "string",
            "description": "Which feed to request. 'Listings only' returns just the for-sale posts of buy/sell groups. Facebook usually serves logged-out visitors the group's default order for the other views; see the README.",
            "default": "CHRONOLOGICAL"
          },
          "search": {
            "title": "Keyword",
            "type": "string",
            "description": "Keep only posts whose text contains this phrase (not case-sensitive). The scraper keeps reading the feed until it finds 'Max posts per group' matches or the feed ends, so rare keywords read many posts. Leave empty to keep all posts."
          },
          "onlyPostsNewerThan": {
            "title": "Only posts newer than",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}([T ][0-9:.]+Z?)?$|^\\d+\\s*(minute|min|hour|hr|day|week|month|year)s?(\\s+ago)?$|^(today|yesterday)$",
            "type": "string",
            "description": "Keep posts published after this point and stop once the feed reaches older posts. Use a date (2026-04-20), a date and time (2026-04-20T10:00:00Z), or a period ('30 days', '2 weeks', '1 month')."
          },
          "onlyPostsOlderThan": {
            "title": "Only posts older than",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}([T ][0-9:.]+Z?)?$|^\\d+\\s*(minute|min|hour|hr|day|week|month|year)s?(\\s+ago)?$|^(today|yesterday)$",
            "type": "string",
            "description": "Keep posts published before this point, same formats as above. Combine both fields for a date range. Newer posts are skipped without charge while the scraper reads back to your range."
          },
          "includeComments": {
            "title": "Add comments shown in the feed",
            "type": "boolean",
            "description": "Add the comments Facebook already includes in the group feed. No extra requests and no extra charge, but Facebook includes them for few posts, so this is often empty. Use 'Add all comments' for reliable results.",
            "default": false
          },
          "fetchAllComments": {
            "title": "Add all comments",
            "type": "boolean",
            "description": "For each post with comments, load its top-level comments (text, author, date, link, reply count). Posts with no comments are skipped. Each comment is billed as additional data.",
            "default": false
          },
          "includeCommentReplies": {
            "title": "Add comment replies",
            "type": "boolean",
            "description": "Also load the replies under each comment (marked with threadingDepth 1 and parentCommentId). Turns on comment loading by itself. Slower on busy posts; each reply is billed as additional data.",
            "default": false
          },
          "maxCommentsPerPost": {
            "title": "Max comments per post",
            "minimum": 1,
            "type": "integer",
            "description": "Stop loading comments (and replies) for a post after this many.",
            "default": 100
          },
          "enrichMarketplaceListings": {
            "title": "Add Marketplace listing location",
            "type": "boolean",
            "description": "For posts that are Marketplace listings, open the listing page to add its title, location and map coordinates. One extra request per listing, billed as additional data.",
            "default": false
          },
          "monitoringMode": {
            "title": "Only new posts since the last run",
            "type": "boolean",
            "description": "Remember the posts delivered for each group and return only posts not seen in earlier runs. Stops reading once it reaches already-delivered posts. Good for scheduled runs. Already-seen posts that are read again are billed as additional data, not as results.",
            "default": false
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Facebook answers logged-out group requests only from residential IPs, so keep Apify residential proxy unless you have your own.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}