Reddit Search Scraper — Posts by Keyword, Score & Date avatar

Reddit Search Scraper — Posts by Keyword, Score & Date

Pricing

from $2.00 / 1,000 per post returneds

Go to Apify Store
Reddit Search Scraper — Posts by Keyword, Score & Date

Reddit Search Scraper — Posts by Keyword, Score & Date

Search Reddit by keyword — site-wide or inside chosen subreddits — and get posts with real score, upvote ratio, comment count, author, flair, selftext and timestamps from Reddit's own JSON. Sort by relevance, new or top; date window; strict keyword match; optional top comments. No login, no API key.

Pricing

from $2.00 / 1,000 per post returneds

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

5 days ago

Last modified

Share

Search Reddit by keyword — across all of Reddit or inside the subreddits you name — and get one clean row per post: id, subreddit, subreddit_subscribers, title, author, selftext, url, domain, permalink, score, ups, upvote_ratio, num_comments, num_crossposts, created_iso, edited, over_18, locked, stickied, link_flair_text, post_hint, thumbnail, plus the query, subreddit, sort and time range it was found under. Optionally nest each post's top comments inside the row. Every row is read from Reddit's own JSON, so score and num_comments are the real numbers — 100% filled on 100/100 rows of the shipped default run, with 98 of 100 scores above 0 — not the zeros an RSS-only scraper has to ship. No login, no Reddit account, no API key, no CAPTCHA solving.

Scope: Reddit stops paging a single search at roughly 250 results — measured live on the Apify platform on 2026-08-22: one unbounded site-wide search for "web scraping" returned 237 distinct posts across 3 pages and then ran out (twice — once locally, once on the platform, same 237). That ceiling is Reddit's, not this Actor's; the way past it is fan-out — 5 queries × 5 subreddits, unbounded, delivered 3,577 distinct posts in 76 seconds on the platform — which this Actor does for you, de-duplicated before billing.

{
"queries": ["web scraping"],
"sort": "relevance",
"time": "all",
"maxItems": 100
}

Click Try for free and hit Start — that block is literally the input the Actor ships with. It returns 100 posts for $0.20. A run on those shipped defaults on the Apify platform (2026-08-22) returned 100 rows in 21 seconds, 100 distinct posts, charged exactly 100, with score 100%, num_comments 100%, flair 61%, thumbnail 40%. Every field in the sample row below came out of a run like that one.


The wedge: real scores, a date window, strict matching, and comments that only cost you when they exist

Three things the cheap Reddit search scrapers on the Store cannot do, and one they do differently:

  • Real score / upvote_ratio / num_comments on every JSON row. Reddit restricted its public paths in 2025, and a scraper that falls back to Reddit's RSS "recovery" pages cannot fill them — an Atom entry carries no score, upvote ratio or comment count at source. This Actor clears Reddit's browser challenge in a real Chromium session and then reads /search.json the way Reddit's own front end does, so the engagement numbers are the live ones. Measured on the shipped default: score 100%, 98/100 above zero; num_comments 100%, 100/100 above zero; upvote_ratio 100%.
  • A date window on top of Reddit's time filter. Reddit search has t=day|week|month|year|all and nothing finer. dateFrom / dateTo are applied to every result's created_utc before it is billed, and with sort: "new" the Actor stops paging the moment a whole page is older than dateFrom — so a "last 30 days in r/learnpython" monitor costs you exactly the rows in that window. Measured: a 30-day window over 4 searches removed 47 out-of-window posts, none of them charged.
  • Strict keyword match. Reddit's search is fuzzy and happily returns posts containing none of your words. strictSearch: true keeps only posts whose title + selftext contain every word of the query (case-insensitive; quotes and common stop-words are ignored). Rows it removes are never billed. Do not combine it with Reddit's search operators-selenium or title:foo are matched as literal words, so a query using them will filter to zero.
  • Comments as a success-billed add-on, nested in the post row. Turn on includeTopComments and each post gains topComments[] (id, author, body, score, created time, depth, permalink). The comments-enriched event is charged per post only when at least one comment actually came back — a post with zero comments, or a thread Reddit would not serve, costs nothing extra. Measured: 44 posts, 42 enriched and charged, 2 not. The dataset stays one record type — one row per post, comments inside it — so your CSV never mixes post rows with comment rows.

