Compliance Guide

How to automate X DMs
without getting banned

X prohibits unsolicited automated bulk DMs. The safe way to run outreach is the opposite of a blast: message people with a reason, personalize every note, keep a human approving each send, and drip slowly from your own account over the official API.

Start free trial

7-day free trial. Cancel anytime.

What X's rule actually says

X's automation rules are explicit about direct messages: you may not send unsolicited or automated bulk DMs. That is the rule that gets accounts rate-limited and suspended, and it is the reason the volume-first DM tools carry a permanent asterisk.

Notice what the rule targets. It is not the presence of software. It is unsolicited and it is bulk. Automated welcome or reply DMs to people who messaged you first are generally fine. Firing identical cold DMs at a scraped list of strangers is not. The line is consent and volume.

So the goal is not to hide automation. It is to run outreach that stays on the right side of both: a real reason to message, one personal note at a time, at a human pace, with an easy way out for anyone who is not interested.

You own the account, and the responsibility

Caps, drip pacing, and human approval lower your risk substantially, but they do not make an account unbannable. You decide who to message and what to say, and X holds you responsible for it. Treat every DM as if the recipient could screenshot it.

The X DM compliance checklist

Copy this. If a campaign fails any line, fix it before you send. Every item maps to how X's rules read automated DMs.

Send through the official API with dm.write

Authorize your account with OAuth2 (the dm.write scope) instead of logging a bot into your session. Session hacks and browser automation that impersonate the app are exactly what gets accounts flagged.

Only message people with a reason to hear from you

A shared topic, a post they wrote, a follow, or a clear fit for what you offer. Blasting a scraped list of strangers is the definition of unsolicited bulk DMs, which X prohibits.

Keep volume low, drip, and warm up

Start with a handful of DMs a day on a new campaign and ramp slowly. Space sends out with randomized gaps rather than firing a batch in one burst. Bursts read as automation.

Send during your normal active hours

DMs going out at 3am in even intervals look like a script. Restrict sending to the hours a human on your account would actually be active.

Personalize every message

Reference something real about the person. Identical copy-paste text sent to hundreds of accounts is the pattern spam filters are tuned to catch.

Always offer and honor an opt-out

Give people a plain way to say no, then suppress them permanently. Continuing to message someone who declined is both a report magnet and a trust killer.

Keep a human in the loop

Approve each message before it sends. A person reading the draft catches the off-target lead and the awkward line that a fully automated blast would ship anyway.

Use a Premium account for reachability

X often silently drops cold message requests from non-Premium senders. Premium or Premium+ makes your requests more likely to land, so you are not compensating with more volume.

The safe workflow, enforced for you

You can hold this whole checklist in your head on a spreadsheet, or use a tool that builds it in. Here is how OpenTweet's DM Campaigns enforces each line.

Official API, not session hacks

DM Campaigns sends from your connected X account over the official X API after you grant DM permission with one reconnect click. No password, no session automation.

Message people with a reason

You discover leads by keyword, followers of an account, engagers of a tweet, or your own followers, then filter by followers range, bio, language, and recent activity. AI scores each lead 0 to 100 against your ideal-customer description so off-target people are ranked out.

Low volume, drip, warm-up, active hours

Sends are paced with randomized 5 to 15 minute gaps, only during your active hours, behind a 3-day warm-up capped at 10 per day, plus a per-account daily cap and a monthly credit cap.

Personalize every message

AI drafts a distinct DM per lead that references their actual posts, so no two people get the same copy-paste text.

Human approves before anything sends

Every draft lands in a review queue. You approve, skip, or edit each one, single or bulk. Nothing leaves your account until a person says yes.

Offer and honor opt-out

Replies land in an Inbox, AI-tagged interested, question, not interested, or opt out. Opt-outs are suppressed automatically so they are never messaged again.

Human approval is the point, not a setting

Discovery and AI drafting save you the busywork, but nothing sends until you read the message and approve it. That single gate is what separates compliant outreach from the mass-DM blasts X bans.

Do it step by step

1

Connect X and grant DM permission over OAuth2

Authorize your account with the official X API using the dm.write scope. Do not log an automation into your browser session. Use a Premium or Premium+ account so cold message requests are not silently dropped.

2

Define who you message and why

Target people with a real reason to hear from you, using topic, engagement, or a fit for what you offer. Filter by followers range, bio, language, and recent activity, and score each lead against your ideal-customer description. Never blast a scraped list of strangers.

3

Personalize every message

Write or generate a distinct DM per person that references something real about them. Identical copy-paste text sent at scale is the pattern spam filters catch.

4

Approve each message before it sends

Keep a human in the loop. Read every draft and approve, skip, or edit it. A person catches the off-target lead and the awkward line an automated blast would ship anyway.

5

Drip slowly with a warm-up, caps, and active hours

Space sends with randomized gaps, only during your normal active hours, behind a multi-day warm-up and a daily cap. Bursts of DMs in even intervals read as automation.

6

Offer an opt-out and honor it

Give people a plain way to decline, track replies, and permanently suppress anyone who opts out so they are never messaged again.

Frequently asked questions

Will I get banned for automating X DMs?

You can be restricted or suspended if you send unsolicited automated bulk DMs, because X's automation rules prohibit that. You reduce the risk sharply by using the official API, messaging only people with a reason to hear from you, personalizing each message, keeping volume low with a warm-up and daily caps, sending during active hours, and honoring opt-outs. Human approval and caps lower the risk but do not remove it. The account owner is responsible for what goes out.

What is the daily DM limit on X?

X does not publish exact figures, but the widely reported ceilings in 2026 are roughly 500 DMs per day for a standard account, about 1000 for X Premium, and about 1500 for Premium+. At the app level the official API allows on the order of 15000 DMs per 24 hours. These are hard ceilings, not targets. Compliant outreach sits far below them with a slow drip.

Is auto-DM allowed on X?

Automated welcome or reply DMs to people who contacted you first are generally acceptable. Unsolicited automated bulk DMs to people who did not ask to hear from you are prohibited by X's automation rules. The line is consent and volume, not whether software is involved.

Are welcome DMs different from cold outreach?

Yes. A welcome or auto-reply DM responds to someone who already engaged you, which is solicited. Cold outreach starts a conversation with someone who did not, so it needs a genuine reason to message, personalization, low volume, and an opt-out to stay on the right side of the rules.

Do I need X Premium to send DMs?

Not to send them, but for cold outreach it matters. X often silently drops message requests from non-Premium senders to people who do not follow you, so your DMs never appear. A Premium or Premium+ account makes those requests far more likely to land, which means you reach people without leaning on higher volume.

Is OpenTweet's DM Campaigns feature against X's ToS?

DM Campaigns is built around the rules, not around them. It sends from your own account over the official X API, drips slowly behind a warm-up and daily caps, personalizes each message, and requires you to approve every send. It cannot mass-blast strangers. That said, you own your account and are responsible for who you choose to message and what you say.

Outreach that stays on the right side of the rules

Discover the right people, let AI draft a personal message for each, approve every send, and drip safely from your own account. On the Advanced and Agency plans.

Start free trial

7-day free trial. Cancel anytime.