RedditapisRedditapis

Changelog

What shipped, and when it actually shipped. Every date here is the day the change became callable, taken from the package registry and from the published API spec rather than from the day someone got round to writing it up. Our system covers 74 REST endpoints, per our published API reference, and every change below lands against one of them.

What has changed recently in the Redditapis Reddit API?

Recent releases added advanced search filters, subreddit moderator and wiki reads, community discovery listings, subreddit rules, bulk post fetch by id, an author-grouped deep comment search, and three subreddit and user read endpoints. Entries are sourced from npm publish times for the MCP package and from the first commit in which each path appears in the published OpenAPI document, so a date on this page is the date the change became callable rather than the date it was written up.

October 21, 2026

Email alerts: instant, hourly or daily, on every plan

An email delivery target now takes delivery_mode: instant (one email per match, within about a minute), hourly, daily, or the 15 minute digest it always had. Change it, or pause and resume the target, with POST /api/reddit/monitor/webhook/update. Every plan can have one email target, Free included.

  • /api/reddit/monitor/webhook/update
  • Instant email is capped at 60 per address per hour; the rest of that hour arrive together in one email at the top of the hour, which says why.
  • An instant email carries the title, subreddit, author, a snippet, when it was posted and the Reddit link, the same fields a webhook gets.
  • Every alert email has a one-click unsubscribe that pauses that address without a login.

October 20, 2026

Whole-word phrase matching, highlights and new-items-only for monitors

A new monitor matches each keyword on whole words and as an exact phrase over the title and body, so api no longer matches rapid or apis. Every delivered match now says where your terms were found in matched_spans. Changing a monitor's kind or adding a subreddit starts the new stream from the moment of the change, so it never replays older posts or comments.

  • Monitors created before this keep the substring matching they were made with, and so do monitors brought in by an import. Send whole_words: true on an update to move one over.
  • Two new options: match: "all_words" accepts a term's words in any order, and stem: true matches simple plural, -ed and -ing forms.
  • Links are searched only when search_in names url or permalink.
  • Fixed: a monitor watching both posts and comments that was created with a baseline_item_id delivered posts but no comments. From now on it delivers new comments too, so expect comment matches to start arriving on those monitors.
  • A test delivery now carries the same item shape as a real match, including enrichment and matched_spans, and still says type: "test".

October 20, 2026

Schedule posts and comments for later

POST /api/reddit/schedule takes the body you would send to POST /api/reddit/submit or POST /api/reddit/comment, plus a run_at time, and makes the post or comment then, as your stored Reddit session. GET /api/reddit/schedule lists what is scheduled and how each run went, and POST /api/reddit/schedule/cancel stops one that has not run. Scheduling is free; a post or comment is charged at the write price only when it runs, and a run that fails with an answer from Reddit is not charged.

  • /api/reddit/schedule
  • /api/reddit/schedule/cancel
  • run_at is 60 seconds to 30 days ahead; due actions are picked up every 30 seconds and run one at a time.
  • A scheduled request never stores cookies or a proxy: connect your session once with POST /api/reddit/session.
  • A failed run records Reddit's reason and is never retried, so it can never post twice.

October 20, 2026

A subreddit's post flairs

GET /api/reddit/sub/:name/flairs lists a subreddit's post flair templates: id, text, whether the text is editable, colours and whether it is mod-only. Pass the id as flair_id to POST /api/reddit/submit, so a post lands in a community that removes unflaired posts.

  • /api/reddit/sub/{name}/flairs
  • Reads through our pool, your session headers, or your stored Reddit session when Reddit wants a signed-in account.
  • Without any session able to read it, the call answers 503 SESSION_REQUIRED and is not charged.

October 20, 2026

Whole comment threads, batch lookups and a political-ads feed

