Instagram DM limits per day and per hour: the real numbers
Updated
Search for “Instagram DM limit per day” and you will find a lot of confident numbers: 50, 100, 200, 1,000. Most of them are guesses repeated from old forum posts. The honest answer is more useful than a single number, because Instagram doesn’t have one DM limit. It has several, and each one applies to a different situation.
This guide lists the limits that matter if you send DMs automatically, in response to comments, story replies and messages. For every figure we say whether it is Instagram’s rule (fixed, no tool can raise it) or Dartzo’s guard (a ceiling we chose to sit below Instagram’s). The same breakdown lives, with more detail, in our docs page Limits and windows.
The short version
| Limit | Number | Whose |
|---|---|---|
| Private replies to comments, per hour | 750 per account | Instagram’s rule |
| Private replies per comment | 1, ever | Instagram’s rule |
| Reply window after a post or Reel comment | 7 days | Instagram’s rule |
| Reply window after a story reply, mention or DM | 24 hours | Instagram’s rule |
| Messaging triggers (story, mention, DM), per second | 100 | Instagram’s rule |
| Plain text DM length | 1,000 characters | Instagram’s rule |
| DM length with buttons | 640 characters | Instagram’s rule |
| Buttons per message | 3, labels up to 20 characters | Instagram’s rule |
| Where Dartzo starts sending | 200 per hour | Dartzo’s guard |
Is there a daily limit?
Not as a published number. In the sources Dartzo relies on, Instagram’s cap for comment replies is stated per hour, not per day. That is why a claim like “Instagram allows 200 DMs a day” should make you cautious: we can’t trace it to Instagram’s own documentation for automation, and we won’t repeat a number we can’t back up.
What you can say safely is this: the hourly cap is the one that bites, because a post that does well produces its comments in bursts, not evenly across a day.
The hourly limit: 750 private replies
A private reply is the DM a business sends in answer to a comment on a post or Reel. Instagram’s documented ceiling is 750 per hour per account. This is the limit that matters on a viral Reel. If 3,000 people comment “LINK” in an hour, no tool can send 3,000 private replies in that hour.
What a good tool does about it matters more than the number itself:
- It queues the overflow, it doesn’t drop it. Over-the-limit messages wait and go out as capacity frees up, oldest first.
- It stops before the deadline. A comment can be answered for 7 days, so a queue built in one busy hour can drain over the next hours and days. Dartzo gives up on a comment at 6 days 18 hours, not at the edge.
- It tells you. Each message ends as sent, expired or failed with a reason. See How delivery works.
Why Dartzo doesn’t send at 750
A rate limit is a wall, not a target. Sending right at the maximum is how an account gets noticed, so Dartzo paces below it:
| Dartzo’s pacing | Value |
|---|---|
| Where each account starts | 200 per hour |
| If Instagram signals throttling | Pace is cut in half immediately |
| The lowest it goes | 20 per hour, never zero |
| Recovery after a clean day | +75 per hour, up to the 750 ceiling |
| Gap between sends | A random 50 to 250 milliseconds |
| Retries on an Instagram server error | Up to 5 attempts |
The cost is a few minutes of queue on a viral post. The benefit is an account that stays in good standing. There is no setting to jump straight to 750, and no plan changes any of this. Selling you a higher guard would be selling you risk.
The per-comment limit: one
Instagram allows exactly one private reply per comment. Not one per hour, one per automation, or one per tool. Meta’s documentation says the same: one message to the commenter, and another only if they respond. See Meta’s private replies documentation.
Two consequences are easy to miss. First, if two automation tools are connected to the same account, they race for that one slot, and the loser is refused for good, with an error that looks like a bug in the tool. Run one tool at a time. See Another tool is replying. Second, the one reply can carry a short message and a quick-reply button, but after that you can message the person again only if they reply or tap. That is why follow-ups on comment automations start from a tap. See Follow-up messages.
The time limits: 7 days and 24 hours
| Trigger | Instagram’s window | Dartzo stops at |
|---|---|---|
| Comment on a post | 7 days | 6 days 18 hours |
| Comment on a Reel | 7 days | 6 days 18 hours |
| Story reply | 24 hours | 18 hours |
| Story mention | 24 hours | 18 hours |
| Someone DMs a keyword | 24 hours | 18 hours |
| Comment on a Live | During the broadcast only | About 60 seconds, never past the end |
The 6-hour margin is Dartzo’s own. A send that starts inside the window and finishes outside it gets an ambiguous answer, and we would rather report one clear result than a maybe. For stories and DMs, the 24 hours counts from the person’s message, and every new message from them reopens it. More in Story replies and mentions and DM keyword triggers.
Live comments are the strictest case: Instagram accepts a private reply only while the broadcast is running. Dartzo doesn’t offer a Live trigger yet. Our engine’s rule for it is send now or be marked expired, rather than queued for hours and quietly missed.
Message and button limits
These are Instagram’s rules and they are strict about the details. A plain text DM can be up to 1,000 characters. Add buttons and the budget drops to 640. A message can carry at most 3 buttons, and Instagram shows only the first 20 characters of a button label. Buttons appear on Instagram’s mobile app but not on desktop, so never put your only link on a button. See Links and buttons in your DM.
Limits that protect your fans (Dartzo’s own)
Instagram doesn’t publish per-person caps, so Dartzo sets its own. They exist because one badly wired automation once sent over 1,600 DMs to a single person in four hours, and that can’t happen now.
| Guard | Value |
|---|---|
| One DM per person per automation | Once every 24 hours |
| The identical message to the same person | At most 3 an hour |
| Automatic pause for a loop | If the same message is tried more than 10 times an hour |
Public replies, the visible “Sent! Check your DMs” under a comment, have their own daily ceiling, 500 per account by default, adjustable in Settings. Instagram doesn’t publish a number for it, but a flood of identical public comments is a classic spam signal. A skipped public reply never stops the DM. See Reply publicly under the comment.
What happens when you hit a limit
- Over the hourly paceThe DM waits in the queue. It isn’t failed and it isn’t lost.
- Window about to closeDartzo sends before its own deadline if it can. If it can’t, the job is marked expired, and you can see it.
- Instagram refusesThe job is marked failed with a plain reason, such as blocked or comment deleted. See Error reference.
- Instagram signals throttlingDartzo halves the account’s pace at once and recovers gradually over clean days.
Walkthrough: seeing your limits in Dartzo
You don’t need to calculate anything. Build your automation as normal (see Build your first automation) and the pacing, the deadlines and the per-person guards apply automatically. When a post gets busy, open the Queue: queued messages show as waiting, and each finished one shows sent, expired or failed with the reason. Reading your analytics explains how we count people, so the numbers match what you see.
For what each plan includes, see pricing. No limit on this page changes with your plan.