View raw JSON
{
"type": "object",
"required": [],
"properties": {
"body": {
"type": "object",
"title": "Reddit Scraper Input Schema",
"required": [],
"properties": {
"sort": {
"enum": [
"relevance",
"hot",
"new",
"top",
"comments",
"controversial",
"rising"
],
"type": "string",
"title": "Sort By",
"editor": "select",
"default": "relevance",
"description": "Optional, default relevance. Keyword searches support relevance, new, top, hot and comments; subreddit feeds support hot, new, top, controversial and rising. For a feed, relevance falls back to hot. relevance and comments are search-only; do not assume controversial or rising works for keyword searches. Order does not guarantee complete or perfectly ranked results."
},
"time": {
"enum": [
"all",
"day",
"hour",
"month",
"week",
"year"
],
"type": "string",
"title": "Time Filter",
"editor": "select",
"default": "all",
"description": "Optional, default all. Choose all, day, hour, month, week or year for the creation-time window of posts in searches and subreddit feeds. all leaves the time window unrestricted, not the collection size. This is not a comment-publication or user-account-age filter; exact timezone and calendar boundaries are not specified."
},
"maxItems": {
"type": "integer",
"title": "Max Items",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Optional integer from 1 to 100, default 25. Requested result limit for each query, subreddit or URL job. Multiple inputs can produce more records in total. This is not a whole-request or billing ceiling, an exact result count, a deduplication rule or a separately guaranteed cap for every nested comment or selected record type."
},
"searches": {
"type": "array",
"items": {
"type": "string"
},
"title": "Search Queries",
"editor": "stringList",
"prefill": [
"apify"
],
"description": "Optional list of keywords or phrases. Each query runs independently, using the enabled search-type flags. Without subreddit scope, it searches across Reddit. A subreddit URL plus a query scopes that query to the community, unless URLs are ignored. Quotation marks request exact-phrase matching as documented by the source; the prefilled apify is an example, not a default."
},
"startUrls": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"title": "URL",
"pattern": "^(https?:\\/\\/)?(www\\.)?reddit\\.com\\/.+$",
"description": "Required string within each supplied URL entry, for a Reddit subreddit, post or user page—for example https://www.reddit.com/r/javascript/. The Reddit URL pattern validates form, not existence, access or full coverage. It is ignored when ignorestartUrls is true."
}
}
},
"title": "Start URLs",
"editor": "requestListSources",
"prefill": [
{
"url": "https://www.reddit.com/r/javascript/"
}
],
"description": "Optional list of objects containing url. A subreddit URL requests a feed, a post URL requests that post and optional comments, and a user URL requests a profile and optional recent posts. A subreddit URL can scope supplied queries; post and user URLs are fetched directly even when queries are present. ignorestartUrls true ignores every URL. The prefilled JavaScript subreddit is an example, not a default."
},
"includeNSFW": {
"type": "boolean",
"title": "Include NSFW",
"default": false,
"description": "Optional, default false. True includes available content marked NSFW by the platform. This does not bypass access restrictions or establish safety, age or complete coverage of marked content."
},
"searchPosts": {
"type": "boolean",
"title": "Search Posts",
"default": true,
"description": "Optional, default true. Requests posts whose title or body matches a query, with available text and reported figures. Disable when requesting only other search record types. Turning this off does not remove the internal matching-post step used by comment search. It does not automatically retrieve each post’s comments."
},
"searchUsers": {
"type": "boolean",
"title": "Search Users",
"default": false,
"description": "Optional, default false. Requests Reddit accounts matching the query, with available profile, karma or account-age context. This is a search-type choice, not independent identity verification or a guarantee of full account history."
},
"skipComments": {
"type": "boolean",
"title": "Skip Comments (for direct post URLs)",
"default": false,
"description": "Optional, default false. For a direct post URL, false requests its available comments, possibly including replies; true requests the post without that comment collection. Full threads are not guaranteed. This setting does not disable fetchPostComments or act as a global switch for comment search."
},
"skipCommunity": {
"type": "boolean",
"title": "Skip Community Info",
"default": true,
"description": "Optional, default true. On a subreddit feed, skips the extra community-metadata request. False may add available membership, description or link context. It does not disable searchCommunities or suppress the feed’s post collection."
},
"skipUserPosts": {
"type": "boolean",
"title": "Skip User Posts",
"default": false,
"description": "Optional, default false. For a direct user-profile URL, false also requests available recent posts; true requests profile information without those posts. It does not promise complete history or disable searchUsers."
},
"searchComments": {
"type": "boolean",
"title": "Search Comments",
"default": false,
"description": "Optional, default false. Finds posts matching the query first, then filters comments from those posts for the query. Comments in other posts can be missed, so this is not exhaustive global comment search. It uses more API requests than post search and is separate from fetchPostComments."
},
"ignorestartUrls": {
"type": "boolean",
"title": "Ignore Start URLs",
"default": false,
"description": "Optional, default false. True ignores all startUrls and forces query-only collection, including removing any subreddit-URL search scope. Supply searches for that mode. False leaves the supported URL and query routes available."
},
"fetchPostComments": {
"type": "boolean",
"title": "Fetch Comments for Each Post",
"default": false,
"description": "Optional, default false. True requests available top-level comments alongside each post returned by a feed or keyword search, using an extra API request per post. It does not filter comments for the keyword or guarantee a full reply tree. This is separate from direct-URL skipComments and matching-comment search."
},
"searchCommunities": {
"type": "boolean",
"title": "Search Communities",
"default": false,
"description": "Optional, default false. Requests communities whose name or description matches the query, with available membership figures, description and links. This is separate from the extra feed metadata controlled by skipCommunity, and it does not guarantee every matching community."
}
},
"description": "Optional keyword and URL settings, record-type choices, order, post-time window and comment/profile controls. Supply a usable query or supported Reddit URL for a useful collection. Selected modes and URL types determine the records available.",
"schemaVersion": 1,
"additionalProperties": false
}
},
"additionalProperties": false
}