Four reads for data most Reddit APIs leave out. GET /api/reddit/post/:id/comments/expanded returns a thread with its collapsed replies read in, so a 3,000-comment thread is not cut off at the first few hundred. Look up 100 subreddits or 100 accounts in one call. Read every political ad Reddit has disclosed, parsed into advertiser, spend, impressions, dates and targeting.

  • /api/reddit/post/{id}/comments/expanded
  • /api/reddit/subreddits/batch
  • /api/reddit/users/batch
  • /api/reddit/political-ads
  • The expanded tree keeps the shape of /post/:id/comments and says how much is still collapsed when a thread is too big for one call. Flat $0.02: the thread read plus up to 9 expansion reads.
  • Batch subreddits by name and batch accounts by t2_ id, up to 100 each, at the standard read price, with anything Reddit did not return listed as missing.
  • Political ads: one entry per disclosure in r/RedditPoliticalAds, with spend and impressions as numbers next to the band Reddit published.

October 20, 2026

Every other discussion of the same link

GET /api/reddit/post/:id/duplicates takes one Reddit post and returns every other post that submitted the same link, in any subreddit: the list Reddit shows under "other discussions". Read every conversation about an article, video or product page, not only the one you found first.

  • /api/reddit/post/{id}/duplicates
  • Sorted by comment count by default, or newest first with sort=new.
  • crossposts_only=true narrows the list to crossposts of any post that shares the link.
  • Up to 100 in one response with an available count (Reddit does not page this list), same post shape as every other posts endpoint, at the standard read price.

October 20, 2026

Connect your Reddit account once, then write without cookies

POST /api/reddit/session stores your Reddit session on our side, encrypted, against your account. After that, a comment, post, vote, DM or profile write that sends no cookies acts as the stored session, so an agent never has to carry your cookies. GET /api/reddit/session shows what is stored, and POST /api/reddit/session/delete removes it. All three are free.

  • /api/reddit/session
  • /api/reddit/session/delete
  • The cookies are checked against Reddit before they are stored; a logged-out session is refused.
  • Cookies you send on a call always win over the stored session.
  • Store csrf_token too if you will vote or send DMs with the stored session.

October 20, 2026

Can I post here? A check before you spend a post

GET /api/reddit/sub/:name/can-post says whether a post in a subreddit can go through, before you submit it. It returns allowed (true, false or unknown), a reason with a stable code for each thing that blocks or shapes the post, the subreddit's posting requirements and the rules that apply to posts.

  • /api/reddit/sub/{name}/can-post
  • Send your Reddit session headers to also check your own account: banned or approved here, karma, age and verified email. Without them the answer covers the subreddit only.
  • It never answers true on a read that failed: a failed requirements, rules or account read makes allowed unknown.
  • Karma and account age only ever add hints, never a false, because subreddits do not publish their AutoModerator thresholds.

October 20, 2026

Typeahead: subreddit and post suggestions as the user types

GET /api/reddit/typeahead returns one short, ranked list for the prefix a user has typed so far. Without sub it suggests subreddits, with name, title, icon, subscriber count and NSFW flag. With sub it suggests posts in that subreddit whose titles match. $0.0015, the ordinary read rate, and no Reddit login is needed.

  • /api/reddit/typeahead
  • limit defaults to 8 and is clamped to 1 to 20 rather than refused, because a search box asking for more wants as many as you can give.
  • Results are ranked, and each row says how it matched. Reddit's own community search is not a prefix match: for pyth it returned r/Python, r/pythontips and then r/GlobalOffensive. Rows whose name starts with the prefix come first, larger communities first, then names or titles that contain it, then anything else Reddit matched, labelled related rather than silently dropped.
  • Post suggestions search titles with Reddit's title: operator, which matches whole words, so they are strongest once the user has typed one full word.

October 13, 2026

Correcting what we said about our relationship with Reddit, and the dates that now matter

Our commercial-use guide said in several places that redditapis.com had "already negotiated" its own terms with Reddit, or implied a contract with Reddit or a route Reddit had approved for us. None of that was true and we have corrected every instance we found in that guide and in the pricing guide. We are an independent third-party API: we do not resell Reddit's Data API and we hold no commercial agreement with Reddit on your behalf. The same guide also recommended applying for Reddit's own commercial tier without mentioning that Reddit stops accepting new public Data API requests on October 31, 2026, so those dates are now on the page too.

  • The guide now states plainly that we are not a licensed reseller and hold no Reddit agreement covering your use.
  • Reddit's published timeline is now on the page: new public Data API requests close October 31, 2026; RSS ends November 13, 2026; migration-programme applications close November 30, 2026; unregistered apps begin losing access January 12, 2027; remaining public Data API access ends March 2027.
  • Those dates are as Reddit announced them; the page does not yet carry links for each one, and our migration guide's December 31, 2026 date is the Migration Program's own deadline, a different thing from the public Data API dates above.
  • A build gate now fails any page that claims a licence, partnership, approval, sanctioned path or negotiated agreement with Reddit for this service, with the exact sentences we shipped as its test cases.

