{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Group Posts & Comments Scraper 🔥$0.0015",
    "description": "🔥 $0.0015 per post, no cookies. Full details: who posted, profile link, date, text, photos, videos, likes, comments, replies & more. See who asks, buys or sells and find leads fast.",
    "version": "1.8",
    "x-build-id": "s7LFWfGeUsp2bzUwW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/thedoor~facebook-group-post-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-thedoor-facebook-group-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/thedoor~facebook-group-post-scraper/runs": {
      "post": {
        "operationId": "runs-sync-thedoor-facebook-group-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/thedoor~facebook-group-post-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-thedoor-facebook-group-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": {
          "url": {
            "title": "Facebook Group URLs",
            "uniqueItems": true,
            "type": "array",
            "description": "Enter one or more public Facebook Group URLs, one URL per line. Example: https://www.facebook.com/groups/63181993057/.",
            "items": {
              "type": "string"
            }
          },
          "maxPosts": {
            "title": "Max posts - for each URL",
            "minimum": 1,
            "type": "integer",
            "description": "How many posts to read from each group link. Example: 3 groups x 100 = up to 300 posts. With the AI post filter on, this counts the posts the AI reads, not the posts it keeps: it often keeps only a few in every 100, so set a higher number (for example 300 to 500) when you filter.",
            "default": 100
          },
          "groupSearchPrompt": {
            "title": "🔎 AI group search: find the exact Facebook groups you need, by topic, city and country (optional)",
            "maxLength": 4000,
            "type": "string",
            "description": "Optional: leave empty to scrape only the URLs above. Write in any language what groups you need and where. AI searches Google, checks every group found and keeps only public, active groups of that topic and place, then scrapes them together with the URLs above. Examples: \"used car buy and sell groups in Guadalajara, Mexico\", \"rooms for rent in Cau Giay, Hanoi\", \"IT job groups in Berlin\", \"Vietnamese community groups in Bangkok\". The search result is saved in the GROUP_SEARCH record; the same search within 30 days reuses the same groups."
          },
          "prompt": {
            "title": "🧠 AI post filter (beta): keep only the posts you want (products, rentals, jobs or any topic) (optional)",
            "maxLength": 2000,
            "type": "string",
            "description": "Optional: leave empty to keep every post. Write in any language which posts to keep. AI reads every post and keeps only those that match: the item, brand and price for buy and sell; rent or sale, rooms and district for real estate; role and place for jobs; or any topic. Repeated and spam posts are removed. Examples: \"used Toyota cars for sale in Jakarta, under 200 million IDR\", \"2 bedroom apartments for rent in District 7, Ho Chi Minh City\", \"job posts for English teachers in Hanoi\", \"people asking for plumber recommendations\". Posts that do not match are listed with the reason in the \"All posts before AI filtering\" dataset. Leave empty to keep every post."
          },
          "groupSearchMaxGroups": {
            "title": "🔎 AI group search: maximum groups (optional)",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Optional: only used with AI group search. How many groups the search may add; leave empty for the default (50)."
          },
          "onlyNewPosts": {
            "title": "Only new posts for the next run - Don't pay twice for the same posts",
            "type": "boolean",
            "description": "For recurring runs, enter again only the group URL(s) you want to update. The Actor does not restore a previous URL list; for each URL supplied in this run, it returns only posts newer than the last successfully saved post from the same account. You do not need to re-enter other previously monitored URLs.",
            "default": false
          },
          "sortingOrder": {
            "title": "Post sorting order",
            "enum": [
              "newest_posts",
              "newest_activity",
              "most_relevant",
              "buy_sell_listings"
            ],
            "type": "string",
            "description": "Choose how Facebook posts are ordered. Buy/Sell items only returns native Facebook listings instead of regular posts.",
            "default": "newest_posts"
          },
          "includeTopComment": {
            "title": "Include top comment",
            "type": "boolean",
            "description": "Add the top comment available for each post.",
            "default": true
          },
          "fetchAllComments": {
            "title": "Fetch comments",
            "type": "boolean",
            "description": "Collect top-level comments for every returned post. Turn on Fetch comment replies to include replies too.",
            "default": false
          },
          "fetchCommentReplies": {
            "title": "Fetch comment replies",
            "type": "boolean",
            "description": "Also collect replies to each returned comment. Fetch comments must be enabled. This can make the run take longer.",
            "default": false
          },
          "postsNewerThanDays": {
            "title": "Posts newer than (days)",
            "minimum": 0.01,
            "type": "number",
            "description": "Collect posts from this many days before the run starts. Decimals are supported: 0.5 means 12 hours and 1.5 means 36 hours. Time frame overrides this field; otherwise days override hours."
          },
          "postsNewerThanHours": {
            "title": "Posts newer than (hours)",
            "minimum": 0.01,
            "type": "number",
            "description": "Collect posts from this many hours before the run starts. Decimals are supported: 0.5 means 30 minutes and 1.5 means 90 minutes. It is used only when Time frame and Posts newer than (days) are empty."
          },
          "postsOlderThan": {
            "title": "Posts older than",
            "pattern": "^(?:(?:\\d{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])|(\\d+(?:\\.\\d+)?)\\s*(?:minute|hour|day|week|month|year)s?)$",
            "type": "string",
            "description": "Only return posts older than this point. Choose a calendar date in YYYY-MM-DD format, or enter a duration such as '2 days', '1 month', or '90 minutes'. Combine it with Time frame to collect a date range."
          },
          "aiFilterMode": {
            "title": "🧠 AI filter mode",
            "type": "string",
            "description": "Temporarily disabled. Choose how AI handles transaction intent. All matching posts ignores whether the post is buying or selling; Seller listings keeps only offers/listings; Wanted / buying posts keeps only requests to buy. If prompt is provided without a mode, the Actor falls back internally to All matching posts. Leave prompt empty to disable AI filtering."
          },
          "postsNewerThan": {
            "title": "Time frame",
            "pattern": "^(?:(?:\\d{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])|(\\d+(?:\\.\\d+)?)\\s*(?:minute|hour|day|week|month|year)s?)$",
            "type": "string",
            "description": "Choose Relative for a rolling period such as '2 days', '1 month', '90 minutes', or '1.5 hours'. Choose Absolute for a calendar date in YYYY-MM-DD format. Timestamps are not accepted. When set, Time frame overrides Posts newer than (days) and Posts newer than (hours)."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}