Read this before you buy rows

  1. Reddit caps one search listing at ~250 posts. Measured 237 on "web scraping" site-wide, all time. If you ask for 1,000 from one query you will get ~240 and a clean SUCCEEDED run, not an error — Reddit simply stops handing out pages and the Actor stops with it. To get more, add queries (synonyms, phrasings) and/or subreddits — every query × subreddit pair is its own 250-post listing, and the Actor de-duplicates across all of them before billing.
  2. score is a snapshot, and Reddit fuzzes it. Reddit deliberately jitters vote counts by a few points on every read to defeat vote manipulation. Two runs minutes apart can differ by ±1–3 on the same post. upvote_ratio is the stabler engagement signal.
  3. dateFrom / dateTo filter AFTER Reddit answers. Reddit has no exact-date operator, so the Actor still pays Reddit one request per 100 results and then keeps the in-window rows. Narrow windows over a popular keyword therefore cost time, not money — use sort: "new" so the walk stops early, and time to pre-narrow what Reddit returns.
  4. transport: "rss" rows have no score. If the browser rung cannot open a session at all (proxy outage, interstitial not clearing), the Actor falls back to Reddit's Atom search feed for that search. Those rows carry transport: "rss" and keep only id, name, title, author, subreddit, subreddit_prefixed, permalink, created_utc/created_iso and (on text posts) selftext. Everything else is null, never a fake 0 — including score, ups, upvote_ratio, num_comments, subreddit_subscribers, url, domain, over_18, locked, flair and thumbnail. Because over_18 is null there, the NSFW filter cannot drop anything on this rung. The shipped default run used the JSON rung for 100/100 rows; the fallback exists so a monitor keeps delivering titles and permalinks on a bad day. Set allowRssFallback: false if you would rather receive nothing than rows without scores.
  5. selftext is empty ("") for link posts, not null. 2026-08-22 default run: 100% of rows carry the field, 74% have non-empty text; link posts have an empty string and is_self: false. Filter on is_self.

What you get

One row per unique post, de-duplicated run-wide on Reddit's t3_ fullname. Timestamps are UTC (created_utc seconds + created_iso ISO-8601). edited is false, or the ISO time of the last edit.

GroupFieldsExample
Identityid, name, permalink, url, domain, is_self1tbuq4g · t3_1tbuq4g · asadfix.github.io
Wheresubreddit, subreddit_prefixed, subreddit_subscriberswebscraping · r/webscraping · 101668
Contenttitle, selftext, author, author_fullname, link_flair_text, post_hint, thumbnail, is_videoThe Complete Web Scraping & Anti-Bot Bypass Guide 2026 · pimterry · Getting started 🌱
Engagementscore, ups, upvote_ratio, num_comments, num_crossposts, total_awards_received136 · 0.89 · 53
Timecreated_utc, created_iso, edited1778665169 · 2026-05-13T09:39:29.000Z
Flagsover_18, spoiler, stickied, locked, distinguishedfalse
Comments (optional)topComments[] (id, name, parent_id, depth, author, body, score, created_iso, is_submitter, permalink, post_id), commentsEnriched6.5 comments per post at maxCommentsPerPost: 10 (platform run 4LOznUvChdyGuVfN6, 30 posts)
Provenancesearch_query, search_subreddit, search_sort, search_time, transport, scraped_atweb scraping · null (site-wide) · relevance · all · json

The dataset ships with a saved table view (title, subreddit, author, score, upvote ratio, comments, posted time, flair, query, transport, permalink, link).


Field fill — measured on the shipped default run

100 posts, site-wide "web scraping", sort relevance, all time — platform run PGCleYzCpe5YwEybM, 2026-08-22. Sorted by fill, so the sparse fields are impossible to miss.