September 7, 2026

Image and video posts, and the reason a media post is slower than the others

POST /api/reddit/submit now creates IMAGE, VIDEO and VIDEOGIF posts as well as text, link and poll, at the same $0.012 write rate and with no new endpoint. You pass image_url or video_url and we fetch the media, upload it to Reddit, and hold the request open until Reddit confirms the post.

  • /api/reddit/submit
  • You give us a URL rather than bytes. It is the only shape that works for a large video, and you almost certainly already host the file. The URL must be publicly readable over https: we fetch it server-side through the same guard our outbound webhooks use, so anything behind a login, on a private network, or on plain http is refused with a message that says which of those it was. Redirects are re-checked at every hop rather than followed blindly, because a public host answering a redirect to a private address is the standard way past a check like this.
  • A URL with no file extension is fine, and that is deliberate rather than incidental. Signed and CDN URLs usually have none, so the Content-Type your server sends decides the media type and the extension is only the fallback. An extension-only rule would have rejected a large share of real image URLs.
  • url is NOT the field for media. Putting an image URL in url asks for a link post pointing at the image, which is a different post from an image post. That combination is refused rather than guessed at, for the same reason an unsupported kind is refused by name: you would have no way to know you got the other one, and it is published under your name.
  • A video needs a poster image and video_poster_url is required. Reddit will not accept a video without one. PRAW uploads a stand-in image when the caller gives none; we do not, because an image we generated would be published as yours.
  • WHY A MEDIA POST IS CONFIRMED RATHER THAN FIRE-AND-FORGET, since it is the part that shapes the contract: Reddit processes an upload asynchronously and its submit response carries NO post id at all, only a websocket. So the POST alone genuinely cannot tell you whether the post exists. We hold your request open until Reddit confirms and return the same post_id and permalink as every other kind. If processing is still running after three minutes you get MEDIA_CONFIRM_TIMEOUT, which says plainly that the post was NOT rejected and may still appear, and asks you to check the account's recent posts before submitting again rather than posting it twice.
  • Size limits are Reddit's, not ours. We do not invent a smaller one, because a guessed limit refuses posts Reddit would have accepted. An oversized file comes back with the real numbers, for example 31.4 MB against a limit of 20.0 MB, parsed out of the XML Reddit's media host answers with instead of surfacing as an opaque failure.
  • The same honesty as the rest of this endpoint: NO post of any kind has been created through it against a real Reddit account. Every request shape is derived from PRAW, which runs against real Reddit and is open source. The endpoint count is unchanged at 59, because these are new kinds on an existing route rather than new routes.

September 7, 2026

Achievements, which Reddit's own API still calls trophies

GET /api/reddit/user/{name}/achievements returns the achievements shown on a Reddit account's public achievements page: One-Year Club, Verified Email, moderator and event awards, with the date each was granted where Reddit records one. $0.0015, the ordinary read rate, because it makes exactly one upstream call.

  • /api/reddit/user/{name}/achievements
  • The route is named for what Reddit shows a reader; the upstream is named for what the feature used to be called. reddit.com/user/<name>/achievements is a web page with no JSON twin, and /user/<name>/achievements.json is a 404 rather than a 403. The same data has always been served by the old-Reddit endpoint /user/<name>/trophies.json, which was never renamed when the redesign relabelled trophies as Achievements. One list, two names.
  • An account with none returns count 0 and an empty array. That is a real answer, not an error: a new account typically has nothing until it earns Verified Email.
  • description is not always a description, and this is the field most likely to be misused. Depending on the award Reddit puts either a caption there, such as Top 20%, or a DATE STRING, such as 2021-03-24. It is passed through exactly as sent rather than parsed, because guessing which of the two you are holding is how a caption becomes a wrong timestamp. Read granted_utc when you want the grant time.
  • granted_utc is genuinely absent on some achievements, including several event awards, and comes back null rather than zero. A zero would render as 1970 in every client that formats it, which is worse than an honest absence.
  • WHY IT WAS NOT THERE SOONER, since again the reason was wrong rather than hard: this was held back on the belief that it needed an authenticated session we could not currently mint. It needs a working session, which we already had. Anonymously the upstream returns 403 with a large HTML body, and that is a bot-block page rather than an auth refusal; reading it as the latter is what kept the endpoint unbuilt.

