{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Comments Scraper: Replies, No Login",
    "description": "Scrape the comments and replies of public Facebook posts, videos, reels and photos without a login: text, author, time, reactions by type, reply counts, attachments and language, plus a free coverage row per post with Facebook's own counts. JSON, CSV, Excel, API. Pay per comment.",
    "version": "0.1",
    "x-build-id": "GcgXyZ1dzxmtGcLKA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automation_craft~facebook-comments-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automation_craft-facebook-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/automation_craft~facebook-comments-scraper/runs": {
      "post": {
        "operationId": "runs-sync-automation_craft-facebook-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/automation_craft~facebook-comments-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-automation_craft-facebook-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",
        "properties": {
          "postUrls": {
            "title": "Post links",
            "type": "array",
            "description": "Links of public Facebook posts, videos, reels, photos or public group posts: page posts (including pfbid links), /videos/, /watch/?v=, /reel/, /photo/?fbid=, share links (/share/p/, /share/v/, /share/r/), fb.watch, permalink.php and story.php links, or bare post numbers. A link with comment_id reads that comment and its replies (a reply's link: that reply and the replies under it). Up to 500 links. Page, profile and group home links are not read (a free row says so).",
            "items": {
              "type": "string"
            }
          },
          "maxCommentsPerPost": {
            "title": "Comments per post",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "The most comments and replies delivered per post, replies included (each counts as one). Empty: 50. Facebook shows comments in pages of 10."
          },
          "collectAll": {
            "title": "Every comment of each post",
            "type": "boolean",
            "description": "Read every comment Facebook shows of each post to the end of its list, whatever Comments per post says. The charge limit and Comments in all still apply."
          },
          "maxTotalComments": {
            "title": "Comments in all",
            "minimum": 1,
            "maximum": 10000000,
            "type": "integer",
            "description": "The most comments delivered in the whole run, all posts together. Empty: no run cap (the per post number and your charge limit bound the run)."
          },
          "includeReplies": {
            "title": "Include replies",
            "type": "boolean",
            "description": "Read the reply threads too (replies and replies to replies, each a row with its parent comment's id). Replies count against Comments per post and are billed as comments. Empty: on."
          },
          "maxRepliesPerComment": {
            "title": "Replies per comment",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "The most replies delivered under each top level comment. Empty: every reply Facebook shows (within Comments per post)."
          },
          "sortOrder": {
            "title": "Order",
            "enum": [
              "newest",
              "oldest",
              "all",
              "relevant"
            ],
            "type": "string",
            "description": "The order Facebook lists the comments in. Newest first and Oldest first are strict time orders: a date window then ends the walk early. Most relevant lists fewer comments. Photos are always read oldest first (Facebook's other orders list only a few comments of a photo). Empty: newest first."
          },
          "commentsNewerThan": {
            "title": "Comments newer than",
            "type": "string",
            "description": "Only comments and replies posted at or after this moment, in UTC: YYYY-MM-DD, YYYY-MM-DDTHH:MM, today, yesterday, \"7 days\" or \"24 hours\" (counted back from the run's start). Free."
          },
          "commentsOlderThan": {
            "title": "Comments older than",
            "type": "string",
            "description": "Only comments and replies posted at or before this moment, in UTC, same forms as above (a day means its end, 23:59:59). Free."
          },
          "keywords": {
            "title": "Comments with these words",
            "type": "array",
            "description": "Only comments whose text holds at least one of these words or phrases (whole words, any case). Words of languages written without spaces match anywhere. Comments left out are free; up to 100 words.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Comments without these words",
            "type": "array",
            "description": "Leave out comments whose text holds any of these words or phrases (the same matching as the field above). Free.",
            "items": {
              "type": "string"
            }
          },
          "authors": {
            "title": "Only these authors",
            "type": "array",
            "description": "Only comments by these authors: a name as Facebook shows it, an author id (a number or a pfbid id) or a facebook.com profile link.",
            "items": {
              "type": "string"
            }
          },
          "excludeAuthors": {
            "title": "Leave out these authors",
            "type": "array",
            "description": "Leave out comments by these authors (names, ids or profile links, as above).",
            "items": {
              "type": "string"
            }
          },
          "excludePostAuthor": {
            "title": "Leave out the post author's comments",
            "type": "boolean",
            "description": "Leave out comments and replies written by the post's own page or profile (a brand answering its customers, for example)."
          },
          "minReactions": {
            "title": "Minimum reactions",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Only comments with at least this many reactions. Empty or 0: no minimum."
          },
          "languages": {
            "title": "Languages",
            "type": "array",
            "description": "Only comments Facebook marks as written in these languages: two or three letter codes such as en, es, pt, ar. Comments without a language (a sticker, an emoji only) are left out when this is set.",
            "items": {
              "type": "string"
            }
          },
          "includePostDetails": {
            "title": "Include post details",
            "type": "boolean",
            "description": "Add one post row per post (the post's text, time, author, reaction and share counts as its page shows them logged out) and the post's text, time and author on every comment row. Billed as Post details, once per post per run; a post whose page shows no details is free. Off by default."
          },
          "memoryName": {
            "title": "Memory name",
            "type": "string",
            "description": "Name a memory to bill each comment once across runs: comments delivered by earlier runs under this name are free and left out, and a known comment's replies are read again only when its reply count grew. A memory belongs to this Actor; up to 150,000 comments."
          },
          "resetMemory": {
            "title": "Reset the memory",
            "type": "boolean",
            "description": "Forget every comment the named memory holds before this run (every comment counts as new again)."
          },
          "proxyUrls": {
            "title": "Your own proxies",
            "type": "string",
            "description": "Optional: your own proxy addresses, one per line, as http://user:password@host:port. Empty: the Apify datacenter pool this Actor uses on its own."
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "How many posts and reply threads are read at once. Empty: 4."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}