Reddit DM Limits in 2026: Daily Caps, Chat Requests, and What Resets Them
Reddit publishes no number for the daily chat invite cap, but it does publish chat message limits for the Data API. Both sets, verbatim, with what resets each.

Reddit publishes two completely different answers about direct message limits, and almost every page arguing about the topic has read only one of them. For a person sending chat invites from the app, Reddit publishes no number at all. For the Data API, Reddit publishes exact numbers: 2,000 chat messages per day per recipient, 3,000 per day in total, on top of 100 queries per minute per OAuth client id.
Not affiliated with Reddit Inc. redditapis.com is an independent third-party REST proxy for Reddit's API.
TL;DR: The consumer chat invite cap is real, daily, and undocumented. The Data API chat limits are real, daily, and documented at 2,000 per recipient and 3,000 total. Three separate conditions gate a chat invite: the daily cap, a concurrent open-chat cap, and whether the account is in good standing. The daily cap resets with time; the concurrent cap only clears when you close existing chats.
This page quotes both Reddit documents verbatim, separates the caps people conflate, and marks every community figure as a self-report rather than policy. Nothing here is inferred from a screenshot.
Reddit Documents Two Different Things
Search results for this question are almost entirely forum threads, and a forum thread answers for the surface the asker happened to be using. Reddit maintains two separate documents, written by different teams for different audiences, and they behave differently.
- The consumer document is the Help Center article "Why can't I start a chat or send an image?", last updated May 29, 2026. It lists four reasons a chat message will not send and states no figure anywhere.
- The developer document is the Help Center's Reddit Data API Wiki, last updated May 11, 2026. It publishes explicit chat message numbers under free access usage.
- They do not cross-reference each other. Neither article mentions the other, which is the mechanical reason the two answers circulate independently and nobody reconciles them.
If your question is "why can I only message three people today", the first document applies and there is no number to find. If your question is "what will my integration be throttled at", the second document applies and the numbers are precise. Mixing them produces the contradictions that fill every thread on the subject: one person quoting a hard daily figure, another insisting no limit exists, both reading real sources about different things.
The distinction matters commercially too. A person hitting the consumer cap is being told to wait. An integration hitting the API cap is being told to read a header. Only one of those is something you can engineer around.
The Four Reasons Reddit Names
Reddit's own wording, quoted directly from the Help Center article:
You've hit the limit of active chat invites you can send in a day. To prevent spammers, newer Reddit accounts have chat limits. You'll need to wait for your account to get a little bit older and your limit will likely increase over time.
You've hit the limit of active chats you can open at a time. Try closing out some of your active group chats to free up room for new chats.
Your account isn't established enough. Even if your account isn't new, your account needs to be in good standing to send more chat invites. Accounts in good standing: have verified their email address, contribute positively to the Reddit community, and haven't had their content or account recently actioned.
The other redditor has chat disabled.
Four reasons, zero numbers. Reddit tells you the cap exists, tells you it moves with account age, and declines to say what it is. That is a deliberate anti-spam posture rather than an oversight, and it is why no page on the internet can honestly publish a universal figure for the consumer surface.
The same article adds one more rule people hit constantly: "For safety reasons, you're unable to send images in chat invites. However, you can send images once the recipient has accepted your invite." That single sentence explains a large share of the "why can I not send a picture" threads, and it is not a limit at all, it is a sequencing rule.
Notice what is absent from the list. There is no mention of karma, no mention of Reddit Premium, no mention of a verified phone number, and no mention of subreddit membership. Every workaround that turns on one of those is inventing a mechanism Reddit does not describe.
Two Caps, Two Different Remedies
The single most common confusion in this topic is treating the daily cap and the concurrent cap as one thing. They are not, and they have opposite fixes.
- The daily active invite cap counts how many new chat invites you sent today. Reddit's stated remedy is time: wait, and the ceiling itself rises as the account ages. Nothing you click changes it.
- The concurrent open chat cap counts how many chats you currently have open. Reddit's stated remedy is closing or leaving existing group chats. Waiting does nothing here, because the counter is a level rather than a rate.
- They can fire independently. An account well past new can sit under the daily cap and still be blocked by the concurrent one, and vice versa.
That distinction explains the contradictory advice everywhere else. Someone told to "just wait" who was actually against the concurrent cap waits a week and reports that waiting does not work. Someone told to "close some chats" who was against the daily cap closes everything and reports that closing chats does not work. Both are right about their own case and wrong as general advice, and both then post the failure as evidence that Reddit's documentation is wrong.
The diagnostic is cheap. Leave a handful of old group chats and try again immediately. If the block clears within seconds, it was concurrency. If it does not, it was the daily counter or standing, and the only remaining variable is time.
The Third Gate: Account Standing
Account age and account standing are separate conditions in Reddit's wording, and standing is the one that surprises people. Reddit's definition names three things:
- A verified email address. The only item on the list with an immediate, binary state the account holder controls directly.
- Positive contribution to the Reddit community. Undefined numerically, and deliberately so.
- No recent action against your content or account. A removal, a warning, or a temporary restriction can therefore suppress messaging even after it expires from the user's view.
Karma is not on that list. This is why help forums carry long threads from users whose accounts are well past new. One of the most discussed is titled with the exact error string:
You need a more established Reddit account to send chat invites.
The original poster describes an account more than a year old with more than 80 karma that had previously been able to send chat invites, then could not. That thread ran past 200 comments. The pattern repeats across a second thread with more than 90 comments on the same message, and in both cases the resolution reported by the original poster was that the block cleared on its own after several days rather than after any action they took.
The practical reading is that standing is a state Reddit evaluates, not a score you accumulate. Check the email verification first because it is the only lever with an on or off state, and treat the rest as time plus ordinary participation.
What Reddit Publishes for the API
Here the numbers are real. Reddit's Data API wiki article states them plainly for free access usage.
- 100 queries per minute per OAuth client id, averaged over a rolling window (currently ten minutes) so bursts are allowed
- 2,000 chat messages per day per recipient
- 3,000 chat messages per day total
- 300 chat rooms joined per day for bot API users
- Traffic not using OAuth or login credentials is blocked, and the default rate limit does not apply to it
Two of those deserve emphasis because they are routinely misread. The per-recipient number is not a per-conversation quota you would ever approach in normal use; it exists to stop a single account flooding one target. The 3,000 total is the one an integration actually plans against, and it is generous compared with what most teams model.
The ten minute averaging window is the other under-read detail. A budget of 100 queries per minute averaged over ten minutes is a budget of roughly 1,000 queries across that window, which means a short burst well above 100 in a single minute is tolerated as long as the average holds. Code that hard-caps itself at 100 per minute is leaving real headroom unused.
Start building with Redditapis
Reads $0.002, votes $0.005, writes $0.012, DMs $0.025. $0.50 free credits.
Reading the Rate Limit Headers Instead of Guessing
Reddit names three response headers so you never have to infer your position in the window. They are the only live source of truth, and they change without an announcement.
import requests
# Reddit returns the live budget on every Data API response.
# Read them rather than assuming the documented figure is current.
resp = requests.get(
"https://oauth.reddit.com/api/v1/me",
headers={
"Authorization": "Bearer <reddit-oauth-token>",
"User-Agent": "your-app/1.0 by /u/your-username",
},
timeout=15,
)
used = resp.headers.get("X-Ratelimit-Used") # requests spent this period
left = resp.headers.get("X-Ratelimit-Remaining") # requests still available
reset = resp.headers.get("X-Ratelimit-Reset") # seconds until the window rolls
print(f"used={used} remaining={left} reset_in={reset}s")
Reddit's own wording for these is short: X-Ratelimit-Used is the approximate number of requests used in this period, X-Ratelimit-Remaining is the approximate number left to use, and X-Ratelimit-Reset is the approximate number of seconds to the end of the period. The word "approximate" appears in all three descriptions, which is a deliberate signal not to build a system that breaks when the count is off by one.
The failure mode worth designing against is the one where several workers share a single client id. The 2023 announcement is explicit that this changed: the headers previously indicated "counts by client id/user id combination" and would "update to reflect this new policy based on client id only". So every worker now draws from one pool, and each sees a healthy-looking remaining count that another worker is already spending. Track the budget centrally, not per process. The wider version of this problem, including backoff and queueing patterns, is covered in Reddit API rate limits in 2026.
What Changed Between 2023 and 2026
Three changes matter for anyone planning message volume, and all three are announcements rather than inferences.
- 2023: the free tier got explicit numbers. Reddit announced enforcement of 100 queries per minute per OAuth client id for authenticated traffic and 10 for unauthenticated, replacing the informally-stated 60, effective July 1 of that year. The enterprise tier announcement and the follow-up enforcement post both carry the figures, and commercial use above the free tier moved under Reddit's Data API Terms.
- June 2025: three OAuth tokens per account became one. The single change with the largest effect on how much any one account can send.
- 2026: registration moved behind the Responsible Builder Policy. New app creation now routes through the Responsible Builder Policy rather than a direct form.
The token change gets missed constantly and it directly redefines what per-account budget means:
Changes to number of OAuth tokens per account
The admin post states it plainly: an account could create up to three tokens, and that became one token per account. Existing tokens above the limit were not revoked, and Reddit offers an exception form for users in good standing. The consequence is that a single account can no longer hold a pool of tokens, so the per-client-id budget and the per-account budget have collapsed into the same thing.
The 2023 repricing is the event most developers still frame everything else against, and the general-audience version of that story is worth two minutes if you arrived at this topic recently:
The 60 Versus 100 Queries Per Minute Confusion
Stale pages quote 60 and current pages quote 100, and both are citing something real. Here is the reconciliation.
Reddit's archived API wiki still says, live today:
Clients connecting via OAuth2 may make up to 60 requests per minute.
That page was never taken down. It was superseded in 2023, and Reddit's own announcement says so in terms: the post acknowledges that the stated rate limit "per this documentation" had been 60 queries per minute, then announces the change to 100 per OAuth client id and 10 without OAuth. Both numbers are therefore genuine quotations from Reddit, separated by three years and one policy change.
- Quoting 60 today means reading a page Reddit maintains but no longer enforces.
- Quoting 100 today matches both the current Help Center wiki and the admin announcement.
- Quoting 10 is correct only for traffic that is not using OAuth, which is now blocked outright rather than merely throttled.
The useful habit is to treat any rate figure older than the last policy announcement as a historical artifact, and to confirm against the headers rather than against a document. Reddit changes these numbers by announcement, not by versioning, so a document can be simultaneously live and wrong.
Chat Invite Versus Legacy Private Message
Two message surfaces exist, they land in different places, and only one of them is what Reddit's chat limit article describes.
- The legacy private message carries a subject line and lands in the inbox under Messages. It is the surface the older OAuth message endpoints target.
- The chat invite is subjectless and realtime, and it opens a conversation in the Chat panel. It is the surface every quote in this article's limits section is about.
- Neither Reddit document states a numeric cap for legacy private messages. The chat article is explicit that it covers chat invites; the Data API wiki is explicit that its numbers cover chat messages.
This is why two people can compare notes honestly and reach opposite conclusions. Someone scripting legacy private messages and someone sending chat invites are describing different systems with different constraints, and neither is lying. The full surface taxonomy, including modmail, is mapped in DM vs chat vs modmail.
For practical purposes in 2026, chat is where recipients actually read messages, which is why the limits attached to it are the ones people run into.
Handling the Limit in Code
If you are sending programmatically, the pattern that matters is not a clever rate: it is treating a throttle response as a stop signal rather than something to retry through.
- A throttle response is terminal for that run. Retrying it consumes budget and resets nothing.
- Only transient server errors are safe to retry, because nothing was delivered on those.
- Every skip gets logged with its reason, since a silent skip is how a batch quietly delivers half of what you think it did.
A managed REST path looks like this.
import os
import time
import requests
API_KEY = os.environ["REDDITAPI_KEY"]
BASE = "https://api.redditapis.com"
# `session` is the {reddit_session, loid, csrf_token} dict returned by
# POST /api/reddit/login. Cache it; the login is a separate billed call.
def send_dm(session: dict, to_username: str, message: str):
r = requests.post(
f"{BASE}/api/reddit/dm",
json={
"to_username": to_username,
"message": message,
"reddit_session": session["reddit_session"],
"loid": session["loid"],
"csrf_token": session["csrf_token"],
},
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=15,
)
if r.status_code == 429:
# Pacing window reached. Stop the loop; do not retry immediately.
raise SystemExit("pacing window reached, resume later")
r.raise_for_status()
return r.json()
Those three rules hold regardless of which path you use, and none of them is about finding the right sending speed. The speed is not the variable Reddit is measuring; the account is.
The full request and response shape for that endpoint, including the error table, is in how to send a Reddit DM via REST API, and the per-call rates are on the pricing page.
The cheapest Reddit API. Try it free.
Reads from $0.002 per call. $0.50 free credits. No credit card required.
What the Community Reports, and Why It Disagrees
Community numbers are worth reading as a shape rather than as a specification. Every figure below is a self-report from one account.
- Two or three new chats per day is the range new and low-standing accounts converge on, repeated across years of threads. One widely-linked thread puts the figure at three directly in its title.
- Roughly 25 per day rising to 50 to 60 is what one practitioner reports from personal testing on new versus aged accounts.
- No hard limit at all is what long-established accounts frequently report, because they never approach their own ceiling.
The group-chat side hits the same wall with the same string:
Getting “Wow, you’ve sent a lot of invites. Let’s take a break"
The practitioner figures come with their method stated plainly, which is the right way to publish an observation:

Dominik Sobe ツ
@sobedominik
"How many Reddit DMs can I send without getting rate-limited/banned?" This is the #1 question I get about Reddit outreach Here's what seems to work from my quite thorough testing: → New Reddit account: Start with 25 DMs/day 🐢 → Aged account with karma: 50-60 DMs/day 🏃♂️➡️… Show more

Roughly 25 per day on a new account and 50 to 60 on an aged one with karma, explicitly framed by the author as what seems to work from testing rather than as documented behaviour. That is a factor of ten away from the two-or-three figure, from a source that is equally honest about its method.
Both cannot be a universal cap, and neither claims to be. The reconciliation is Reddit's own wording: the ceiling is per account, moves with age and standing, and is never published. Two accounts on the same day genuinely can have different ceilings, which makes every crowd-sourced number a description of one account's state rather than a platform constant.
Why People Keep Choosing Reddit DMs Anyway
The constraint has not made the channel less interesting, which is why the question gets asked so persistently:

Om Patel
@om_patel5
here's why Reddit DMs are FAR superior from every other platform for cold outreach: i've tested LinkedIn, Twitter, Instagram, email. Reddit converts 10x better. here's why: 1/ people actually read Reddit DMs LinkedIn = 100 sales pitches daily Twitter = too much spam from https… Show more
The claim there is that Reddit DMs outperform other channels for outreach because recipients actually read them. That is one operator's experience rather than a benchmark, but it matches the shape of the demand: the surface is valuable enough that people run into its ceiling and then go looking for the number.
The pattern across every thread on this topic is the same. Someone finds the wall, assumes it is a published rule, searches for the rule, finds only other people asking, and concludes Reddit is hiding something. Reddit is not hiding it. It genuinely varies per account, and Reddit says so.
What separates accounts that keep sending from accounts that stall is the standing checklist Reddit publishes, not a clever send rate. A channel comparison across email, chat and other surfaces is in Reddit DM vs email vs Slack.
What Actually Loosens the Cap
Working only from what Reddit documents, four things move the ceiling and nothing else does.
- Account age. Named explicitly: wait for the account to get older and the limit will likely increase over time. This is the primary lever and it is not something you can accelerate.
- A verified email address. The one standing condition with an immediate binary state, and the first thing to check.
- Ordinary positive participation. Commenting, voting and posting are what the standing definition describes. There is no threshold published, so treat it as a direction rather than a target.
- Closing existing chats. This does not raise the daily cap at all, but it clears the concurrent one, which is frequently the actual block.
Nothing else on the usual list appears in Reddit's documentation. Reddit Premium is not named. A karma total is not named. A phone number is not named. Subreddit membership is not named. If a page tells you one of those raises your DM limit, it is describing a mechanism Reddit does not document, and the burden of proof sits with that page.
The honest summary for a person is short: verify your email, clear your open chats, and give the account time. The honest summary for an integration is shorter: read the headers.
Practical Reading of All This
Put together, the documented picture fits in a few lines.
- If you are a person and messages stopped sending, work Reddit's own list in order: email verification, then open group chats, then time. There is no setting and no karma total that shortcuts standing.
- If you are building an integration, the numbers exist and you should read the headers rather than plan against a blog post. 3,000 chat messages per day total and 2,000 per recipient is a large budget.
- The tighter real constraint in 2026 is not the send ceiling at all. It is getting a registered app in the first place, and holding one token per account instead of three.
If your workload needs the chat surface without the app registration path, a managed REST layer is the alternative shape. Our DM endpoint guide covers the send path end to end, the pricing page lists per-call rates with no annual minimum, and the cost calculator models your own volume before you commit. The Reddit data API overview covers the read side of the same stack.
Sources
Every number on this page traces to one of these, all read on July 30, 2026.
- Why can't I start a chat or send an image? , Reddit Help Center, updated May 29, 2026. The four reasons and the image rule. No numeric cap.
- Reddit Data API Wiki , Reddit Help Center, updated May 11, 2026. The 100 QPM figure, the ten minute averaging window, and the 2,000 / 3,000 / 300 chat numbers.
- Reddit archived API wiki , the superseded 60 requests per minute figure and the three rate limit headers.
- Changes to number of OAuth tokens per account , Reddit admin post, June 2025. Three tokens to one.
- Reddit Data API Terms , the commercial terms above free access.
Related reading on this site: how to send a Reddit DM via REST API, Reddit API rate limits in 2026, DM vs chat vs modmail, Reddit API authentication, and the Reddit data API overview. Get a key at signup.
Frequently asked questions.
There are two answers because there are two surfaces. For a person sending chat invites from the app, Reddit publishes no number at all: its Help Center confirms a daily cap on active chat invites exists and that newer accounts are held to tighter caps, but states no figure. For the Data API, Reddit does publish numbers: 2,000 chat messages per day per recipient and 3,000 per day in total, on top of 100 queries per minute per OAuth client id. Anyone quoting a single universal daily number for the consumer surface is reporting an observation, not policy. The send path itself is covered in [how to send a Reddit DM via REST API](/blogs/how-to-send-reddit-dm-via-api).
That message is the user-facing form of the daily active chat invite cap. Reddit's Help Center lists it first among four reasons a chat message will not send: you have hit the limit of active chat invites you can send in a day. The Help Center adds that newer accounts have tighter chat limits and that the limit will likely increase as the account ages. It publishes no figure and no cooldown duration, which is why years of help threads have never produced an agreed answer. The remedy Reddit names is time. For the API-side budget model see [Reddit API rate limits in 2026](/blogs/reddit-api-rate-limits-2026).
Reddit's Data API wiki article publishes three chat numbers for free access usage: 2,000 messages per day per recipient, 3,000 messages per day total, and up to 300 chat rooms joined per day for bot API users. Those sit alongside 100 queries per minute per OAuth client id, averaged over a rolling ten minute window so bursts are allowed. Traffic that does not use OAuth or login credentials is blocked outright. These are the only numeric DM-adjacent limits Reddit documents anywhere. See [Reddit API rate limits](/blogs/reddit-api-rate-limits-2026) for the wider budget model and header handling.
Reddit does not publish it. Community threads converge on two or three new chats per day for new or low-standing accounts, while one practitioner reports roughly 25 per day on a new account rising to 50 to 60 on an aged one from personal testing. Every one of those is a self-reported observation from a single account, not documented policy, and they do not agree with each other. Treat them as the shape of the constraint rather than a figure to plan against. The documented gate is account age plus standing. Compare the surfaces in [DM vs chat vs modmail](/blogs/reddit-dm-vs-chat-vs-modmail-when-to-use-each-api-surface).
Not on its own. Reddit's Help Center lists account standing as a condition separate from account age. Accounts in good standing have verified their email address, contribute positively to the Reddit community, and have not had their content or account recently actioned. Karma appears in none of those three conditions. That is why help forums carry threads from people with year-old accounts and hundreds of karma still seeing the more established account message. Verifying the email address is the one item a user controls directly and immediately. Related reading: [Reddit shadowbans explained](/blogs/reddit-shadowban-2026).
Two different mechanisms, because there are two different caps. The daily active chat invite cap resets with time, and Reddit says the ceiling itself will likely increase as the account gets older. The concurrent cap, described as the limit of active chats you can open at a time, does not reset on a clock: Reddit's stated remedy is closing or leaving existing group chats to free up room. Most contradictory advice comes from treating these as one limit. If waiting does nothing, you are probably against the concurrent cap. See the [DM endpoint walkthrough](/blogs/how-to-send-reddit-dm-via-api) for the programmatic path.
No. The legacy private message lands in the inbox under Messages and carries a subject line; the chat invite opens a realtime conversation in the Chat panel. Reddit's chat limit documentation is written specifically about chat invites, and its Data API chat numbers are written about chat messages. Neither document states a cap for legacy private messages. This split is why two people can compare notes and reach opposite conclusions: they are describing different surfaces. The full surface map is in [DM vs chat vs modmail](/blogs/reddit-dm-vs-chat-vs-modmail-when-to-use-each-api-surface).
Not since June 2025. A Reddit admin announced that the number of OAuth tokens an account may create dropped from three to one, so an account can no longer hold a pool of tokens. Existing tokens above the new limit were not revoked, and Reddit offers an exception request form for users in good standing. The practical effect is that per-account budget is now genuinely per account. Distributing load means distributing real accounts, each with its own standing to maintain, not minting tokens. The auth flow is covered in [Reddit API authentication and OAuth](/blogs/reddit-api-authentication-oauth-2026).
Keep reading.
Continue exploring related pages.
Reddit API documentation
The complete 2026 reference: auth, all 28 endpoints, and code.
Get a Reddit API key
Instant bearer token, no waitlist and no enterprise contract.
Reddit Responsible Builder Policy
Why Reddit denies API applications, and the managed REST bypass.
Reddit API use cases
14 use cases from AI training to brand monitoring and DMs.
Reddit Search API
Search posts, comments, users, and communities over one REST endpoint.
Reddit MCP server
Wrap the REST API as MCP tools for Claude, Cursor, and any MCP client.
Reddit API for AI agents
Live Reddit context for tool calls, MCP servers, and RAG pipelines.
Redditapis pricing
Endpoint-level costs and quick monthly totals - reads from $0.002 / call.
Reddit API cost calculator
Estimate monthly spend using your request volume.
Reddit API guides and tutorials
Tutorials, walkthroughs, and API deep-dives for developers.
Reddit API alternatives
Evaluate alternatives by cost model, limits, and integration fit.
Official Reddit API vs Redditapis
Access, setup, rate limits, and pricing, side by side.
Affiliate program
Earn 20% lifetime commissions - capped at $5,000/yr.
Reddit Vote API tutorial
Upvote and downvote a post programmatically via the REST API.
Reddit Data API: REST, no PRAW
REST endpoints for Reddit data with no PRAW and no OAuth dance.
Reddit scraping benchmarks
Real throughput, error rates, and cost benchmarks for Reddit scraping.
Reddit API answers
Direct answers on cost, access, rate limits, endpoints, and auth.
How much the Reddit API costs
Per-call pricing from $0.002 a read, with $0.50 in free credits.
Reddit API in Python
One requests call with a bearer token, no PRAW and no OAuth flow.
Reddit shadowban checker
Check if a Reddit account is shadowbanned in seconds, free and no login.
Similar reads.
More guides on the Reddit API, scraping, pricing, and MCP servers.








