Developer Agreement
Binding legal terms for API access
Developer Policy
Rules for building on X
Automation Rules
Specific rules for bots
Restricted Use Cases
Prohibited activities
Quick check: is my app allowed?
Before building, ask yourself these questions. If you answer “no” to any of them, your app likely violates X’s policies.User-initiated?
For interactions, did the user explicitly request it?
Transparent?
Is your app’s purpose and behavior clear to users? (Automated accounts must be labeled.)
Easy opt-out?
Can users easily opt out of any ongoing interactions?
Real value?
Does it provide real value beyond self-promotion?
Official API only?
Are you only using the official API (not scraping/browser automation)?
Within limits?
Are you within rate limits and respecting usage policies?
Common scenarios: allowed or not?
Real-world examples to help you understand what’s permitted. These rules apply to all apps—whether you’re building a bot, mobile app, web integration, browser extension, analytics dashboard, or any other tool that uses the X API.- Content & posting
- Replies & mentions
- Direct Messages
- Engagement
- Promotions & commerce
- Data & research
| Scenario | Allowed? | Why |
|---|---|---|
| Automated account posts scheduled content (news, weather, quotes) | Informational, no unsolicited mentions | |
| App posts RSS feed updates on behalf of user | Helpful broadcasting | |
| Alert service posts earthquake/disaster notifications | Public safety value | |
| Sports app posts game updates to user’s timeline | Informational | |
| App posts stock/crypto prices on schedule | Informational, no manipulation | |
| App posts identical content across multiple accounts | Spam / platform manipulation | |
| App posts to trending topics to gain visibility | Trend manipulation | |
| Multiple city-specific alert accounts (e.g., @WeatherNYC, @WeatherLA) | Allowed—non-duplicative, location-specific content |
Prohibited activities
| Category | Examples |
|---|---|
| Spam & Manipulation | Identical content across accounts, fake engagement, trend manipulation, bulk posting |
| Unsolicited Outreach | Auto-replies to random users, bulk DMs, uninvited @mentions |
| Deceptive Bots | Impersonating humans, hiding bot identity, misleading links/redirects |
| Engagement Selling | Apps that sell likes, follows, retweets, or views |
| Rate Limit Abuse | Exceeding limits, designing apps that encourage overuse |
| Non-API Automation | Browser scripting, scraping, any automation outside official API |
| Account Farms | Multiple accounts for same duplicative purpose |
| Surveillance | Profiling, tracking, or monitoring users without consent |
| Unauthorized AI Training | Using X data to train ML models (Grok excepted) |
| Sensitive Data Derivation | Inferring health, political, religious, or other sensitive attributes |
| Excessive Redistribution | Sharing >1.5M Post IDs per 30-day period |
Automation rules
This section applies specifically to automated accounts (bots) that post, reply, or interact on behalf of users. If you’re building an analytics dashboard, research tool, or other non-automated app, these labeling requirements don’t apply to you—but the technical restrictions still do.
Requirements for automated accounts
All automated accounts using the X API must meet these requirements:Enable the 'Automated' profile label
This label appears under your bot’s name/handle on its profile. Enable it in your app settings to ensure transparency.
Disclose in bio
State clearly that it’s a bot and who operates it. Example: “Bot by @yourcompany” or “Automated account managed by Example Inc.”
Link to a human-managed account
For accountability and contact purposes, your bot must be associated with a human-managed account.
Honor opt-out requests immediately
If a user says “stop,” stop. Implement keyword detection for common opt-out phrases.
Use only the official X API
No scraping, browser automation, or unofficial methods. Violations result in permanent suspension.
Automated actions: what’s allowed?
| Action | Allowed? | Rules |
|---|---|---|
| Post tweets | No unsolicited @mentions. No identical cross-posting. | |
| Reply to users | Only if user engaged first. Max 1 reply per interaction. | |
| Send DMs | Only after user DMs you first. Easy opt-out required. | |
| Like posts | Must be directly user-initiated. Auto-liking, bulk liking, and selling likes are prohibited. | |
| Repost | OK for informational/entertainment. No bulk spam. | |
| Quote tweet | Same rules as repost—no spam or manipulation. | |
| Follow/Unfollow | No bulk, aggressive, or automated following. | |
| Add to Lists | No bulk or indiscriminate additions. | |
| Bookmark | Fine for personal/automated use. | |
| Search/Read | Standard use within rate limits. |
Gray areas explained
Many developers have questions about edge cases. Here’s guidance on common gray areas.Affiliate links & promotions
Affiliate links & promotions
Allowed if:
- User explicitly requests it (e.g., DMs asking for a recommendation)
- You clearly disclose the affiliate/sponsored relationship
- Links are not misleading (no deceptive redirects)
AI-generated content & replies
AI-generated content & replies
- Requires prior approval from X before deployment
- Must still follow all rules (no unsolicited mentions, properly labeled)
- Contact X via the Policy Support form before launching
- Even with approval, cannot impersonate humans
Welcome messages to new followers
Welcome messages to new followers
Not allowed as automated DMs—this counts as unsolicited contact, even though they followed you.Alternatives:
- Pinned tweet welcoming new followers
- Bio with intro info and links
- Auto-reply only if they DM you first
Multiple accounts / regional bots
Multiple accounts / regional bots
Allowed if:
- Each account serves non-duplicative purposes (e.g., @EarthquakeJP, @EarthquakeCA)
- Content is meaningfully different (location-specific, language-specific)
- Not used to bypass limits or amplify the same message
Customer support automation
Customer support automation
Allowed if:
- User initiates (mentions you, DMs you, or explicitly opts in)
- Clear opt-out mechanism exists
- Responses are helpful, not promotional
- Includes privacy policy link in DMs
Giveaways & contests
Giveaways & contests
Proceed with caution:
- Requiring follows/retweets as entry can be seen as engagement manipulation
- Must comply with X’s contest guidelines
- Don’t use multiple accounts to amplify
- Ensure prizes are real and delivered
Data handling and display requirements
Content deletion
You must delete X Content from your systems when requested:| Trigger | Deadline |
|---|---|
| X requests deletion | 24 hours |
| User requests deletion | 24 hours |
| Content is suspended/removed on X | 24 hours |
| Your API access is terminated | 10 business days (must delete all X data) |
Off-X matching
Off-X matching means associating X data (username, user ID, posts) with off-platform identifiers (your customer database, email lists, device IDs, etc.).Allowed with express opt-in consent:
- User explicitly agrees to link their X account with your service
- Clear disclosure of what data will be matched and why
Sensitive data
You cannot derive, infer, or store information about X users in these categories:
| Category | Examples |
|---|---|
| Health | Medical conditions, pregnancy, disabilities |
| Financial status | Negative financial condition, credit issues |
| Political | Party affiliation, political beliefs, voting |
| Racial/Ethnic | Origin, ethnicity |
| Religious/Philosophical | Beliefs, affiliations |
| Sex life/Sexual orientation | Any inference about sexuality |
| Trade union | Membership or affiliation |
| Criminal | Alleged or actual criminal activity |
Exception: Aggregate analysis without storing personal identifiers (no user IDs, usernames, or linkable data) may be allowed for research purposes, subject to applicable laws.
Displaying X content
| Requirement | Details |
|---|---|
| Attribution | Use proper X branding. Follow Brand Guidelines. |
| No alterations | Only modify for display formatting (resizing). Don’t edit content, remove timestamps, or strip metadata. |
| No iframes | Don’t display X Content in iframes. Use official embeds or render directly. |
| Respect removals | Remove content within 24 hours if deleted on X. |
Technical restrictions
These limits apply to all developers. Exceeding them can result in rate limiting or suspension.
| Restriction | Limit |
|---|---|
| Post ID redistribution | Max 1.5M Post IDs per 30-day period to any single entity |
| Hydrated content redistribution | Max 50,000 hydrated Posts or Users per recipient per day |
| Rate limits | Vary by endpoint and tier—see API docs |
| AI/ML training | Prohibited (except for Grok) |
| Non-API access | Prohibited—scraping and browser automation = permanent ban |
| Competitive benchmarking | Prohibited—can’t measure X performance vs. competitors |
| Multiple apps for same use case | Prohibited—don’t create duplicate apps to bypass limits |
Special use cases
| Use Case | Requirement |
|---|---|
| Government use | Requires Enterprise tier |
| Commercial use | Requires appropriate paid tier; free tier is non-commercial only |
| Academic research | May have different redistribution limits; contact X for details |
| EU Digital Services Act research | Specific non-commercial research provisions available |
Security and compliance
Your obligations as a developer:Security requirements
Security requirements
- Use industry-standard security practices to protect X data
- Never share your API credentials or tokens
- Store credentials securely (environment variables, secret managers—not in code)
- Implement proper authentication in your apps
Breach notification
Breach notification
If you experience a security breach involving X data:
- Notify X immediately
- Take steps to mitigate the breach
- Cooperate with X’s investigation
Confidentiality
Confidentiality
- Treat any non-public information from X as confidential
- Don’t disclose API rate limits, internal X data, or non-public features
- Don’t use confidential info for competitive purposes
Audit rights
Audit rights
- X may audit your compliance up to once per year
- You must provide reasonable access and documentation
- Keep records of how you use X data
Summary: do’s and don’ts
- Do
- Don't
For Automated Accounts:
- Enable “Automated” profile label
- Disclose operator in bio
- Wait for users to initiate interaction
- Provide easy opt-out
- Get approval for AI-generated replies
- Use only the official X API
- Respect rate limits and redistribution limits
- Delete content within 24 hours when requested
- Get opt-in consent for off-X matching
- Use proper attribution when displaying X Content
- Secure your credentials and notify X of breaches
- Keep records of your X data usage