{
  "openapi": "3.0.1",
  "info": {
    "title": "Reddit Scraper - Posts, Comments, Subreddits & Users",
    "description": "Scrape Reddit posts by keyword, the hot, new or top posts of any subreddit, the comments under any post, and any user's posts and comments. Get score, upvote ratio, comment count, flair and author user ID. No login, cookies or API keys needed. Export to JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "eYQHPzBUOE3tWZXZg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/clover_folktale~reddit-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-clover_folktale-reddit-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/clover_folktale~reddit-scraper/runs": {
      "post": {
        "operationId": "runs-sync-clover_folktale-reddit-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/clover_folktale~reddit-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-clover_folktale-reddit-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": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "subreddit",
              "comments",
              "userPosts",
              "userComments",
              "feed",
              "subredditInfo",
              "userProfile"
            ],
            "type": "string",
            "description": "What to scrape: posts by keyword, the posts of subreddits, the comments under posts, the posts or comments a user has written, a Reddit feed, subreddit details, or user profiles.",
            "default": "search"
          },
          "keyword": {
            "title": "Keyword (modes: search, subreddit)",
            "type": "string",
            "description": "Search keyword (search mode falls back to \"python\" when empty). In subreddit mode it is optional and narrows the subreddit's posts to those matching it."
          },
          "sort": {
            "title": "Sort (mode: search)",
            "enum": [
              "relevance",
              "hot",
              "top",
              "new",
              "comments"
            ],
            "type": "string",
            "description": "Relevance, hot, top, newest, or most comments.",
            "default": "relevance"
          },
          "subredditSort": {
            "title": "Sort (mode: subreddit)",
            "enum": [
              "hot",
              "new",
              "top",
              "comments"
            ],
            "type": "string",
            "description": "Order of each subreddit's posts. Top works with the time range below.",
            "default": "hot"
          },
          "timeRange": {
            "title": "Time range (modes: search, subreddit, feed)",
            "enum": [
              "all",
              "year",
              "month",
              "week",
              "day",
              "hour"
            ],
            "type": "string",
            "description": "Only posts from this period. Most useful with Top. In feed mode it applies to the popular and games feeds.",
            "default": "all"
          },
          "subreddits": {
            "title": "Subreddits (modes: subreddit, subredditInfo)",
            "type": "array",
            "description": "Subreddit names (python), r/python, or subreddit links.",
            "items": {
              "type": "string"
            }
          },
          "posts": {
            "title": "Posts (mode: comments)",
            "type": "array",
            "description": "Post links (https://www.reddit.com/r/<subreddit>/comments/<id>/...), redd.it links, or post IDs.",
            "items": {
              "type": "string"
            }
          },
          "commentSort": {
            "title": "Sort comments (mode: comments)",
            "enum": [
              "best",
              "top",
              "new",
              "controversial",
              "old"
            ],
            "type": "string",
            "description": "Order of the top-level comments.",
            "default": "best"
          },
          "expandReplies": {
            "title": "Expand replies (mode: comments)",
            "type": "boolean",
            "description": "Also fetch the replies Reddit hides behind \"load more\" links. Each delivered reply is charged as a result; replies come with the same fields as other comments.",
            "default": false
          },
          "users": {
            "title": "Users (modes: userPosts, userComments, userProfile)",
            "type": "array",
            "description": "Usernames (spez), u/spez, or reddit.com/user/<name> links.",
            "items": {
              "type": "string"
            }
          },
          "userSort": {
            "title": "Sort (modes: userPosts, userComments)",
            "enum": [
              "new",
              "top",
              "hot",
              "controversial"
            ],
            "type": "string",
            "description": "Order of each user's posts or comments.",
            "default": "new"
          },
          "feedType": {
            "title": "Feed (mode: feed)",
            "enum": [
              "popular",
              "home",
              "news",
              "games"
            ],
            "type": "string",
            "description": "Which Reddit feed to read: popular (r/popular), home (the default front page), news or games.",
            "default": "popular"
          },
          "feedSort": {
            "title": "Sort (mode: feed)",
            "enum": [
              "hot",
              "best",
              "new",
              "top",
              "rising"
            ],
            "type": "string",
            "description": "Order of the popular and games feeds. The home and news feeds have a fixed order. Top works with the time range above.",
            "default": "hot"
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of items to return in total for this run. You are charged per item returned.",
            "default": 20
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}