FieldFillNotes
id / name / permalink / url / domain100%
subreddit / subreddit_prefixed / subreddit_subscribers100%57 distinct subreddits in the 100 rows
title / author / author_fullname100%[deleted] authors are still a string
selftext / is_self100% present · 74% non-emptyempty string on link posts — see gotcha 5
score / ups / upvote_ratio100%98/100 scores above 0 — the field the RSS scrapers cannot fill
num_comments100%100/100 above 0
num_crossposts / total_awards_received100%real zeros are zeros
created_utc / created_iso / edited100%
over_18 / spoiler / stickied / locked / is_video100%booleans
search_query / search_sort / search_time / transport / scraped_at100%provenance
link_flair_text61%only where the subreddit uses flair
post_hint55%Reddit's media-type hint; absent on plain text posts
thumbnail40%only link/image posts carry a preview
search_subreddit0% on a site-wide runnull by design when you did not restrict to subreddits; 100% on a subreddit-restricted run
distinguished0%only moderator/admin posts carry it — a real rarity, not a gap
topComments0% with the add-on off30/30 posts (100%) filled on the platform comments run; 42/44 (95%) on a strict 30-day window locally

Plan against that table and remember it is one keyword. Every run prints its own counts in the log — pages fetched per rung, duplicates dropped, rows removed by each filter, and the uniqueness verification.


How to run it

1. Site-wide keyword search (the usual choice)

{
"queries": ["web scraping", "\"headless browser\" -selenium"],
"sort": "relevance",
"time": "year",
"maxItems": 300
}

Reddit's own search syntax works inside a query: quotes for an exact phrase, OR, a leading - to exclude, and field prefixes (title:, author:, subreddit:, flair:, self:yes). Each query is its own search; a post matching two of them is returned and billed once.

2. Inside chosen subreddits

{
"queries": ["pricing", "refund"],
"subreddits": ["SaaS", "startups", "r/smallbusiness"],
"sort": "top",
"time": "month",
"maxItemsPerQuery": 50,
"maxItems": 300
}

Every query is run inside every subreddit (2 × 3 = 6 searches), each with its own 250-post ceiling. maxItemsPerQuery stops one broad query from spending the whole budget before the others run.

3. Keyword monitor — last 30 days, strict, newest first

{
"queries": ["web scraping"],
"subreddits": ["webscraping", "learnpython"],
"sort": "new",
"dateFrom": "2026-07-23",
"strictSearch": true,
"maxItems": 200
}

A 2-query × 2-subreddit shape like this, measured locally on 2026-08-22: 44 posts delivered, 47 out-of-window posts and 4 duplicates dropped before billing (with comments on). Save it as a Task, attach a weekly Schedule, and move dateFrom forward each week.

4. Posts with their top comments

{
"queries": ["best CRM for small business"],
"includeTopComments": true,
"maxCommentsPerPost": 10,
"maxItems": 30
}

One extra Reddit request per post; roughly doubles run time. Charged on comments-enriched only for posts where comments actually came back. This exact input on the platform (30 posts): 38 seconds, 30 rows, 30/30 threads read, charged post-scraped 30 + comments-enriched 30.

Scheduling and integrations

Save the input as a Task (Console → the Actor → Save as Task), then attach an Apify Schedule. The dataset is available over the REST API and through the standard Apify integrations (Zapier, Make, n8n, webhooks, MCP) like any other Actor. From the API:

curl -X POST "https://api.apify.com/v2/acts/scrapersdelight~reddit-search-scraper/runs?token=YOUR_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"queries":["web scraping"],"subreddits":["webscraping"],"sort":"new","maxItems":100}'

Sample row

A real row from the shipped-default run, captured 2026-08-22 17:25 UTC.

{
"id": "1tbuq4g",
"name": "t3_1tbuq4g",
"subreddit": "webscraping",
"subreddit_prefixed": "r/webscraping",
"subreddit_subscribers": 101668,
"title": "The Complete Web Scraping & Anti-Bot Bypass Guide 2026",
"author": "pimterry",
"author_fullname": "t2_3vf8x",
"selftext": "",
"is_self": false,
"url": "https://asadfix.github.io/scraping-guide/",
"domain": "asadfix.github.io",
"permalink": "https://www.reddit.com/r/webscraping/comments/1tbuq4g/the_complete_web_scraping_antibot_bypass_guide/",
"score": 136,
"ups": 136,
"upvote_ratio": 0.89,
"num_comments": 53,
"num_crossposts": 0,
"total_awards_received": 0,
"created_utc": 1778665169,
"created_iso": "2026-05-13T09:39:29.000Z",
"edited": false,
"over_18": false,
"spoiler": false,
"stickied": false,
"locked": false,
"is_video": false,
"link_flair_text": "Getting started 🌱",
"post_hint": "link",
"thumbnail": "https://external-preview.redd.it/OaTdPqed-x064p4EFyiLkNhdfqOJOqbTEScgdj84rqI.png?width=140&height=73&auto=webp&s=614026ad6ac9383ed04d84be45ec98ca40c5a578",
"distinguished": null,
"search_query": "web scraping",
"search_subreddit": null,
"search_sort": "relevance",
"search_time": "all",
"transport": "json",
"topComments": [],
"commentsEnriched": false,
"scraped_at": "2026-08-22T17:25:13.447Z"
}