September 6, 2026

Polls, on the same endpoint, and the reason they were not there sooner

POST /api/reddit/submit now creates POLL posts as well as text and link posts, at the same $0.012 write rate and with no new endpoint. This supersedes the note earlier today that polls were not served. Image and video are still refused by name.

  • /api/reddit/submit
  • Send kind: poll with an options array of at least two distinct, non-empty choices and a duration in whole days. Everything else is unchanged: subreddit, title, your reddit_session and loid cookies, and the same optional nsfw, spoiler, sendreplies, flair_id and flair_text passthroughs.
  • The maximum number of options and the accepted duration range are deliberately NOT enforced by us. Reddit's real limits are not something we have verified, and a guessed limit would refuse posts Reddit would have accepted. Reddit rules on them and its answer comes back as a 502 carrying its own machine-readable code, the same treatment every other subreddit rule gets.
  • WHY IT WAS NOT THERE SOONER, since the reason was wrong rather than hard: our own note said polls needed Reddit's newer GraphQL create path with a captured envelope we did not have, which made a small piece of work look like a large one. Reddit serves polls from a plain JSON endpoint, api/submit_poll_post, in the same family as the call this route already makes. The one real difference is the encoding, and it is the half that fails silently: options is an array, and an array has no form-encoded spelling that endpoint reads, so a form-encoded poll would post with its options dropped rather than erroring.
  • Sending options or duration on a non-poll kind is refused rather than ignored, for the same reason text on a link post is: a caller who sent both has one of the two wrong, and posting the other half creates something they did not ask for under their own name.
  • The same honesty applies as to the rest of this endpoint: no poll has been created through it against a real Reddit account. The endpoint count is unchanged, because this is a new kind on an existing route rather than a new route.

September 6, 2026

Create a Reddit post through the API, with the caveat up front

POST /api/reddit/submit is now in the reference. It creates a text (self) or link post in a subreddit as your own account, at the $0.012 write rate. It has NOT yet been verified end to end against a real Reddit account, and we would rather publish it with that said plainly than leave a billed capability undocumented, which is what previously had support telling a customer no such endpoint existed.

  • /api/reddit/submit
  • Send subreddit, kind and title, plus your reddit_session and loid cookies from POST /api/reddit/login. kind is self for a text post or link for a URL post; text and url carry the body. nsfw, spoiler, sendreplies, flair_id and flair_text are optional passthroughs.
  • Poll, image and video are REFUSED BY NAME with a 400, never silently downgraded to a text post. A caller who asked for a poll and quietly received a text post would have no way to discover it until a human looked at the subreddit. Those three need a different upstream path and are not served yet.
  • The honest part: the route is unit-tested and its request shape is derived from the live router, but no post has been created through it. A write that fails does so under YOUR account, in a real subreddit, so talk to support before building on it and we will verify it with you.
  • Brings the total to 57 endpoints.

September 6, 2026

Find out whether a post was quietly removed, without being told why

