{
  "data": {
    "id": "axbgmf44shkSpIZy0",
    "actId": "vwOCid7mnPXd0rMTz",
    "userId": "9Um4NEFR7z42j35AD",
    "startedAt": "2026-09-18T02:14:28.990Z",
    "finishedAt": "2026-09-18T02:14:40.528Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 11481,
      "runTimeSecs": 11.481,
      "computeUnits": 0.012756666666666666,
      "imageSizeBytes": 546666496
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Reddit Search Scraper input\",\n  \"description\": \"Find public Reddit posts by query across Reddit or inside named subreddits.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"additionalProperties\": false,\n  \"properties\": {\n    \"query\": {\n      \"sectionCaption\": \"Search\",\n      \"sectionDescription\": \"Enter what to find and where to search.\",\n      \"title\": \"Search query\",\n      \"type\": \"string\",\n      \"description\": \"Enter one keyword or phrase.\",\n      \"editor\": \"textfield\",\n      \"minLength\": 1,\n      \"prefill\": \"open source AI\"\n    },\n    \"subreddits\": {\n      \"title\": \"Subreddits\",\n      \"type\": \"array\",\n      \"description\": \"Optional. Leave empty to search all Reddit, or add names such as LocalLLaMA without r/.\",\n      \"editor\": \"stringList\",\n      \"minItems\": 1,\n      \"maxItems\": 20,\n      \"items\": {\n        \"type\": \"string\",\n        \"minLength\": 1\n      }\n    },\n    \"maxResults\": {\n      \"sectionCaption\": \"Results\",\n      \"sectionDescription\": \"Set one total row cap for the whole run.\",\n      \"title\": \"Maximum posts\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum unique posts to save across the whole run. Default: 25.\",\n      \"editor\": \"number\",\n      \"default\": 25,\n      \"minimum\": 1,\n      \"maximum\": 10000\n    },\n    \"sort\": {\n      \"title\": \"Sort order\",\n      \"type\": \"string\",\n      \"description\": \"Choose Reddit's public search order.\",\n      \"editor\": \"select\",\n      \"default\": \"relevance\",\n      \"enum\": [\n        \"relevance\",\n        \"hot\",\n        \"top\",\n        \"new\",\n        \"comments\"\n      ],\n      \"enumTitles\": [\n        \"Relevance\",\n        \"Hot\",\n        \"Top\",\n        \"New\",\n        \"Most comments\"\n      ]\n    },\n    \"time\": {\n      \"title\": \"Time window\",\n      \"type\": \"string\",\n      \"description\": \"Used by Reddit search. It has the strongest effect with Top and Most comments.\",\n      \"editor\": \"select\",\n      \"default\": \"all\",\n      \"enum\": [\n        \"all\",\n        \"hour\",\n        \"day\",\n        \"week\",\n        \"month\",\n        \"year\"\n      ],\n      \"enumTitles\": [\n        \"All time\",\n        \"Past hour\",\n        \"Past day\",\n        \"Past week\",\n        \"Past month\",\n        \"Past year\"\n      ]\n    }\n  },\n  \"required\": [\n    \"query\"\n  ]\n}",
    "readme": "# Reddit Search Scraper – Posts by Keyword\n\n## 🔎 What does Reddit Search Scraper do?\n\nReddit Search Scraper finds public posts by keyword. Search all of Reddit or\nonly the subreddits you name.\n\nUse it for social listening, topic research, post discovery, lead research,\ntrend checks, and finding post URLs for a comment export.\n\nEach dataset row is one unique Reddit post. It keeps the exact input query,\nrequested subreddit, result rank, stable post ID, canonical URL, title, body,\nauthor, public counts, time, flair, links, and missing-field notes.\n\nThis Actor uses logged-out public Reddit data. It does not use Reddit accounts,\ncookies, OAuth, private groups, or private user data.\n\nWith Reddit Search Scraper, you can:\n\n- 🔍 Search one keyword or phrase per run.\n- 🌐 Search all Reddit or a list of named subreddits.\n- 🧭 Keep the query, search scope, and source rank for every post.\n- 🆔 Export stable post IDs and clean post URLs.\n- 📊 Collect public scores and comment counts when shown.\n- 🚦 See clear status and missing-field notes when data is limited.\n- 📦 Download JSON, JSONL, CSV, Excel, XML, RSS, or HTML.\n\n## ✅ Why choose this Reddit search scraper?\n\n- 🎯 **Check the scope:** every row keeps the query, requested subreddit,\n  matched subreddit, and source rank.\n- 🧾 **Get clean exports:** the stable dataset schema works in JSON, CSV,\n  Excel, and data pipelines.\n- 🚦 **See partial results clearly:** saved rows remain available if a later\n  page stops, and the run summary explains why.\n- 🔑 **Skip Reddit setup:** no Reddit account, OAuth app, API key, or proxy\n  setting is required.\n\n## 📦 What data can I extract?\n\n| Data group | Example fields |\n| --- | --- |\n| 🔍 Search context | `inputQuery`, `requestedSubreddit`, `sort`, `time`, `rank` |\n| 🔗 Post identity | `postId`, `canonicalPostUrl`, `matchedSubreddit` |\n| 🧾 Post details | `title`, `body`, `authorName`, `createdAt`, `flair` |\n| 📊 Public counts | `score`, `commentsCount`, count precision fields |\n| 🖼️ Links | `thumbnailUrl`, `outboundUrl` |\n| 🚦 Availability | `unavailableFields`, `status`, `statusReason` |\n\nMissing public values stay `null`. The Actor does not guess them or turn them\ninto fake zeroes.\n\nRows are saved as each search page is finished. If a later page stops working,\nrows from earlier pages stay in the dataset and the run summary says the result\nis partial.\n\n## ⚙️ Can I use this Actor through an API?\n\nYes. Run it in Apify Console or through the Apify API, SDKs, webhooks,\nschedules, and integrations.\n\n## 🎯 Common uses\n\n| Use case | How the data helps |\n| --- | --- |\n| 🔥 Trend research | Find posts Reddit shows for a topic now. |\n| 👂 Social listening | Watch public posts about a brand, product, or problem. |\n| 🧑 Creator research | Find authors active in a public topic. |\n| 🧱 Data pipelines | Seed a database or a second Actor with stable post URLs. |\n| 💬 Comment research | Send found post URLs to a Reddit comment exporter. |\n\n## 💵 Cost controls\n\nYou pay once for each unique post saved. Empty searches, duplicates, failed\nrequests, and run summaries are free. `maxResults` is the total saved-row cap\nfor the run, and the Actor stops\nwhen it reaches the buyer's maximum charge.\n\nStart with 10 to 25 rows. Larger caps can take more time and use more compute\nand data traffic. A small start fee also applies as shown in the Store pricing\ntable.\n\n## 🚀 How do I use it?\n\n1. Open the Actor in Apify Console.\n2. Enter one search query.\n3. Optionally add subreddit names to narrow the search.\n4. Set the result cap, sort order, and time window.\n5. Click **Start**.\n6. Open **Output** to view or download the rows.\n\n## ⬇️ Input\n\nSearch inside named subreddits:\n\n```json\n{\n    \"query\": \"open source AI\",\n    \"subreddits\": [\"LocalLLaMA\"],\n    \"maxResults\": 25,\n    \"sort\": \"relevance\",\n    \"time\": \"month\"\n}\n```\n\nSearch all Reddit:\n\n```json\n{\n    \"query\": \"small business AI tools\",\n    \"maxResults\": 50,\n    \"sort\": \"new\",\n    \"time\": \"year\"\n}\n```\n\n### 🎛️ Settings\n\n| Setting | What it controls |\n| --- | --- |\n| `query` | One keyword or phrase. |\n| `subreddits` | Optional. Leave empty for all Reddit, or add one to 20 subreddit names. |\n| `maxResults` | Total unique post cap, from 1 to 10,000. |\n| `sort` | Relevance, hot, top, new, or most comments. |\n| `time` | All time, hour, day, week, month, or year. |\n\nConnection recovery is automatic. You do not need to choose or supply a proxy.\n\n## ⬆️ Output sample\n\n```json\n{\n    \"platform\": \"reddit\",\n    \"inputQuery\": \"open source AI\",\n    \"requestedSubreddit\": \"LocalLLaMA\",\n    \"matchedSubreddit\": \"LocalLLaMA\",\n    \"sort\": \"relevance\",\n    \"time\": \"month\",\n    \"rank\": 1,\n    \"postId\": \"abc123\",\n    \"canonicalPostUrl\": \"https://www.reddit.com/r/LocalLLaMA/comments/abc123/example/\",\n    \"title\": \"Example public post\",\n    \"body\": null,\n    \"authorName\": \"example_user\",\n    \"score\": 42,\n    \"scorePrecision\": \"displayed\",\n    \"commentsCount\": 9,\n    \"commentsCountPrecision\": \"displayed\",\n    \"unavailableFields\": [\"body\"],\n    \"status\": \"ok\",\n    \"statusReason\": null,\n    \"observedAt\": \"2026-07-19T20:00:00.000Z\"\n}\n```\n\n## 🧾 Run summary\n\nThe `OUTPUT` record reports the query, searches planned and finished, candidates\nfound, rows saved, billable and free rows, duplicates skipped, the stop reason,\nwhether the run finished, and a result for each search.\n\n## 🚦 Status and availability fields\n\n- `ok`: the post row was read from public Reddit data.\n- `partial`: some requested searches or later pages were unavailable.\n- `valid_empty`: Reddit showed a valid empty search result.\n- `failed`: the requested public search could not be read.\n- `unavailableFields`: lists fields Reddit did not show for that row.\n\n## 🔒 Source boundary\n\nThe Actor reads logged-out public Reddit data only. It does not log in, use user\ncookies, solve account checks, read private subreddits, or collect private data.\n\n## ⚠️ Limits\n\nReddit search results and ranks can change between runs. A cap is a maximum, not\na promise. Narrow queries may return fewer rows. Public counts can be missing or\nchange after collection. Some results can have fewer fields; check\n`unavailableFields`.\n\n## ❓ FAQ\n\n### Does it need a Reddit API key or account?\n\nNo.\n\n### Why did I get fewer rows than my cap?\n\nReddit may have fewer public matches, repeat the same posts, or stop showing\nmore pages. Check `OUTPUT.stopReason` and each search result.\n\n### How are duplicates removed?\n\nThe Actor keeps one row for each stable Reddit post ID across the whole run.\n\n## 🛟 Support\n\nInclude the Apify run ID, a small input sample, what you expected, and what you\nreceived.\n\n## 🔗 Related Actors\n\nContinue the same workflow on this platform or compare public data across\nplatforms.\n\n### Continue on Reddit\n\n- [Reddit Comments Scraper](https://apify.com/chronometrica/reddit-comments-scraper)\n  — collect public thread comments, replies, authors, scores, and dates.\n\n### Compare search across sources\n\n- [Google Search Scraper](https://apify.com/chronometrica/google-search-scraper)\n  — collect public web results from Google, Bing, Brave, and DuckDuckGo.\n- [Instagram Search Scraper](https://apify.com/chronometrica/instagram-search-scraper)\n  — find public Reels and metrics by keyword.\n- [TikTok Search Scraper](https://apify.com/chronometrica/tiktok-search-scraper)\n  — find public videos, creators, and metrics by keyword.\n- [YouTube Search Scraper](https://apify.com/chronometrica/youtube-search-scraper)\n  — find public videos, Shorts, channels, and metrics by keyword.\n- [X Search & Discovery Scraper](https://apify.com/chronometrica/x-search-scraper)\n  — find public posts and profiles by keyword.\n",
    "changelog": "# Changelog\n\n## 2.0.2 - 2026-09-17\n\n- Restore public subreddit search results from Reddit RSS feeds.\n\n## 2.0.1 - 2026-08-11\n\n- Added public Reddit RSS recovery for global searches.\n- Kept generic Reddit pages separate from valid empty results.\n- Added source and stop states to the run summary.\n\n## 2.0.0 - 2026-07-26\n\n- Changed the input to one `query` string per run.\n- Rejected invalid subreddit names instead of changing the search scope.\n- Saved finished rows before starting the next subreddit.\n- Added run checkpoints and clearer search status messages.\n\n## 1.0.0 - 2026-07-20\n\n- First public release.\n- Added simple inputs and structured results.\n- Added clear limits and run status messages.\n",
    "actorDefinition": {
      "$schema": "https://apify.com/schemas/v1/actor.ide.json",
      "actorSpecification": 1,
      "name": "reddit-search-scraper",
      "title": "Reddit Search Scraper – Posts by Keyword",
      "description": "Search public Reddit posts by keyword across all Reddit or exact subreddits. Export clean post text, authors, scores, comment counts, URLs, source rank, and stable IDs—no Reddit login or API key.",
      "version": "2.0",
      "buildTag": "latest",
      "defaultRunOptions": {
        "build": "latest",
        "timeoutSecs": 900,
        "memoryMbytes": 256
      },
      "exampleRunInput": {
        "contentType": "application/json; charset=utf-8",
        "body": "{\n  \"query\": \"open source AI\",\n  \"maxResults\": 10,\n  \"sort\": \"relevance\",\n  \"time\": \"month\"\n}"
      },
      "input": {
        "title": "Reddit Search Scraper input",
        "description": "Find public Reddit posts by query across Reddit or inside named subreddits.",
        "type": "object",
        "schemaVersion": 1,
        "additionalProperties": false,
        "properties": {
          "query": {
            "sectionCaption": "Search",
            "sectionDescription": "Enter what to find and where to search.",
            "title": "Search query",
            "type": "string",
            "description": "Enter one keyword or phrase.",
            "editor": "textfield",
            "minLength": 1,
            "prefill": "open source AI"
          },
          "subreddits": {
            "title": "Subreddits",
            "type": "array",
            "description": "Optional. Leave empty to search all Reddit, or add names such as LocalLLaMA without r/.",
            "editor": "stringList",
            "minItems": 1,
            "maxItems": 20,
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "maxResults": {
            "sectionCaption": "Results",
            "sectionDescription": "Set one total row cap for the whole run.",
            "title": "Maximum posts",
            "type": "integer",
            "description": "Maximum unique posts to save across the whole run. Default: 25.",
            "editor": "number",
            "default": 25,
            "minimum": 1,
            "maximum": 10000
          },
          "sort": {
            "title": "Sort order",
            "type": "string",
            "description": "Choose Reddit's public search order.",
            "editor": "select",
            "default": "relevance",
            "enum": [
              "relevance",
              "hot",
              "top",
              "new",
              "comments"
            ],
            "enumTitles": [
              "Relevance",
              "Hot",
              "Top",
              "New",
              "Most comments"
            ]
          },
          "time": {
            "title": "Time window",
            "type": "string",
            "description": "Used by Reddit search. It has the strongest effect with Top and Most comments.",
            "editor": "select",
            "default": "all",
            "enum": [
              "all",
              "hour",
              "day",
              "week",
              "month",
              "year"
            ],
            "enumTitles": [
              "All time",
              "Past hour",
              "Past day",
              "Past week",
              "Past month",
              "Past year"
            ]
          }
        },
        "required": [
          "query"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Reddit Search Scraper output",
        "description": "Reddit post rows are stored in the default dataset. OUTPUT contains a clear summary of the searches and saved posts.",
        "properties": {
          "results": {
            "type": "string",
            "title": "Search results",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          },
          "output": {
            "type": "string",
            "title": "Run summary",
            "template": "{{links.apiDefaultKeyValueStoreUrl}}/records/OUTPUT"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "fields": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "platform": {
                "type": "string"
              },
              "inputQuery": {
                "type": "string"
              },
              "requestedSubreddit": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "matchedSubreddit": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "sort": {
                "type": "string"
              },
              "time": {
                "type": "string"
              },
              "rank": {
                "type": "integer"
              },
              "postId": {
                "type": "string"
              },
              "canonicalPostUrl": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "body": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "authorName": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "score": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "scorePrecision": {
                "type": [
                  "string",
                  "null"
                ],
                "enum": [
                  "displayed",
                  null
                ]
              },
              "upvoteRatio": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "commentsCount": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "commentsCountPrecision": {
                "type": [
                  "string",
                  "null"
                ],
                "enum": [
                  "displayed",
                  null
                ]
              },
              "createdAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "isNsfw": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "isSpoiler": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "flair": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "thumbnailUrl": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "outboundUrl": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "unavailableFields": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "status": {
                "type": "string",
                "enum": [
                  "ok"
                ]
              },
              "statusReason": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "observedAt": {
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "platform",
              "inputQuery",
              "sort",
              "time",
              "rank",
              "postId",
              "canonicalPostUrl",
              "title",
              "unavailableFields",
              "status",
              "observedAt"
            ]
          },
          "views": {
            "overview": {
              "title": "Reddit posts",
              "description": "One row per public Reddit post found by a search.",
              "transformation": {
                "fields": [
                  "platform",
                  "inputQuery",
                  "requestedSubreddit",
                  "matchedSubreddit",
                  "sort",
                  "time",
                  "rank",
                  "postId",
                  "canonicalPostUrl",
                  "title",
                  "body",
                  "authorName",
                  "score",
                  "scorePrecision",
                  "upvoteRatio",
                  "commentsCount",
                  "commentsCountPrecision",
                  "createdAt",
                  "isNsfw",
                  "isSpoiler",
                  "flair",
                  "thumbnailUrl",
                  "outboundUrl",
                  "unavailableFields",
                  "status",
                  "statusReason",
                  "observedAt"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "inputQuery": {
                    "label": "Query",
                    "format": "text"
                  },
                  "requestedSubreddit": {
                    "label": "Requested subreddit",
                    "format": "text"
                  },
                  "matchedSubreddit": {
                    "label": "Matched subreddit",
                    "format": "text"
                  },
                  "rank": {
                    "label": "Rank",
                    "format": "number"
                  },
                  "canonicalPostUrl": {
                    "label": "Post",
                    "format": "link"
                  },
                  "title": {
                    "label": "Title",
                    "format": "text"
                  },
                  "authorName": {
                    "label": "Author",
                    "format": "text"
                  },
                  "score": {
                    "label": "Score",
                    "format": "number"
                  },
                  "commentsCount": {
                    "label": "Comments",
                    "format": "number"
                  },
                  "createdAt": {
                    "label": "Created",
                    "format": "date"
                  },
                  "observedAt": {
                    "label": "Observed",
                    "format": "date"
                  }
                }
              }
            }
          }
        }
      },
      "dockerfile": "../Dockerfile",
      "readme": "# Reddit Search Scraper – Posts by Keyword\n\n## 🔎 What does Reddit Search Scraper do?\n\nReddit Search Scraper finds public posts by keyword. Search all of Reddit or\nonly the subreddits you name.\n\nUse it for social listening, topic research, post discovery, lead research,\ntrend checks, and finding post URLs for a comment export.\n\nEach dataset row is one unique Reddit post. It keeps the exact input query,\nrequested subreddit, result rank, stable post ID, canonical URL, title, body,\nauthor, public counts, time, flair, links, and missing-field notes.\n\nThis Actor uses logged-out public Reddit data. It does not use Reddit accounts,\ncookies, OAuth, private groups, or private user data.\n\nWith Reddit Search Scraper, you can:\n\n- 🔍 Search one keyword or phrase per run.\n- 🌐 Search all Reddit or a list of named subreddits.\n- 🧭 Keep the query, search scope, and source rank for every post.\n- 🆔 Export stable post IDs and clean post URLs.\n- 📊 Collect public scores and comment counts when shown.\n- 🚦 See clear status and missing-field notes when data is limited.\n- 📦 Download JSON, JSONL, CSV, Excel, XML, RSS, or HTML.\n\n## ✅ Why choose this Reddit search scraper?\n\n- 🎯 **Check the scope:** every row keeps the query, requested subreddit,\n  matched subreddit, and source rank.\n- 🧾 **Get clean exports:** the stable dataset schema works in JSON, CSV,\n  Excel, and data pipelines.\n- 🚦 **See partial results clearly:** saved rows remain available if a later\n  page stops, and the run summary explains why.\n- 🔑 **Skip Reddit setup:** no Reddit account, OAuth app, API key, or proxy\n  setting is required.\n\n## 📦 What data can I extract?\n\n| Data group | Example fields |\n| --- | --- |\n| 🔍 Search context | `inputQuery`, `requestedSubreddit`, `sort`, `time`, `rank` |\n| 🔗 Post identity | `postId`, `canonicalPostUrl`, `matchedSubreddit` |\n| 🧾 Post details | `title`, `body`, `authorName`, `createdAt`, `flair` |\n| 📊 Public counts | `score`, `commentsCount`, count precision fields |\n| 🖼️ Links | `thumbnailUrl`, `outboundUrl` |\n| 🚦 Availability | `unavailableFields`, `status`, `statusReason` |\n\nMissing public values stay `null`. The Actor does not guess them or turn them\ninto fake zeroes.\n\nRows are saved as each search page is finished. If a later page stops working,\nrows from earlier pages stay in the dataset and the run summary says the result\nis partial.\n\n## ⚙️ Can I use this Actor through an API?\n\nYes. Run it in Apify Console or through the Apify API, SDKs, webhooks,\nschedules, and integrations.\n\n## 🎯 Common uses\n\n| Use case | How the data helps |\n| --- | --- |\n| 🔥 Trend research | Find posts Reddit shows for a topic now. |\n| 👂 Social listening | Watch public posts about a brand, product, or problem. |\n| 🧑 Creator research | Find authors active in a public topic. |\n| 🧱 Data pipelines | Seed a database or a second Actor with stable post URLs. |\n| 💬 Comment research | Send found post URLs to a Reddit comment exporter. |\n\n## 💵 Cost controls\n\nYou pay once for each unique post saved. Empty searches, duplicates, failed\nrequests, and run summaries are free. `maxResults` is the total saved-row cap\nfor the run, and the Actor stops\nwhen it reaches the buyer's maximum charge.\n\nStart with 10 to 25 rows. Larger caps can take more time and use more compute\nand data traffic. A small start fee also applies as shown in the Store pricing\ntable.\n\n## 🚀 How do I use it?\n\n1. Open the Actor in Apify Console.\n2. Enter one search query.\n3. Optionally add subreddit names to narrow the search.\n4. Set the result cap, sort order, and time window.\n5. Click **Start**.\n6. Open **Output** to view or download the rows.\n\n## ⬇️ Input\n\nSearch inside named subreddits:\n\n```json\n{\n    \"query\": \"open source AI\",\n    \"subreddits\": [\"LocalLLaMA\"],\n    \"maxResults\": 25,\n    \"sort\": \"relevance\",\n    \"time\": \"month\"\n}\n```\n\nSearch all Reddit:\n\n```json\n{\n    \"query\": \"small business AI tools\",\n    \"maxResults\": 50,\n    \"sort\": \"new\",\n    \"time\": \"year\"\n}\n```\n\n### 🎛️ Settings\n\n| Setting | What it controls |\n| --- | --- |\n| `query` | One keyword or phrase. |\n| `subreddits` | Optional. Leave empty for all Reddit, or add one to 20 subreddit names. |\n| `maxResults` | Total unique post cap, from 1 to 10,000. |\n| `sort` | Relevance, hot, top, new, or most comments. |\n| `time` | All time, hour, day, week, month, or year. |\n\nConnection recovery is automatic. You do not need to choose or supply a proxy.\n\n## ⬆️ Output sample\n\n```json\n{\n    \"platform\": \"reddit\",\n    \"inputQuery\": \"open source AI\",\n    \"requestedSubreddit\": \"LocalLLaMA\",\n    \"matchedSubreddit\": \"LocalLLaMA\",\n    \"sort\": \"relevance\",\n    \"time\": \"month\",\n    \"rank\": 1,\n    \"postId\": \"abc123\",\n    \"canonicalPostUrl\": \"https://www.reddit.com/r/LocalLLaMA/comments/abc123/example/\",\n    \"title\": \"Example public post\",\n    \"body\": null,\n    \"authorName\": \"example_user\",\n    \"score\": 42,\n    \"scorePrecision\": \"displayed\",\n    \"commentsCount\": 9,\n    \"commentsCountPrecision\": \"displayed\",\n    \"unavailableFields\": [\"body\"],\n    \"status\": \"ok\",\n    \"statusReason\": null,\n    \"observedAt\": \"2026-07-19T20:00:00.000Z\"\n}\n```\n\n## 🧾 Run summary\n\nThe `OUTPUT` record reports the query, searches planned and finished, candidates\nfound, rows saved, billable and free rows, duplicates skipped, the stop reason,\nwhether the run finished, and a result for each search.\n\n## 🚦 Status and availability fields\n\n- `ok`: the post row was read from public Reddit data.\n- `partial`: some requested searches or later pages were unavailable.\n- `valid_empty`: Reddit showed a valid empty search result.\n- `failed`: the requested public search could not be read.\n- `unavailableFields`: lists fields Reddit did not show for that row.\n\n## 🔒 Source boundary\n\nThe Actor reads logged-out public Reddit data only. It does not log in, use user\ncookies, solve account checks, read private subreddits, or collect private data.\n\n## ⚠️ Limits\n\nReddit search results and ranks can change between runs. A cap is a maximum, not\na promise. Narrow queries may return fewer rows. Public counts can be missing or\nchange after collection. Some results can have fewer fields; check\n`unavailableFields`.\n\n## ❓ FAQ\n\n### Does it need a Reddit API key or account?\n\nNo.\n\n### Why did I get fewer rows than my cap?\n\nReddit may have fewer public matches, repeat the same posts, or stop showing\nmore pages. Check `OUTPUT.stopReason` and each search result.\n\n### How are duplicates removed?\n\nThe Actor keeps one row for each stable Reddit post ID across the whole run.\n\n## 🛟 Support\n\nInclude the Apify run ID, a small input sample, what you expected, and what you\nreceived.\n\n## 🔗 Related Actors\n\nContinue the same workflow on this platform or compare public data across\nplatforms.\n\n### Continue on Reddit\n\n- [Reddit Comments Scraper](https://apify.com/chronometrica/reddit-comments-scraper)\n  — collect public thread comments, replies, authors, scores, and dates.\n\n### Compare search across sources\n\n- [Google Search Scraper](https://apify.com/chronometrica/google-search-scraper)\n  — collect public web results from Google, Bing, Brave, and DuckDuckGo.\n- [Instagram Search Scraper](https://apify.com/chronometrica/instagram-search-scraper)\n  — find public Reels and metrics by keyword.\n- [TikTok Search Scraper](https://apify.com/chronometrica/tiktok-search-scraper)\n  — find public videos, creators, and metrics by keyword.\n- [YouTube Search Scraper](https://apify.com/chronometrica/youtube-search-scraper)\n  — find public videos, Shorts, channels, and metrics by keyword.\n- [X Search & Discovery Scraper](https://apify.com/chronometrica/x-search-scraper)\n  — find public posts and profiles by keyword.\n",
      "changelog": "# Changelog\n\n## 2.0.2 - 2026-09-17\n\n- Restore public subreddit search results from Reddit RSS feeds.\n\n## 2.0.1 - 2026-08-11\n\n- Added public Reddit RSS recovery for global searches.\n- Kept generic Reddit pages separate from valid empty results.\n- Added source and stop states to the run summary.\n\n## 2.0.0 - 2026-07-26\n\n- Changed the input to one `query` string per run.\n- Rejected invalid subreddit names instead of changing the search scope.\n- Saved finished rows before starting the next subreddit.\n- Added run checkpoints and clearer search status messages.\n\n## 1.0.0 - 2026-07-20\n\n- First public release.\n- Added simple inputs and structured results.\n- Added clear limits and run status messages.\n"
    },
    "buildNumber": "2.0.6",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "release-candidate",
      "versionNumber": "2.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.012756666666666666
    }
  }
}