Fields people misread:

  • score and ups are the same number on a post (Reddit no longer exposes downvotes); upvote_ratio is the share of upvotes, 0–1.
  • search_subreddit is null on a site-wide search and the subreddit name on a restricted one; subreddit is always where the post actually lives.
  • transport is "json" for a full row and "rss" for a fallback row with null scores.

Input

FieldTypeDefaultWhat it does
🔎 What to search
queriesstring list["web scraping"]One keyword phrase per line; Reddit search syntax allowed. Empty = the documented sample.
subredditsstring list[]Restrict every query to each listed subreddit. Empty = all of Reddit.
sortselectrelevancerelevance · new · top · hot · comments.
timeselectallReddit's server-side t= filter.
🎚️ Filters
dateFrom / dateTostring""YYYY-MM-DD (UTC) or ISO-8601; applied to created_utc before billing.
strictSearchbooleanfalseKeep only posts whose title + selftext contain every query word.
includeNsfwbooleantrueUncheck to exclude over-18 posts.
💬 Comments
includeTopCommentsbooleanfalseNest each post's top comments into topComments[].
maxCommentsPerPostinteger101–100, Top order, top-level + direct replies.
💷 Limits & cost
maxItemsinteger100Your hard cost cap. 100 = $0.20, 1,000 = $2.00. 0 = no limit (internally capped at 100,000).
maxItemsPerQueryinteger100Cap per query × subreddit search. 0 = unlimited (Reddit stops at ~250 anyway).
⚙️ Advanced
allowRssFallbackbooleantrueFall back to Reddit's Atom feed (rows without scores) when the browser rung cannot open.
proxyConfigurationproxyApify RESIDENTIALRequired for the browser rung — see the ladder below.
requestDelayMsinteger700Pacing between Reddit JSON calls.

Pricing

$0.002 per post returned — $2 per 1,000, charged on the post-scraped event. $0.003 per post comment-enriched, charged on comments-enriched only when the add-on is on and at least one comment was returned for that post. No monthly fee from this Actor.

RunPostsCost
The shipped default (100 posts)100$0.20
One keyword to Reddit's ceiling~240$0.48
4 queries × 5 subreddits, 50 each1,000$2.00
100 posts + top comments on all of them100 + 100$0.50
  • You are charged for rows delivered. Duplicates across queries and subreddits are dropped before billing; posts removed by the date window, strict match or NSFW filter are never charged.
  • Charged first, then pushed — at a budget cap (maxTotalChargeUsd or a free-tier balance) you get whole rows and stop, never a half-billed dataset. The Actor reads your remaining charge headroom at startup and stops fetching at the affordable count, so a capped run does not burn compute on rows it cannot deliver.
  • Comments are never charged for a post that got none.

Why $0.002 and not the $0.001 floor: this Actor runs a real browser on residential IPs per run to get real scores. The cheapest Reddit scrapers in the lane sit at $0.00099–$0.00149 (checked 2026-08-22); some of them read Reddit's RSS pages, where no score is available at source.


Honest limits

  • ~250 posts per search is Reddit's ceiling, measured at 237 on 2026-08-22. Fan out across queries and subreddits to go wider; there is no input that raises the per-listing limit.
  • Scores are fuzzed by Reddit by a few points on every read. Treat them as ±3.
  • No comment pagination. topComments is the first maxCommentsPerPost comments in Top order (top-level + direct replies). "Load more" continuations are not followed; a 2,000-comment thread yields at most 100 here.
  • RSS fallback rows have null engagement fields (transport: "rss"). The log and the status message say when the fallback was used and for how many searches.
  • No user/profile data beyond the author handle. author and author_fullname are what Reddit prints on the post; nothing is looked up about the person.
  • Residential proxy is required for the JSON rung. Datacenter IPs get stuck on Reddit's interstitial (4/20 on the sibling actor); raw HTTP is 403 on every IP tier. The default is already correct.
  • robots.txt. Reddit's robots.txt (fetched 2026-08-22) reads, verbatim: User-agent: * / Disallow: /, and points to Reddit's Public Content Policy. This Actor reads only what a logged-out visitor sees and nothing behind a login; whether and how you may use Reddit content commercially is governed by that policy and Reddit's User Agreement, and is your responsibility.