GET /api/reddit/post/{id}/visibility answers the question Reddit will not: is this post still publicly visible, or did it stop being so? A removed post still returns when you fetch it by id, with its title and score, so asking the post does not answer it. This fetches the post and then one page of its author's listing and compares them.

  • /api/reddit/post/{id}/visibility
  • Returns a verdict of live, not_visible or undecidable, with a plain-language reason, a confident flag, and a checked block naming exactly what was read.
  • It deliberately never tells you WHY a post is not visible. A moderator removal, an admin removal, an automated spam filter and an author who has switched their post history off are indistinguishable from outside Reddit, and only one of them is a removal. We would rather report the observation than name a cause we cannot see.
  • undecidable is a real answer, not a failure. Reddit caps how far back a listing goes, so for an author with a long history one page cannot prove a post is missing. When the listing does not certify itself complete and the post is not on it, you get undecidable instead of a guess. Ambiguity always resolves away from live, because a false live is the answer that makes you stop checking.
  • Two upstream calls, billed as one request at $0.004, twice the read rate because it does twice the work. Brings the total to 58 endpoints.

September 5, 2026

Read private subreddits and your own home feed, with your own Reddit session

Nine read endpoints now accept your own Reddit session as headers, so a private, restricted or member-only subreddit is readable as the account that belongs there instead of coming back empty. GET /api/reddit/feed is new: your own front page, which only your own session can answer. Sending no session headers changes nothing at all, so existing integrations are untouched.

  • /api/reddit/feed
  • Send x-reddit-session and x-reddit-loid from POST /api/reddit/login on any of /posts, /search, /comments, /post/{id}/comments, /comments/{postId}, /sub/{name}/top and /sub/{name}/comments. Send neither and the read is served anonymously exactly as before. Send one without the other and you get a 400 naming the missing header, never a quiet anonymous read, because a private subreddit served anonymously looks EMPTY rather than inaccessible.
  • A rejected or expired cookie is a typed 401, 403 or 404, never a 200 with an empty array. Add x-reddit-proxy to make the read leave from the IP that account normally acts from, pinned across retries the same way the write endpoints pin theirs.
  • The four private listings (upvoted, saved, hidden, gilded) accept the header form too. Their existing query-parameter form is unchanged and keeps working; if you send both, the headers win.
  • redditapis-mcp gains reddit_home_feed, and its session arguments travel as headers rather than in the URL. Brings the total to 56 endpoints.

September 4, 2026

Let your AI agent report a bug or a gap to us, after you review it

Two free endpoints for agent-initiated product feedback, modelled on the feedback tool inside Claude Code. POST /feedback takes a bug, idea or missing-capability report; GET /feedback/{id} returns whether the team triaged, shipped or declined it and the response. Both are served un-prefixed on api.redditapis.com, outside the metered /api surface, so telling us what broke never costs a credit.

  • /feedback
  • /feedback/{id}
  • redditapis-mcp@0.4.0 adds reddit_feedback_send and reddit_feedback_get. The model drafts a report into a local queue the moment a tool fails or a capability is missing; nothing is sent until you review the queue and name the drafts to send. The last failing call's endpoint, status and request id are attached automatically.
  • Every non-credential error a tool returns now ends with a one-line pointer to the feedback tool, and the trigger list ships as the server's MCP instructions.
  • Rate-limited to 10 reports per minute per key. Every rejection is a 400 that names the field to fix. Brings the total to 54 endpoints.

August 11, 2026

Read your own upvoted, saved, hidden, and gilded posts and comments

Four new auth-scoped reads for an account's private listings. Unlike every other read, these need that account's own Reddit session cookies from POST /api/reddit/login -- Reddit only serves this data to the account that owns it. Each listing mixes posts and comments, so every item in the response is tagged post or comment rather than split into two separate arrays.

  • /api/reddit/user/{name}/upvoted
  • /api/reddit/user/{name}/saved
  • /api/reddit/user/{name}/hidden
  • /api/reddit/user/{name}/gilded
  • Priced at the standard $0.0015 read rate, bringing the total to 74 endpoints.
  • redditapis-mcp@0.2.1 adds reddit_user_upvoted, reddit_user_saved, reddit_user_hidden, and reddit_user_gilded as native MCP tools, each taking the same session cookies as the REST call.
  • A request for a listing that does not belong to the logged-in account returns 403, not another user's private data.

August 11, 2026

Monitoring is now in the OpenAPI spec, docs, and MCP server

