{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Page Posts & Comments Scraper [No Cookies, No Login] ✅",
    "description": "Scrape public Facebook page posts, profile posts, group posts, reels and comments - no cookies, no login. One row per comment or post: HD/SD video URLs, transcripts, reactions, author, reels metadata. 30+ fields. Flat $4/1k, platform usage included.",
    "version": "0.0",
    "x-build-id": "Tj3ESOFkO7BdSekEj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/unseenuser~fb-posts/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-unseenuser-fb-posts",
        "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/unseenuser~fb-posts/runs": {
      "post": {
        "operationId": "runs-sync-unseenuser-fb-posts",
        "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/unseenuser~fb-posts/run-sync": {
      "post": {
        "operationId": "run-sync-unseenuser-fb-posts",
        "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": [
          "sources"
        ],
        "properties": {
          "sources": {
            "title": "Profiles, pages, groups or posts",
            "type": "array",
            "description": "Paste what you want to scrape - one per line. Any mix of full URLs (https://www.facebook.com/pacemorby, https://www.facebook.com/groups/123456789, https://www.facebook.com/reel/486651220706068), handles (pacemorby or @pacemorby), or numeric page IDs (100063669491743). The Actor auto-detects the shape of each entry: /groups/ URLs are treated as groups, /posts, /videos, /reel, /watch, story.php, and permalink.php URLs as single posts, everything else as a profile / page timeline. Bare numeric IDs are treated as page IDs; if you have a numeric group ID, paste the full https://www.facebook.com/groups/<id> URL instead.",
            "items": {
              "type": "string"
            }
          },
          "maxPosts": {
            "title": "Max posts per source (0 = everything)",
            "minimum": 0,
            "type": "integer",
            "description": "0 = fetch everything (paginate until the source runs out of posts). Any positive number stops after that many posts per source. Timeline/group endpoints return 3 posts per call, so the Actor paginates on cursor automatically. Free Apify users are still capped at 50 dataset rows per run - upgrade to a paid plan to actually receive unlimited results.",
            "default": 0
          },
          "startDate": {
            "title": "Only posts on or after this date (optional)",
            "type": "string",
            "description": "ISO date (YYYY-MM-DD) or ISO datetime. Posts with a publishTime strictly before this instant are skipped and not billed. Leave empty for no lower bound."
          },
          "endDate": {
            "title": "Only posts on or before this date (optional)",
            "type": "string",
            "description": "ISO date (YYYY-MM-DD) or ISO datetime. Posts with a publishTime strictly after this instant are skipped and not billed. Note: pagination still walks past this date until the source runs out or maxPosts is hit, since sources return newest-first and we do not know when the next page will cross the boundary. Leave empty for no upper bound."
          },
          "includeTopComments": {
            "title": "Include top comments",
            "type": "boolean",
            "description": "Off by default. When on, the small batch of top comments that ships bundled with each post response is attached to the row (no extra event). Ignored when Fetch all comments is on - in that mode every comment gets its own row anyway.",
            "default": false
          },
          "fetchAllComments": {
            "title": "Fetch all comments",
            "type": "boolean",
            "description": "ON by default. Paginates the full comment thread per post. Output shape: one row per comment (not per post), each row billed as one result. Parent post fields (permalink, text, video URLs, author) stay on every row as the comment's source; comment-specific fields are commentText, commentAuthorName, commentReactionCount, commentReplyCount, commentPublishTimeIso, commentPermalink, and commentIndex (1-indexed within the post). Posts with zero comments are skipped. Turn off to get one row per post with no comments.",
            "default": true
          },
          "fetchCommentReplies": {
            "title": "Fetch comment replies",
            "type": "boolean",
            "description": "ON by default. Pulls replies for every fetched comment and attaches them to that comment's row under commentReplies. Requires Fetch all comments to be on (no-op otherwise).",
            "default": true
          },
          "fetchTranscript": {
            "title": "Fetch video transcript",
            "type": "boolean",
            "description": "WARNING: billed add-on. Video posts under 2 minutes only. Empty transcripts are NOT billed.",
            "default": false
          },
          "enrichSinglePostFields": {
            "title": "Deep enrich each post",
            "type": "boolean",
            "description": "WARNING: billed per post. Per-post deep fetch for share_count, view_count, captions, music, author verification, etc.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}