How it works, and what it cost to make reliable

Reddit refuses plain HTTP to /search.json with its own "snooserv" challenge page from every IP tier — a client-execution check, not IP reputation. So the Actor launches one real Chromium per run with a desktop User-Agent, lands on reddit.com/search/?q=…, lets the js_challenge redirect settle (~11 s), and then calls Reddit's own /search.json (and /r/<sub>/search.json?restrict_sr=1, and /comments/<id>/.json) with an in-page fetch() — same origin, so the minted challenge cookies ride along. One browser, then many cheap JSON calls. If a fetch keeps failing mid-session the tab is navigated straight to the JSON URL as a second rung; if the session is dead it is re-minted once on a fresh residential IP; if no session can be opened at all, the Atom feed rung takes over.

Transport ladder, measured 2026-08-22 through Apify (search endpoints only):

Rung/search.json (raw HTTP)old.reddit.com/search HTML/search.rss (Atom)Chromium + in-page /search.json
Direct, home IP0/3 (403)0/6 (challenge)
Apify datacenter0/5 (403)0/7 ("Blocked")3/3 (22 entries, no score)not viable (sibling actor: 4/20 clear the interstitial)
Apify RESIDENTIAL0/5 (403)2/3 with rows3/3 (22 entries, no score)94/94 search pages, 30/30 comment threads across 8 platform runs (below)

Sustained load, all on the Apify platform through RESIDENTIAL, 2026-08-22, build 0.1.2:

RunInputResult
PGCleYzCpe5YwEybMthe shipped default100 rows, 1 page, 21 s
IjYGVDXcGD8DZJwV2{} (bare input → documented sample)100 rows, 1 page, 23 s
sWmNPGsIxfo00IDAe{"helloWorld":123}100 rows, 1 page, 23 s
4LOznUvChdyGuVfN630 posts + top comments30 rows, 30/30 threads, 38 s
5kWkPLhqfTepbALFgcharge cap $0.0115 rows shipped = 5 billed, 40 s
cjZdZ6SEFV5bFlJKN5 queries × 5 subreddits, unbounded, 120 s timeout2,780 rows, 38 pages, 80 s, clean budget stop
zANrxAQKoH1gnMvhlsame, again3,577 rows, 48 pages, 76 s, clean budget stop
u9D7cKnobXM23ZbXk1 query unbounded, 120 s timeout237 rows (Reddit's ceiling), 3 pages, 40 s

94 / 94 JSON search pages answered (100%), 0 RSS fallbacks, 8 / 8 runs SUCCEEDED. One residential exit refused the proxy tunnel on u9D7cKnobXM23ZbXk (ERR_TUNNEL_CONNECTION_FAILED); the session was re-minted on a fresh IP and the run completed — that retry is the reason the number is 8/8 and not 7/8. Peak memory 337–665 MB of the 2,048 MB the Actor declares.

The one failure seen in testing was ours, not Reddit's: build 0.1.1 shipped an unpinned Playwright that did not match the container's bundled Chromium, so no browser could launch — and the RSS fallback rung carried all three proof runs to SUCCEEDED with 22 rows each (G3VoWaRajZUPl8qsL, oSOPNIQkpcelyhMrU, 5mbuHbRdjRPhKj06N, each labelled "1 search via the RSS fallback rung" in its status message). That is exactly what the rung is for; 0.1.2 pinned the version.


Duplicates — measured

WalkPosts returnedUniqueDuplicates
One search, pages 1–3 contiguous to exhaustion ("web scraping", site-wide, platform run u9D7cKnobXM23ZbXk)2372370.0%
5 queries × 5 subreddits, 38 pages (platform run cjZdZ6SEFV5bFlJKN)2,8172,7801.3% dropped before billing
5 queries × 5 subreddits, 48 pages (platform run zANrxAQKoH1gnMvhl)3,6303,5771.5% dropped before billing
2 queries × 2 subreddits, sort: new, 30-day window (local)48448.3% dropped before billing

Within a single search listing Reddit repeats nothing. Duplicates come from fan-out — the same post matching "web scraping" and "python" in r/webscraping — and the Actor keeps a run-wide set keyed on the t3_ fullname, de-duplicates before anything is charged, and then asserts uniqueness across everything it pushed before the run is allowed to succeed. Every run logs the exact duplicate count it dropped. Across runs, move dateFrom forward — dedupe is per run.


When a run fails

This Actor fails loudly only where the output would otherwise be silently wrong:

  • Duplicate leak → the uniqueness assertion fails the run.

Everything else ends SUCCEEDED with a status message that says what happened:

  • 0 rows → the message names the cause — no results from Reddit, your filters removed everything, or no transport rung answered (usually transient; re-run).
  • Run time budget → the Actor stops fetching in time to push what it has: "Stopped early to stay inside this run's time limit — N posts delivered and charged."
  • Charge cap"Stopped at this run's pay-per-event charge cap with N posts delivered. Every row delivered was billed."

Who buys this

  • Social-listening and brand-monitoring teams — a keyword monitor with real engagement numbers and a date window, scheduled weekly, without a Reddit API contract.
  • Product and UX researchersstrictSearch + subreddits to pull every on-topic thread about a competitor or a feature, with the top comments nested for reading.
  • SEO and content teams — high-num_comments, high-upvote_ratio questions in a niche are the content briefs; link_flair_text separates "Question" from "Showcase".
  • Sales and founder GTM — "looking for a tool that…" threads in r/SaaS, r/startups and r/smallbusiness, newest first, with the author handle to reply to.
  • AI / RAG pipelines — clean JSON with stable ids, ISO timestamps and the query provenance on every row, de-duplicated, no HTML to clean.

Our other Reddit Actor

ActorWhat it isWhy you would use it instead
Reddit Subreddit ScraperA subreddit's hot / new / top / rising listing plus full comment treesWhen you want everything in a subreddit rather than a keyword's matches

FAQ

Does this need a Reddit account, a login or an API key? No. It reads the same public JSON Reddit's logged-out front end reads, from a real browser session on a residential IP. No cookie of yours is ever used.

Are the scores real? Yes. 100/100 rows on the shipped default carried score, upvote_ratio and num_comments; 98 of 100 scores were above zero. Only transport: "rss" fallback rows have null engagement fields, and the run tells you when that rung was used.

How many posts can one query return? About 250 — Reddit's own ceiling, measured at 237. Add queries and subreddits to go wider.

Can I search by exact date? Use dateFrom / dateTo (applied before billing) with sort: "new" for an early stop, and time to pre-narrow what Reddit returns.

Do comments cost extra? Only when you turn includeTopComments on, and only for posts that actually returned at least one comment — comments-enriched at $0.003 per such post.

Two runs — will I get duplicates? Within a run, never: dedupe is on the t3_ fullname and asserted before the run can succeed. Across runs, move dateFrom forward.

Do I need a residential proxy? Yes, for the JSON rung; it is the default. Datacenter IPs do not clear Reddit's interstitial.

Will a run ever succeed with zero rows? It will end SUCCEEDED with a status message naming the cause (no results / filtered out / no transport answered), so a scheduled monitor on a quiet keyword does not get flagged as broken.


This Actor reads public Reddit search results and public comment threads as a logged-out visitor. It does not log in, does not use any account, cookie or API key, and collects nothing behind authentication. Reddit's robots.txt carries a blanket User-agent: * / Disallow: / and refers to Reddit's Public Content Policy; Reddit's User Agreement and that policy govern how its content may be used. Posts and comments contain user-generated content and author handles, which can be personal data. You are responsible for complying with Reddit's terms and with how you use the data, including GDPR/CCPA and the rules on unsolicited contact.

Reddit® is a trademark of its owner. This Actor is not affiliated with, endorsed by, or connected to Reddit, Inc.


Feedback

Found a missing field or want a new filter? Open an issue on the Issues tab, and if the Actor earns it, a review on the Reviews tab helps other buyers find it.