Live monitoring (subreddits watched in real time, matches pushed to your webhook) has been callable in production for a while, but was missing from the public API surface: not in the OpenAPI document, not in llms.txt, and not exposed as MCP tools. All 11 endpoints are published now.

  • /api/reddit/monitor/add
  • /api/reddit/monitor/list
  • /api/reddit/monitor/update
  • /api/reddit/monitor/remove
  • /api/reddit/monitor/health
  • /api/reddit/monitor/deliveries
  • /api/reddit/monitor/webhook/create
  • /api/reddit/monitor/webhook/list
  • /api/reddit/monitor/webhook/test
  • /api/reddit/monitor/webhook/delete
  • Billed as a flat monthly plan, not per call -- every one of these is free at the API level.
  • redditapis-mcp@0.2.0 adds the same 10 as native MCP tools (reddit_monitor_add, reddit_monitor_webhook_create, etc.), the first tools in that package that write anything -- they configure your own account, never Reddit itself.

August 2, 2026

Filter a search before it reaches your code

Search accepts the filters people were previously applying by hand after the fact. Ask for self-posts over a score threshold with at least twenty comments, and that is what comes back.

  • /api/reddit/search
  • Score and comment thresholds: min_score, max_score, min_comments, max_comments.
  • Flags: is_video, is_self, over_18, locked, stickied, spoiler, contest_mode.
  • Re-sort the page with sort_type, one of score, num_comments or created.
  • Filtering runs on the page that was fetched, so the response now carries a meta object with fetched, returned and filtered_out. Pass the after cursor back to filter deeper.

August 2, 2026

Read a subreddit's moderator team and its wiki

Two governance reads that previously had no route. Useful before you post anywhere programmatically, and useful for anyone mapping how a community is run.

  • /api/reddit/sub/{name}/moderators
  • /api/reddit/sub/{name}/wiki/{page}
  • The moderators route returns each moderator's username, id, mod permissions, flair text and the date they were added.
  • The wiki route returns a page's markdown and HTML, a may-revise flag, and the last revision's metadata. The page name may be multi-segment, for example index, rules, or config/sidebar.

July 31, 2026

Browse communities without knowing what to search for

Community discovery, as opposed to community search. These three list subreddits directly, so you no longer need a keyword to start exploring.

  • /api/reddit/subreddits/popular
  • /api/reddit/subreddits/new
  • /api/reddit/subreddits/default
  • Popular returns the most-subscribed communities trending right now, new returns the most recently created, and default returns Reddit's own front-page set.
  • Each takes only after and limit, and returns a subreddits list with the same per-item shape as the subreddit metadata route, plus an after cursor.

July 31, 2026

A community's rules, and a hundred posts in one call

One route for checking what a subreddit permits before you post into it, and one for hydrating post ids you already hold without spending a call on each.

  • /api/reddit/sub/{name}/rules
  • /api/reddit/by_id/{fullnames}
  • Rules returns each rule's name, description, what it applies to (posts, comments, or all), violation reason, priority and creation date, alongside Reddit's site-wide rules.
  • Bulk fetch takes up to 100 comma-separated t3_ fullnames and returns them in the same post shape as the listings, in a single request.

July 31, 2026

Deep comment search can return people instead of comments

A research mode for the question comment search could not previously answer, which is who keeps talking about this, rather than where was it said.

  • /api/reddit/search/comments/deep
  • Pass group_by=author and the response becomes the distinct accounts that mentioned your query, ranked by matching-comment count and then by total score.
  • Each author carries comment_count, total_score, the subreddits they matched in, and their top_comment. Cap the list with max_authors; meta.authors_capped flags a trim.
  • Deleted accounts are dropped rather than returned as an unusable row. The price did not change.

July 31, 2026

Subreddit metadata, a user's posts, and a community comment stream

Three reads that closed obvious holes. Before this you could read a user's comments but not their posts, and you could read one post's comment thread but not a community's live comment flow.

  • /api/reddit/sub/{name}/about
  • /api/reddit/user/{name}/submitted
  • /api/reddit/sub/{name}/comments
  • Subreddit metadata returns title, public description, subscriber count, active-user count, creation date, type and the NSFW flag.
  • A user's submitted posts arrive in the same shape as the subreddit listings, so existing parsing works unchanged.
  • The community comment stream is every new comment across a subreddit, not one post's thread.

