Limits and windows
There are two kinds of limits in Dartzo, and you deserve to know which is which. Instagram’s rule is fixed — no tool can raise it, and anyone who says otherwise is about to get your account restricted. Dartzo’s guard is a ceiling we chose to sit below Instagram’s, because sending at someone’s maximum is how you find out what their enforcement looks like.
Every number on this page is the number the engine actually uses. If you want the story behind them, read How delivery works.
Reply windows
A reply window is how long after someone’s action Instagram will still accept a DM from you about it. We stop short of the edge of every window.
| Trigger | Window | Dartzo’s deadline | Whose limit — and why |
|---|---|---|---|
| Comment on a post | 7 days | 6 days 18 hours | Instagram’s rule. We subtract a 6-hour safety margin (Dartzo’s guard) so a send is never attempted against a window closing mid-request. |
| Comment on a reel | 7 days | 6 days 18 hours | Instagram’s rule. Same window and same 6-hour margin as posts. |
| Comment on an Instagram Live | During the broadcast only | ~60 seconds, capped at broadcast end | Instagram’s rule — a Live private reply works only while you’re live. The 60-second grace is Dartzo’s guard: send now or be marked expired, rather than queued for hours and quietly missed. |
| Story reply | 24 hours | 18 hours | Instagram’s rule — this is the standard 24-hour messaging window. Minus the same 6-hour margin (Dartzo’s guard). |
| Story mention | 24 hours | 18 hours | Instagram’s rule (24-hour messaging window), minus our 6-hour margin. |
| DM keyword | 24 hours | 18 hours | Instagram’s rule (24-hour messaging window), minus our 6-hour margin. |
How many, how fast
| Limit | Value | Whose limit — and why |
|---|---|---|
| Private replies to comments, per hour | 750 per account | Instagram’s rule — the documented cap for private replies to comments on posts and reels. |
| Where Dartzo actually starts | 200 per hour | Dartzo’s guard. We pace against 200, not 750. A rate limit is a wall, not a target — sending at the maximum is what gets accounts flagged. |
| Response to any throttle signal | Cut in half, immediately | Dartzo’s guard. The moment Instagram signals rate limiting, we halve the account’s budget rather than pushing back. |
| Floor after throttling | 20 per hour | Dartzo’s guard. We slow down hard, but never to zero — a throttled account keeps delivering, just slowly. |
| Recovery after a clean day | +75 per hour per day | Dartzo’s guard — 10% of the ceiling per clean day, so a throttled account earns its speed back gradually instead of snapping straight to the limit. |
| Live and messaging triggers, per second | 100 per second | Instagram’s rule for messaging throughput. These don’t consume the hourly comment-reply allowance. |
| Spacing between sends | 50–250 ms, randomized | Dartzo’s guard. A viral post shouldn’t land on Instagram as one synchronized burst. |
| Retries on an Instagram server error | Up to 5 attempts | Dartzo’s guard. Enough to ride out a blip; few enough that a real outage becomes visible instead of something we hammer at. |
Per-person protection
These exist because one badly-wired automation once sent over 1,600 DMs to a single person in four hours. That can’t happen now, no matter how your automations are configured. All three are Dartzo’s guards — Instagram doesn’t publish per-person caps, so we set our own.
| Guard | Value | What it does |
|---|---|---|
| Per-automation cooldown | 24 hours | One DM per person per automation inside 24 hours. A fan who comments five times gets one DM. Failed and expired jobs don’t count against it, so an honest retry after a real failure still fires. |
| Per-person hourly cap | 10 DMs per hour | The absolute maximum any one person can receive from your account in an hour — across every automation and every trigger type. Past it, sends are refused and recorded, never sent. |
| Runaway auto-pause | 20 DMs per hour | At this rate to a single person, something is definitionally looping. The offending automation is paused automatically to protect your account from a Meta ban — you’ll see it paused rather than banned. |
Public comment replies
The public reply — the visible "check your DMs 💌" under the comment — is a complement to the DM, never a replacement. If a cap is hit, the public reply is skipped and the DM still sends.
| Limit | Value | Whose limit — and why |
|---|---|---|
| Public replies per account per day | 500 by default | Dartzo’s guard. Instagram doesn’t publish a number here, but a high volume of public replies is a classic spam signal. You control this in Settings. |
| Highest you can set it | 800 per day | Dartzo’s guard, and a hard ceiling — the setting won’t accept more, at any plan. |
| Presets in Settings | 250 / 500 / 800 | Dartzo’s guard. Set it to 0 to turn public replies off entirely for the account. |
| Per-post override | Optional, stacks under the account cap | Dartzo’s guard. A single post can be capped lower than the account. Both counters must be under their limit for a reply to post, so a per-post value can never exceed the account’s. |
| When the day resets | Your local midnight | Dartzo’s guard. The counter buckets on your account’s timezone, not UTC, so "per day" means your day. |
| Alternate public reply wordings | Up to 4 extra, 280 characters each | Dartzo’s guard. Rotating wordings keeps your comment section from reading like a bot; the length clamp keeps an alternate from ever exceeding what Instagram will render on a comment. |
skipped_cap — so a missing public reply is a fact in your log, not a mystery.Message and button limits
| Limit | Value | Whose limit — and why |
|---|---|---|
| DM length, plain text | 1,000 characters | Instagram’s rule. Longer messages are rejected, so we clamp at send — you never get a silent non-delivery because of a long template. |
| DM length, with buttons | 640 characters | Instagram’s rule. Attaching buttons lowers the text budget. The editor validates against the worst case, and we clamp again at send. |
| Buttons per message | 3 | Instagram’s rule — a hard cap on the button template. Extra buttons are dropped at build, not silently at send. |
| Button label length | 20 characters | Instagram’s rule — labels longer than this are truncated by Instagram with no warning. We trim in the editor so you see the label your audience will actually see. |
| Link buttons | Must be https:// | Dartzo’s guard. A malformed or insecure link is dropped rather than shipped into a real DM. |
| Alternate message bodies (A/B) | Up to 4 extra | Dartzo’s guard. Enough to test real variations; capped so one automation can’t become an unmaintainable pile of copy. |
| Extra message bubbles | Up to 2 extra | Dartzo’s guard. Multi-bubble sequences read as natural; long ones read as spam. |