More Specific Guidelines for Preventing Write Restrictions



I know that Twitter cannot reveal details of the anti-spam or anti-automation bots used to automatically restrict applications, and I also understand that it uses machine learning to discover patterns and evolve using that data.

However, other than the general rules outlined in the documentation, are there more specific guidelines that could be shared to help prevent legitimate applications from being flagged by the bots without giving away too much information about the bots’ internals?

For example, it seems from experience that an app that sends direct messages where some percentage of them link back to the same site can get an app flagged. What I’m looking for are general tips/guidelines like:

  • Don’t send too many direct messages with links to the same site (whether a number of percentage of total DM’s sent by the app)
  • Don’t send too many direct messages with any links (in general, to any site)
  • Same as above 2 for mentions
  • Don’t tweet the same link too many times (or too high a percentage of all tweets from the app)
  • Don’t make a lot of requests while in a rate limit timeout
  • etc…

Now I know it will never be confirmed publicly (or privately for that matter) that there are apps that are whitelisted from being flagged by these bots. But I know this as a fact because implementing the same features as existing applications has lead to write access restriction while older apps are doing this on a much larger scale without issues. So I’m not requesting comment on other apps.

But, my request is really for more specific guidelines on things we can do to prevent getting restricted as little guys for whom whitelist or increased rate limits or protection from anti-spam bots is not given to?

Our application has features that could easily have problems if there are criteria like this that isn’t officially published and it would be tremendously helpful if some more specifc guidelines were made available.



I wouldn’t expect an official response at all (unless stating that they can’t give an official response, lol). I can say that I have felt your pain as my site went through this same stuff and I used the same app/site that you reference to compile a list of base features I wanted to launch with (we ended up adding plenty more and had to scrap the DM feature entirely).

All I can really say is that we launched last May and got restricted 3 times (I think, may have been 4). Each time I just politely outlined what I thought may be the issue, what we do to prevent it from being too easy to spam, and asked for tips on how we should change it to prevent the issue. I wasn’t usually given tips or they were extremely vague. My point is mostly this, it’s a huge trial and error situation. You learn as time passes just like Twitter’s system learns about your users and app as time passes. It’s absolutely annoying at first and I kind of wish they would contact before restricting but appreciate that it’s probably not possible due to resources and the number of apps that likely get restricted every day.

After several tweaks to our platform, a few suspensions/restrictions, and a little patience, we’ve been able to go a few months now without any issues (though my user’s still get their individual accounts temporarily locked from time to time for suspicious behavior).

Hang in there, be patient, you’ll get past it.


Thanks @DanielCHood, I appreciate all of that. My fingers are crossed that some more specific guidelines will be made available but I suspect we’ll have to go down the same road that you did. We do have plenty more features than other apps we used as examples by the way, we’re not just a clone app.

Hopefully after discussions and reviews by Twitter’s platform team, an app gets less likely to get restricted based on past dialogues and isn’t put into the same bucket as every other app.

But it’s extremely difficult as you know to get an email saying, in summary, “you’re restricted because you may be violating rules” without any specifics and then ask developers to fix the issue. I do understand Twitter’s side that if they give away too much, it makes it too easy to game, but I wish there could be a happy medium somewhere.

Out of curiosity, did you scrap the DM feature because you suspected having that at all was leading to your restrictions? Were you tagging them with your link?


I figured. I was just saying we basically went the same route. Inspiration from a lot of their features and then added things that we thought were also useful.

It kind of seems that way. Keep in mind, Twitter appears to be the only platform that I’ve seen where you get full access without any sort of application process. It’s like they’re more trusting up front but quicker to punish you (sometimes falsely). Whereas Instagram, Pinterest, Facebook for specific endpoints, seem to want detailed usage (sometimes even before you can start development) and then leaves you alone.

We bailed on the DM feature because they point blank said that was what was getting abused and caused one of the suspensions. We evaluated it and came to the conclusion that it didn’t provide enough value for our customers, Twitter users, or ourselves to go through the hassle of restrictions and figuring out how to avoid them. We are considering adding back a different DM feature where they can filter their followers and send them messages through our interface in a more natural/beneficial way compared to just messaging every new follower the same message.


Thank you both for the constructive discussion here. Also, thank you very much for choosing to build on the Twitter platform - we appreciate that.

I’d love to help to clarify some of these requirements, and I take on-board some of the suggestions made above. The challenge with some of this is that as a developer myself, I always put myself in your position(s), and ultimately the “best” thing for you would be to see a comprehensive list of clear restrictions and behaviours that would trigger rules. We are not going to be able to do that, since our Botmaker antispam system is adaptive and learns from common “attack patterns”; and of course that would also enable bad actors to find ways around it more easily. So yes, from time to time some things will change and in some ways, the vague but general direction is the best we can offer.

We appreciate the frustration that this can cause and we’ve done work to improve our processes enabling developers to unrestrict their apps more quickly (your recent issue being delayed in our ticket backlog during holidays, @WUMSite, apologies again). We have a number of support articles such as the automation policy, guidance on “autofollow” apps, anti-abuse guidelines, etc, and it might be a good idea for us to make these clearer and organise them better in the context of our developer site. Note that I’m not calling out your apps or any others specifically here - as I’ve mentioned in other threads, if you see apps that seem to violate our rules then we provide a form where you can report them for our review.

While I cannot give you a clear answer here given the circumstances I’ve outlined, we are listening, learning, and there are things I think we could do better in the future. Thanks again for your useful experiences (and patience!).


Thanks Andy, I can’t tell you my appreciation for your well thought out and rapid responses here on the forums. While I’m still working through my restriction with the platform team (waiting for their second response), it’s nice to be able to get feedback and advice from someone on the Twitter team here with a much faster response time! So thanks again for your presence and wisdom here on a host of topics.



our app has been restricted. unsure why.

anychance someone can help explain.

see link for app purpose please:

our app tweets out the same tweet from each subscriber until its completed before changing the tweet.



If your app is mentioning a lot of users or otherwise detected as spammy by our systems it will be restricted. You will have to modify the behaviour of your app per the discussion in this thread.

You can use to request assistance with write restrictions.