July 24, 2026

Deep comment search returns the comments themselves

Reddit's own comment search never hands back the comment. It matches comment text and returns the parent posts, which meant the thing you searched for was not in the response. This route returns the actual matching comments.

  • /api/reddit/search/comments/deep
  • Each result carries the comment body, score, author, a permalink that lands on the comment, and the parent post.
  • Shipped the same day in a second pass, after a customer reported there was no reliable way to read past the first few posts: the after cursor is now honoured on input, the parent-post limit rose from 10 to 25, max_comments caps the return, and comments come back sorted by score.
  • The response reports completeness honestly, with comments_matched against comments_returned, plus capped and truncated flags.
  • Matching now runs on the visible comment text at word boundaries with link URLs stripped, which removed the false positives that came from matching inside a URL or across a word.

July 24, 2026

Setup guides for eight MCP clients

The MCP server worked everywhere already, but the setup differs per client and people were reverse-engineering it. There is now a page per client with the exact config block.

  • Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, Kilo Code, Hermes and OpenClaw.

July 24, 2026

Three tool descriptions corrected to match the response

A correction rather than a feature, listed because a customer had already written code against the wrong description. Three MCP tools promised fields the live response does not contain.

  • Media search claimed a permalink; the response carries url.
  • Subreddit posts claimed flair and media; neither is in that response, whose fields are title, author, upvotes, comments, permalink, url and text.
  • The single-post read claimed body, selftext and media; it returns text.
  • A gate now probes every tool against the live API and fails the build if a description names a field the response lacks, so this class of drift cannot come back quietly.

July 20, 2026

Verify a hundred comments in one call

Checking whether comments still exist used to cost one call per comment. It is now one call for up to a hundred, which is the difference between a viable audit loop and an expensive one.

  • /api/reddit/comments/verify
  • /api/reddit/comments/{postId}
  • Batch verification takes a list and returns a per-comment result.
  • A third URL shape for a post's comments was added the same day, so all three spellings people had guessed at now resolve instead of one working and two returning 404.

July 19, 2026

Two comment routes that had been returning 404

Customers were calling these two shapes and getting a 404, reasonably, because they were documented in neither direction. They exist now.

  • /api/reddit/post/{id}/comments
  • /api/reddit/comment/{id}
  • Fetch a post's comment tree by post id, or a single comment by its own id.

July 12, 2026

The MCP server, and a published OpenAPI spec

Two things landed together that changed how the API is consumed. An agent can now install the tools directly, and any client generator can read the surface.

  • The redditapis-mcp package went to npm with 11 read tools covering subreddit listings, post, comment, community, user and media search, comment trees, subreddit top posts, and user profiles and comments. Stdio transport, bearer auth, per-request timeout.
  • The OpenAPI document was published for the whole surface, which is what every endpoint on this page has been added to since. It is the reason this changelog can be checked against the API rather than trusted.
  • The service currently publishes 74 endpoints. Per-call prices for each tier are on the pricing page, which is the one place they are maintained.

June 29, 2026

A free shadowban checker

A standing tool for the most common question people arrive with. It needs no API key and no account.

  • Enter a username and it reports whether that account's posts are publicly visible.

May 1, 2026

Dashboard and cost calculator

The first two things built around the API rather than in it. Both were aimed at the same question, which is what this is going to cost before you commit to it.

  • The dashboard covers keys and usage. The calculator prices a workload against this API and against the alternatives.
  • The calculator's figure for Reddit's own official API was wrong by a factor of 100 until July 24, 2026, when it was corrected. Anyone who compared costs before that date was reading a wrong number.

How this page is kept honest

A path published in the OpenAPI document is an endpoint a customer can call, so a build gate compares that document against this page and fails when a published path is named nowhere here. The same gate fails when the newest entry falls more than thirty days behind. That is why this page cannot quietly go stale again while endpoints keep shipping.

Entries before July 12, 2026 predate the published spec, so the API surface as it stood at that point is described in prose in the July 12 entry rather than listed path by path.

Call the endpoints on this page.

Everything listed here is live right now. Get a key and try the one you came for.